Vendor things

This commit is contained in:
John Doty 2024-03-08 11:03:01 -08:00
parent 5deceec006
commit 977e3c17e5
19434 changed files with 10682014 additions and 0 deletions

View file

@ -0,0 +1,100 @@
#[derive(Copy, Clone)]
pub struct Decoder;
impl toml_test_harness::Decoder for Decoder {
fn name(&self) -> &str {
"toml_edit"
}
fn decode(&self, data: &[u8]) -> Result<toml_test_harness::Decoded, toml_test_harness::Error> {
let data = std::str::from_utf8(data).map_err(toml_test_harness::Error::new)?;
let document = data
.parse::<toml_edit::Document>()
.map_err(toml_test_harness::Error::new)?;
document_to_decoded(&document)
}
}
fn document_to_decoded(
value: &toml_edit::Document,
) -> Result<toml_test_harness::Decoded, toml_test_harness::Error> {
table_to_decoded(value)
}
fn item_to_decoded(
value: &toml_edit::Item,
) -> Result<toml_test_harness::Decoded, toml_test_harness::Error> {
match value {
toml_edit::Item::None => unreachable!("No nones"),
toml_edit::Item::Value(v) => value_to_decoded(v),
toml_edit::Item::Table(v) => table_to_decoded(v),
toml_edit::Item::ArrayOfTables(v) => {
let v: Result<_, toml_test_harness::Error> = v.iter().map(table_to_decoded).collect();
Ok(toml_test_harness::Decoded::Array(v?))
}
}
}
fn value_to_decoded(
value: &toml_edit::Value,
) -> Result<toml_test_harness::Decoded, toml_test_harness::Error> {
match value {
toml_edit::Value::Integer(v) => Ok(toml_test_harness::Decoded::Value(
toml_test_harness::DecodedValue::from(*v.value()),
)),
toml_edit::Value::String(v) => Ok(toml_test_harness::Decoded::Value(
toml_test_harness::DecodedValue::from(v.value()),
)),
toml_edit::Value::Float(v) => Ok(toml_test_harness::Decoded::Value(
toml_test_harness::DecodedValue::from(*v.value()),
)),
toml_edit::Value::Datetime(v) => {
let v = v.value();
let value = v.to_string();
let value = match (v.date.is_some(), v.time.is_some(), v.offset.is_some()) {
(true, true, true) => toml_test_harness::DecodedValue::Datetime(value),
(true, true, false) => toml_test_harness::DecodedValue::DatetimeLocal(value),
(true, false, false) => toml_test_harness::DecodedValue::DateLocal(value),
(false, true, false) => toml_test_harness::DecodedValue::TimeLocal(value),
_ => unreachable!("Unsupported case"),
};
Ok(toml_test_harness::Decoded::Value(value))
}
toml_edit::Value::Boolean(v) => Ok(toml_test_harness::Decoded::Value(
toml_test_harness::DecodedValue::from(*v.value()),
)),
toml_edit::Value::Array(v) => {
let v: Result<_, toml_test_harness::Error> = v.iter().map(value_to_decoded).collect();
Ok(toml_test_harness::Decoded::Array(v?))
}
toml_edit::Value::InlineTable(v) => inline_table_to_decoded(v),
}
}
fn table_to_decoded(
value: &toml_edit::Table,
) -> Result<toml_test_harness::Decoded, toml_test_harness::Error> {
let table: Result<_, toml_test_harness::Error> = value
.iter()
.map(|(k, v)| {
let k = k.to_owned();
let v = item_to_decoded(v)?;
Ok((k, v))
})
.collect();
Ok(toml_test_harness::Decoded::Table(table?))
}
fn inline_table_to_decoded(
value: &toml_edit::InlineTable,
) -> Result<toml_test_harness::Decoded, toml_test_harness::Error> {
let table: Result<_, toml_test_harness::Error> = value
.iter()
.map(|(k, v)| {
let k = k.to_owned();
let v = value_to_decoded(v)?;
Ok((k, v))
})
.collect();
Ok(toml_test_harness::Decoded::Table(table?))
}

View file

@ -0,0 +1,17 @@
mod decoder;
fn main() {
let decoder = decoder::Decoder;
let mut harness = toml_test_harness::DecoderHarness::new(decoder);
harness
.ignore([
"valid/spec/float-0.toml", // Test issue; `Decoder` turns `6.626e-34` into `0.0`
// Unreleased
"valid/string/escape-esc.toml",
"valid/string/hex-escape.toml",
"valid/datetime/no-seconds.toml",
"valid/inline-table/newline.toml",
])
.unwrap();
harness.test();
}

