aboutsummaryrefslogtreecommitdiff
path: root/test-suite/tests/valid.rs
diff options
context:
space:
mode:
Diffstat (limited to 'test-suite/tests/valid.rs')
-rw-r--r--test-suite/tests/valid.rs429
1 files changed, 270 insertions, 159 deletions
diff --git a/test-suite/tests/valid.rs b/test-suite/tests/valid.rs
index 6884584..6914edd 100644
--- a/test-suite/tests/valid.rs
+++ b/test-suite/tests/valid.rs
@@ -1,10 +1,10 @@
-extern crate toml;
extern crate serde;
extern crate serde_json;
+extern crate toml;
-use toml::{Value as Toml, to_string_pretty};
use serde::ser::Serialize;
use serde_json::Value as Json;
+use toml::{to_string_pretty, Value as Toml};
fn to_json(toml: toml::Value) -> Json {
fn doit(s: &str, json: Json) -> Json {
@@ -17,11 +17,18 @@ fn to_json(toml: toml::Value) -> Json {
match toml {
Toml::String(s) => doit("string", Json::String(s)),
Toml::Integer(i) => doit("integer", Json::String(i.to_string())),
- Toml::Float(f) => doit("float", Json::String({
- let s = format!("{:.15}", f);
- let s = format!("{}", s.trim_end_matches('0'));
- if s.ends_with('.') {format!("{}0", s)} else {s}
- })),
+ Toml::Float(f) => doit(
+ "float",
+ Json::String({
+ let s = format!("{:.15}", f);
+ let s = format!("{}", s.trim_end_matches('0'));
+ if s.ends_with('.') {
+ format!("{}0", s)
+ } else {
+ s
+ }
+ }),
+ ),
Toml::Boolean(b) => doit("bool", Json::String(format!("{}", b))),
Toml::Datetime(s) => doit("datetime", Json::String(s.to_string())),
Toml::Array(arr) => {
@@ -30,7 +37,11 @@ fn to_json(toml: toml::Value) -> Json {
_ => false,
};
let json = Json::Array(arr.into_iter().map(to_json).collect());
- if is_table {json} else {doit("array", json)}
+ if is_table {
+ json
+ } else {
+ doit("array", json)
+ }
}
Toml::Table(table) => {
let mut map = serde_json::Map::new();
@@ -91,10 +102,12 @@ fn run(toml_raw: &str, json_raw: &str) {
// Assert toml == json
let toml_json = to_json(toml.clone());
- assert!(json == toml_json,
- "expected\n{}\ngot\n{}\n",
- serde_json::to_string_pretty(&json).unwrap(),
- serde_json::to_string_pretty(&toml_json).unwrap());
+ assert!(
+ json == toml_json,
+ "expected\n{}\ngot\n{}\n",
+ serde_json::to_string_pretty(&json).unwrap(),
+ serde_json::to_string_pretty(&toml_json).unwrap()
+ );
// Assert round trip
println!("round trip parse: {}", toml);
@@ -108,152 +121,250 @@ macro_rules! test( ($name:ident, $toml:expr, $json:expr) => (
fn $name() { run($toml, $json); }
) );
-test!(array_empty,
- include_str!("valid/array-empty.toml"),
- include_str!("valid/array-empty.json"));
-test!(array_nospaces,
- include_str!("valid/array-nospaces.toml"),
- include_str!("valid/array-nospaces.json"));
-test!(arrays_hetergeneous,
- include_str!("valid/arrays-hetergeneous.toml"),
- include_str!("valid/arrays-hetergeneous.json"));
-test!(arrays,
- include_str!("valid/arrays.toml"),
- include_str!("valid/arrays.json"));
-test!(arrays_nested,
- include_str!("valid/arrays-nested.toml"),
- include_str!("valid/arrays-nested.json"));
-test!(empty,
- include_str!("valid/empty.toml"),
- include_str!("valid/empty.json"));
-test!(bool,
- include_str!("valid/bool.toml"),
- include_str!("valid/bool.json"));
-test!(comments_everywhere,
- include_str!("valid/comments-everywhere.toml"),
- include_str!("valid/comments-everywhere.json"));
-test!(datetime,
- include_str!("valid/datetime.toml"),
- include_str!("valid/datetime.json"));
-test!(example,
- include_str!("valid/example.toml"),
- include_str!("valid/example.json"));
-test!(float,
- include_str!("valid/float.toml"),
- include_str!("valid/float.json"));
-test!(implicit_and_explicit_after,
- include_str!("valid/implicit-and-explicit-after.toml"),
- include_str!("valid/implicit-and-explicit-after.json"));
-test!(implicit_and_explicit_before,
- include_str!("valid/implicit-and-explicit-before.toml"),
- include_str!("valid/implicit-and-explicit-before.json"));
-test!(implicit_groups,
- include_str!("valid/implicit-groups.toml"),
- include_str!("valid/implicit-groups.json"));
-test!(integer,
- include_str!("valid/integer.toml"),
- include_str!("valid/integer.json"));
-test!(key_equals_nospace,
- include_str!("valid/key-equals-nospace.toml"),
- include_str!("valid/key-equals-nospace.json"));
-test!(key_space,
- include_str!("valid/key-space.toml"),
- include_str!("valid/key-space.json"));
-test!(key_special_chars,
- include_str!("valid/key-special-chars.toml"),
- include_str!("valid/key-special-chars.json"));
-test!(key_with_pound,
- include_str!("valid/key-with-pound.toml"),
- include_str!("valid/key-with-pound.json"));
-test!(long_float,
- include_str!("valid/long-float.toml"),
- include_str!("valid/long-float.json"));
-test!(long_integer,
- include_str!("valid/long-integer.toml"),
- include_str!("valid/long-integer.json"));
-test!(multiline_string,
- include_str!("valid/multiline-string.toml"),
- include_str!("valid/multiline-string.json"));
-test!(raw_multiline_string,
- include_str!("valid/raw-multiline-string.toml"),
- include_str!("valid/raw-multiline-string.json"));
-test!(raw_string,
- include_str!("valid/raw-string.toml"),
- include_str!("valid/raw-string.json"));
-test!(string_empty,
- include_str!("valid/string-empty.toml"),
- include_str!("valid/string-empty.json"));
-test!(string_escapes,
- include_str!("valid/string-escapes.toml"),
- include_str!("valid/string-escapes.json"));
-test!(string_simple,
- include_str!("valid/string-simple.toml"),
- include_str!("valid/string-simple.json"));
-test!(string_with_pound,
- include_str!("valid/string-with-pound.toml"),
- include_str!("valid/string-with-pound.json"));
-test!(table_array_implicit,
- include_str!("valid/table-array-implicit.toml"),
- include_str!("valid/table-array-implicit.json"));
-test!(table_array_many,
- include_str!("valid/table-array-many.toml"),
- include_str!("valid/table-array-many.json"));
-test!(table_array_nest,
- include_str!("valid/table-array-nest.toml"),
- include_str!("valid/table-array-nest.json"));
-test!(table_array_one,
- include_str!("valid/table-array-one.toml"),
- include_str!("valid/table-array-one.json"));
-test!(table_empty,
- include_str!("valid/table-empty.toml"),
- include_str!("valid/table-empty.json"));
-test!(table_sub_empty,
- include_str!("valid/table-sub-empty.toml"),
- include_str!("valid/table-sub-empty.json"));
-test!(table_multi_empty,
- include_str!("valid/table-multi-empty.toml"),
- include_str!("valid/table-multi-empty.json"));
-test!(table_whitespace,
- include_str!("valid/table-whitespace.toml"),
- include_str!("valid/table-whitespace.json"));
-test!(table_with_pound,
- include_str!("valid/table-with-pound.toml"),
- include_str!("valid/table-with-pound.json"));
-test!(unicode_escape,
- include_str!("valid/unicode-escape.toml"),
- include_str!("valid/unicode-escape.json"));
-test!(unicode_literal,
- include_str!("valid/unicode-literal.toml"),
- include_str!("valid/unicode-literal.json"));
-test!(hard_example,
- include_str!("valid/hard_example.toml"),
- include_str!("valid/hard_example.json"));
-test!(example2,
- include_str!("valid/example2.toml"),
- include_str!("valid/example2.json"));
-test!(example3,
- include_str!("valid/example-v0.3.0.toml"),
- include_str!("valid/example-v0.3.0.json"));
-test!(example4,
- include_str!("valid/example-v0.4.0.toml"),
- include_str!("valid/example-v0.4.0.json"));
-test!(example_bom,
- include_str!("valid/example-bom.toml"),
- include_str!("valid/example.json"));
+test!(
+ array_empty,
+ include_str!("valid/array-empty.toml"),
+ include_str!("valid/array-empty.json")
+);
+test!(
+ array_nospaces,
+ include_str!("valid/array-nospaces.toml"),
+ include_str!("valid/array-nospaces.json")
+);
+test!(
+ arrays_hetergeneous,
+ include_str!("valid/arrays-hetergeneous.toml"),
+ include_str!("valid/arrays-hetergeneous.json")
+);
+test!(
+ arrays,
+ include_str!("valid/arrays.toml"),
+ include_str!("valid/arrays.json")
+);
+test!(
+ arrays_nested,
+ include_str!("valid/arrays-nested.toml"),
+ include_str!("valid/arrays-nested.json")
+);
+test!(
+ empty,
+ include_str!("valid/empty.toml"),
+ include_str!("valid/empty.json")
+);
+test!(
+ bool,
+ include_str!("valid/bool.toml"),
+ include_str!("valid/bool.json")
+);
+test!(
+ comments_everywhere,
+ include_str!("valid/comments-everywhere.toml"),
+ include_str!("valid/comments-everywhere.json")
+);
+test!(
+ datetime,
+ include_str!("valid/datetime.toml"),
+ include_str!("valid/datetime.json")
+);
+test!(
+ example,
+ include_str!("valid/example.toml"),
+ include_str!("valid/example.json")
+);
+test!(
+ float,
+ include_str!("valid/float.toml"),
+ include_str!("valid/float.json")
+);
+test!(
+ implicit_and_explicit_after,
+ include_str!("valid/implicit-and-explicit-after.toml"),
+ include_str!("valid/implicit-and-explicit-after.json")
+);
+test!(
+ implicit_and_explicit_before,
+ include_str!("valid/implicit-and-explicit-before.toml"),
+ include_str!("valid/implicit-and-explicit-before.json")
+);
+test!(
+ implicit_groups,
+ include_str!("valid/implicit-groups.toml"),
+ include_str!("valid/implicit-groups.json")
+);
+test!(
+ integer,
+ include_str!("valid/integer.toml"),
+ include_str!("valid/integer.json")
+);
+test!(
+ key_equals_nospace,
+ include_str!("valid/key-equals-nospace.toml"),
+ include_str!("valid/key-equals-nospace.json")
+);
+test!(
+ key_space,
+ include_str!("valid/key-space.toml"),
+ include_str!("valid/key-space.json")
+);
+test!(
+ key_special_chars,
+ include_str!("valid/key-special-chars.toml"),
+ include_str!("valid/key-special-chars.json")
+);
+test!(
+ key_with_pound,
+ include_str!("valid/key-with-pound.toml"),
+ include_str!("valid/key-with-pound.json")
+);
+test!(
+ long_float,
+ include_str!("valid/long-float.toml"),
+ include_str!("valid/long-float.json")
+);
+test!(
+ long_integer,
+ include_str!("valid/long-integer.toml"),
+ include_str!("valid/long-integer.json")
+);
+test!(
+ multiline_string,
+ include_str!("valid/multiline-string.toml"),
+ include_str!("valid/multiline-string.json")
+);
+test!(
+ raw_multiline_string,
+ include_str!("valid/raw-multiline-string.toml"),
+ include_str!("valid/raw-multiline-string.json")
+);
+test!(
+ raw_string,
+ include_str!("valid/raw-string.toml"),
+ include_str!("valid/raw-string.json")
+);
+test!(
+ string_empty,
+ include_str!("valid/string-empty.toml"),
+ include_str!("valid/string-empty.json")
+);
+test!(
+ string_escapes,
+ include_str!("valid/string-escapes.toml"),
+ include_str!("valid/string-escapes.json")
+);
+test!(
+ string_simple,
+ include_str!("valid/string-simple.toml"),
+ include_str!("valid/string-simple.json")
+);
+test!(
+ string_with_pound,
+ include_str!("valid/string-with-pound.toml"),
+ include_str!("valid/string-with-pound.json")
+);
+test!(
+ table_array_implicit,
+ include_str!("valid/table-array-implicit.toml"),
+ include_str!("valid/table-array-implicit.json")
+);
+test!(
+ table_array_many,
+ include_str!("valid/table-array-many.toml"),
+ include_str!("valid/table-array-many.json")
+);
+test!(
+ table_array_nest,
+ include_str!("valid/table-array-nest.toml"),
+ include_str!("valid/table-array-nest.json")
+);
+test!(
+ table_array_one,
+ include_str!("valid/table-array-one.toml"),
+ include_str!("valid/table-array-one.json")
+);
+test!(
+ table_empty,
+ include_str!("valid/table-empty.toml"),
+ include_str!("valid/table-empty.json")
+);
+test!(
+ table_sub_empty,
+ include_str!("valid/table-sub-empty.toml"),
+ include_str!("valid/table-sub-empty.json")
+);
+test!(
+ table_multi_empty,
+ include_str!("valid/table-multi-empty.toml"),
+ include_str!("valid/table-multi-empty.json")
+);
+test!(
+ table_whitespace,
+ include_str!("valid/table-whitespace.toml"),
+ include_str!("valid/table-whitespace.json")
+);
+test!(
+ table_with_pound,
+ include_str!("valid/table-with-pound.toml"),
+ include_str!("valid/table-with-pound.json")
+);
+test!(
+ unicode_escape,
+ include_str!("valid/unicode-escape.toml"),
+ include_str!("valid/unicode-escape.json")
+);
+test!(
+ unicode_literal,
+ include_str!("valid/unicode-literal.toml"),
+ include_str!("valid/unicode-literal.json")
+);
+test!(
+ hard_example,
+ include_str!("valid/hard_example.toml"),
+ include_str!("valid/hard_example.json")
+);
+test!(
+ example2,
+ include_str!("valid/example2.toml"),
+ include_str!("valid/example2.json")
+);
+test!(
+ example3,
+ include_str!("valid/example-v0.3.0.toml"),
+ include_str!("valid/example-v0.3.0.json")
+);
+test!(
+ example4,
+ include_str!("valid/example-v0.4.0.toml"),
+ include_str!("valid/example-v0.4.0.json")
+);
+test!(
+ example_bom,
+ include_str!("valid/example-bom.toml"),
+ include_str!("valid/example.json")
+);
-test!(datetime_truncate,
- include_str!("valid/datetime-truncate.toml"),
- include_str!("valid/datetime-truncate.json"));
-test!(key_quote_newline,
- include_str!("valid/key-quote-newline.toml"),
- include_str!("valid/key-quote-newline.json"));
-test!(table_array_nest_no_keys,
- include_str!("valid/table-array-nest-no-keys.toml"),
- include_str!("valid/table-array-nest-no-keys.json"));
-test!(dotted_keys,
- include_str!("valid/dotted-keys.toml"),
- include_str!("valid/dotted-keys.json"));
+test!(
+ datetime_truncate,
+ include_str!("valid/datetime-truncate.toml"),
+ include_str!("valid/datetime-truncate.json")
+);
+test!(
+ key_quote_newline,
+ include_str!("valid/key-quote-newline.toml"),
+ include_str!("valid/key-quote-newline.json")
+);
+test!(
+ table_array_nest_no_keys,
+ include_str!("valid/table-array-nest-no-keys.toml"),
+ include_str!("valid/table-array-nest-no-keys.json")
+);
+test!(
+ dotted_keys,
+ include_str!("valid/dotted-keys.toml"),
+ include_str!("valid/dotted-keys.json")
+);
-test!(quote_surrounded_value,
- include_str!("valid/quote-surrounded-value.toml"),
- include_str!("valid/quote-surrounded-value.json"));
+test!(
+ quote_surrounded_value,
+ include_str!("valid/quote-surrounded-value.toml"),
+ include_str!("valid/quote-surrounded-value.json")
+);