View file

@ -0,0 +1,111 @@
#[derive(Copy, Clone)]
pub struct Encoder;
impl toml_test_harness::Encoder for Encoder {
fn name(&self) -> &str {
"toml_edit"
}
fn encode(&self, data: toml_test_harness::Decoded) -> Result<String, toml_test_harness::Error> {
let doc = decoded_to_document(&data)?;
Ok(doc.to_string())
}
}
fn decoded_to_document(
decoded: &toml_test_harness::Decoded,
) -> Result<toml_edit::Document, toml_test_harness::Error> {
let item = root_from_decoded(decoded)?;
let mut doc = toml_edit::Document::new();
*doc = item;
Ok(doc)
}
fn root_from_decoded(
decoded: &toml_test_harness::Decoded,
) -> Result<toml_edit::Table, toml_test_harness::Error> {
match decoded {
toml_test_harness::Decoded::Value(_) => {
Err(toml_test_harness::Error::new("Root cannot be a value"))
}
toml_test_harness::Decoded::Table(value) => value
.iter()
.map(|(k, v)| {
let k = k.as_str();
let v = from_decoded(v)?;
Ok((k, v))
})
.collect(),
toml_test_harness::Decoded::Array(_) => {
Err(toml_test_harness::Error::new("Root cannot be an array"))
}
}
}
fn from_decoded(
decoded: &toml_test_harness::Decoded,
) -> Result<toml_edit::Value, toml_test_harness::Error> {
let value = match decoded {
toml_test_harness::Decoded::Value(value) => from_decoded_value(value)?,
toml_test_harness::Decoded::Table(value) => {
toml_edit::Value::InlineTable(from_table(value)?)
}
toml_test_harness::Decoded::Array(value) => toml_edit::Value::Array(from_array(value)?),
};
Ok(value)
}
fn from_decoded_value(
decoded: &toml_test_harness::DecodedValue,
) -> Result<toml_edit::Value, toml_test_harness::Error> {
let value: toml_edit::Value = match decoded {
toml_test_harness::DecodedValue::String(value) => value.into(),
toml_test_harness::DecodedValue::Integer(value) => value
.parse::<i64>()
.map_err(toml_test_harness::Error::new)?
.into(),
toml_test_harness::DecodedValue::Float(value) => value
.parse::<f64>()
.map_err(toml_test_harness::Error::new)?
.into(),
toml_test_harness::DecodedValue::Bool(value) => value
.parse::<bool>()
.map_err(toml_test_harness::Error::new)?
.into(),
toml_test_harness::DecodedValue::Datetime(value) => value
.parse::<toml_edit::Datetime>()
.map_err(toml_test_harness::Error::new)?
.into(),
toml_test_harness::DecodedValue::DatetimeLocal(value) => value
.parse::<toml_edit::Datetime>()
.map_err(toml_test_harness::Error::new)?
.into(),
toml_test_harness::DecodedValue::DateLocal(value) => value
.parse::<toml_edit::Datetime>()
.map_err(toml_test_harness::Error::new)?
.into(),
toml_test_harness::DecodedValue::TimeLocal(value) => value
.parse::<toml_edit::Datetime>()
.map_err(toml_test_harness::Error::new)?
.into(),
};
Ok(value)
}
fn from_table(
decoded: &std::collections::HashMap<String, toml_test_harness::Decoded>,
) -> Result<toml_edit::InlineTable, toml_test_harness::Error> {
decoded
.iter()
.map(|(k, v)| {
let v = from_decoded(v)?;
Ok((k, v))
})
.collect()
}
fn from_array(
decoded: &[toml_test_harness::Decoded],
) -> Result<toml_edit::Array, toml_test_harness::Error> {
decoded.iter().map(from_decoded).collect()
}

View file

@ -0,0 +1,14 @@
mod decoder;
mod encoder;
fn main() {
let encoder = encoder::Encoder;
let decoder = decoder::Decoder;
let mut harness = toml_test_harness::EncoderHarness::new(encoder, decoder);
harness
.ignore([
"valid/spec/float-0.toml", // Test issue; `Decoder` turns `6.626e-34` into `0.0`
])
.unwrap();
harness.test();
}

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 12
|
1 | array = [1,,2]
| ^
invalid array
expected `]`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 14
|
1 | array = [1,2,,]
| ^
invalid array
expected `]`

View file

@ -0,0 +1,6 @@
TOML parse error at line 5, column 1
|
5 | [a.c]
| ^
invalid table header
dotted key `a` attempted to extend non-table type (array)

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 13
|
1 | wrong = [ 1 2 3 ]
| ^
invalid array
expected `]`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 11
|
1 | x = [42 #
| ^
invalid array
expected `]`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 17
|
1 | x = [{ key = 42 #
| ^
invalid inline table
expected `}`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 16
|
1 | x = [{ key = 42
| ^
invalid inline table
expected `}`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 24
|
1 | long_array = [ 1, 2, 3
| ^
invalid array
expected `]`

View file

@ -0,0 +1,6 @@
TOML parse error at line 4, column 1
|
4 | [[fruit]] # Not allowed
| ^
invalid table header
duplicate key `fruit` in document root

View file

@ -0,0 +1,6 @@
TOML parse error at line 9, column 3
|
9 | [fruit.variety]
| ^
invalid table header
duplicate key `variety` in table `fruit`

View file

@ -0,0 +1,6 @@
TOML parse error at line 2, column 46
|
2 | "Is there life after an array separator?", No
| ^
invalid array
expected `]`

View file

@ -0,0 +1,6 @@
TOML parse error at line 2, column 46
|
2 | "Is there life before an array separator?" No,
| ^
invalid array
expected `]`

View file

@ -0,0 +1,6 @@
TOML parse error at line 3, column 3
|
3 | I don't belong,
| ^
invalid array
expected `]`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 5
|
1 | a = falsify
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 5
|
1 | a = fals
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 5
|
1 | a = truthy
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 5
|
1 | a = tru
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 5
|
1 | a = f
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 5
|
1 | a = t
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 9
|
1 | valid = False
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 10
|
1 | a = falsey
| ^
expected newline, `#`

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 9
|
1 | a = truer
| ^
expected newline, `#`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 5
|
1 | b = FALSE
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 5
|
1 | a = TRUE
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,5 @@
TOML parse error at line 2, column 1
|
2 |
| ^

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 17
|
1 | bare-formfeed =
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 21
|
1 | bare-vertical-tab =
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 45
|
1 | comment-cr = "Carriage return in comment" #
a=1
| ^
expected newline, `#`

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 24
|
1 | comment-del = "0x7f" # 
| ^
expected newline, `#`

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 25
|
1 | comment-lf = "ctrl-P" # 
| ^
expected newline, `#`

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 25
|
1 | comment-us = "ctrl-_" # 
| ^
expected newline, `#`

View file

@ -0,0 +1,6 @@
TOML parse error at line 9, column 22
|
9 | string-null = "null\x00"
| ^
invalid escape sequence
expected `b`, `f`, `n`, `r`, `t`, `u`, `U`, `\`, `"`

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 20
|
1 | multi-del = """null"""
| ^
invalid multiline basic string

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 19
|
1 | multi-lf = """null"""
| ^
invalid multiline basic string

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 19
|
1 | multi-us = """null"""
| ^
invalid multiline basic string

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 23
|
1 | rawmulti-del = '''null'''
| ^
invalid multiline literal string

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 22
|
1 | rawmulti-lf = '''null'''
| ^
invalid multiline literal string

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 22
|
1 | rawmulti-us = '''null'''
| ^
invalid multiline literal string

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 22
|
1 | rawstring-del = 'null'
| ^
invalid literal string

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 21
|
1 | rawstring-lf = 'null'
| ^
invalid literal string

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 21
|
1 | rawstring-us = 'null'
| ^
invalid literal string

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 23
|
1 | string-bs = "backspace"
| ^
invalid basic string

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 19
|
1 | string-del = "null"
| ^
invalid basic string

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 18
|
1 | string-lf = "null"
| ^
invalid basic string

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 18
|
1 | string-us = "null"
| ^
invalid basic string

View file

@ -0,0 +1,5 @@
TOML parse error at line 2, column 15
|
2 | d = 2006-01-01T24:00:00-00:00
| ^
expected newline, `#`

View file

@ -0,0 +1,6 @@
TOML parse error at line 3, column 13
|
3 | d = 2006-01-32T00:00:00-00:00
| ^
invalid date-time
value is out of range

View file

@ -0,0 +1,6 @@
TOML parse error at line 3, column 13
|
3 | d = 2006-01-00T00:00:00-00:00
| ^
invalid date-time
value is out of range

View file

@ -0,0 +1,6 @@
TOML parse error at line 2, column 19
|
2 | d = 2006-01-01T00:60:00-00:00
| ^
invalid date-time
value is out of range

View file

@ -0,0 +1,6 @@
TOML parse error at line 2, column 10
|
2 | d = 2006-13-01T00:00:00-00:00
| ^
invalid date-time
value is out of range

View file

@ -0,0 +1,6 @@
TOML parse error at line 2, column 10
|
2 | d = 2007-00-01T00:00:00-00:00
| ^
invalid date-time
value is out of range

View file

@ -0,0 +1,5 @@
TOML parse error at line 2, column 22
|
2 | with-milli = 1987-07-5T17:45:00.12Z
| ^
invalid date-time

View file

@ -0,0 +1,5 @@
TOML parse error at line 2, column 17
|
2 | no-leads = 1987-7-05T17:45:00Z
| ^
invalid date-time

View file

@ -0,0 +1,5 @@
TOML parse error at line 2, column 27
|
2 | no-secs = 1987-07-05T17:45Z
| ^
invalid date-time

View file

@ -0,0 +1,5 @@
TOML parse error at line 2, column 18
|
2 | no-t = 1987-07-0517:45:00Z
| ^
expected newline, `#`

View file

@ -0,0 +1,6 @@
TOML parse error at line 3, column 22
|
3 | d = 2006-01-01T00:00:61-00:00
| ^
invalid date-time
value is out of range

View file

@ -0,0 +1,5 @@
TOML parse error at line 2, column 11
|
2 | d = 01:32:0
| ^
invalid time

View file

@ -0,0 +1,5 @@
TOML parse error at line 2, column 6
|
2 | d = 1:32:00
| ^
expected newline, `#`

View file

@ -0,0 +1,5 @@
TOML parse error at line 2, column 15
|
2 | d = 2006-01-30T
| ^
expected newline, `#`

View file

@ -0,0 +1 @@
incomplete utf-8 byte sequence from index 241

View file

@ -0,0 +1 @@
invalid utf-8 sequence of 1 bytes from index 2

View file

@ -0,0 +1 @@
invalid utf-8 sequence of 1 bytes from index 66

View file

@ -0,0 +1 @@
invalid utf-8 sequence of 1 bytes from index 66

View file

@ -0,0 +1 @@
invalid utf-8 sequence of 1 bytes from index 64

View file

@ -0,0 +1 @@
invalid utf-8 sequence of 1 bytes from index 64

View file

@ -0,0 +1 @@
invalid utf-8 sequence of 1 bytes from index 17

View file

@ -0,0 +1 @@
invalid utf-8 sequence of 1 bytes from index 18

View file

@ -0,0 +1 @@
invalid utf-8 sequence of 1 bytes from index 0

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 20
|
1 | double-point-1 = 0..1
| ^
invalid floating-point number
expected digit

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 21
|
1 | double-point-2 = 0.1.2
| ^
expected newline, `#`

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 20
|
1 | exp-double-e-1 = 1ee2
| ^
invalid floating-point number

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 21
|
1 | exp-double-e-2 = 1e2e3
| ^
expected newline, `#`

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 19
|
1 | exp-double-us = 1e__23
| ^
invalid floating-point number

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 20
|
1 | exp-leading-us = 1e_23
| ^
invalid floating-point number

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 18
|
1 | exp-point-1 = 1e2.3
| ^
expected newline, `#`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 17
|
1 | exp-point-2 = 1.e2
| ^
invalid floating-point number
expected digit

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 21
|
1 | exp-trailing-us = 1e_23_
| ^
invalid floating-point number

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 17
|
1 | leading-zero = 03.14
| ^
expected newline, `#`

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 20
|
1 | inf-incomplete-1 = in
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 21
|
1 | inf-incomplete-2 = +in
| ^
invalid integer

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 21
|
1 | inf-incomplete-3 = -in
| ^
invalid integer

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 18
|
1 | inf_underscore = in_f
| ^
invalid string
expected `"`, `'`

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 22
|
1 | leading-point-neg = -.12345
| ^
invalid integer

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 23
|
1 | leading-point-plus = +.12345
| ^
invalid integer

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 17
|
1 | leading-point = .12345
| ^
invalid floating-point number
expected leading digit

View file

@ -0,0 +1,6 @@
TOML parse error at line 1, column 14
|
1 | leading-us = _1.2
| ^
invalid integer
expected leading digit

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 22
|
1 | leading-zero-neg = -03.14
| ^
expected newline, `#`

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 23
|
1 | leading-zero-plus = +03.14
| ^
expected newline, `#`

View file

@ -0,0 +1,5 @@
TOML parse error at line 1, column 17
|
1 | leading-zero = 03.14
| ^
expected newline, `#`

Some files were not shown because too many files have changed in this diff Show more