From 04623535b1712a7dc369b93c1add63bef09f4f31 Mon Sep 17 00:00:00 2001 From: Roy7Kim Date: Mon, 15 May 2023 16:53:15 +0900 Subject: [PATCH 1/1] Import toml-test-data 1.3.0 --- .cargo_vcs_info.json | 6 + Cargo.toml | 40 +++ Cargo.toml.orig | 22 ++ README.md | 16 ++ assets/toml-test/README.md | 270 +++++++++++++++++++++ assets/toml-test/tests/.gitattributes | 1 + .../tests/invalid/array/double-comma-1.toml | 1 + .../tests/invalid/array/double-comma-2.toml | 2 + .../tests/invalid/array/extending-table.toml | 6 + .../tests/invalid/array/missing-separator.toml | 1 + .../toml-test/tests/invalid/array/no-close-2.toml | 1 + .../tests/invalid/array/no-close-table-2.toml | 1 + .../tests/invalid/array/no-close-table.toml | 1 + assets/toml-test/tests/invalid/array/no-close.toml | 1 + assets/toml-test/tests/invalid/array/tables-1.toml | 4 + assets/toml-test/tests/invalid/array/tables-2.toml | 10 + .../invalid/array/text-after-array-entries.toml | 4 + .../invalid/array/text-before-array-separator.toml | 4 + .../tests/invalid/array/text-in-array.toml | 5 + .../invalid/bool/almost-false-with-extra.toml | 1 + .../toml-test/tests/invalid/bool/almost-false.toml | 1 + .../tests/invalid/bool/almost-true-with-extra.toml | 1 + .../toml-test/tests/invalid/bool/almost-true.toml | 1 + assets/toml-test/tests/invalid/bool/just-f.toml | 1 + assets/toml-test/tests/invalid/bool/just-t.toml | 1 + .../toml-test/tests/invalid/bool/mixed-case.toml | 1 + .../tests/invalid/bool/starting-same-false.toml | 1 + .../tests/invalid/bool/starting-same-true.toml | 1 + .../tests/invalid/bool/wrong-case-false.toml | 1 + .../tests/invalid/bool/wrong-case-true.toml | 1 + .../toml-test/tests/invalid/control/bare-cr.toml | 2 + .../tests/invalid/control/bare-formfeed.toml | 1 + .../toml-test/tests/invalid/control/bare-null.toml | Bin 0 -> 27 bytes .../tests/invalid/control/bare-vertical-tab.toml | 1 + .../tests/invalid/control/comment-cr.toml | 1 + .../tests/invalid/control/comment-del.toml | 1 + .../tests/invalid/control/comment-lf.toml | 1 + .../tests/invalid/control/comment-null.toml | Bin 0 -> 26 bytes .../tests/invalid/control/comment-us.toml | 1 + .../toml-test/tests/invalid/control/control.multi | 33 +++ .../toml-test/tests/invalid/control/multi-del.toml | 1 + .../toml-test/tests/invalid/control/multi-lf.toml | 1 + .../tests/invalid/control/multi-null.toml | Bin 0 -> 25 bytes .../toml-test/tests/invalid/control/multi-us.toml | 1 + .../tests/invalid/control/rawmulti-del.toml | 1 + .../tests/invalid/control/rawmulti-lf.toml | 1 + .../tests/invalid/control/rawmulti-null.toml | Bin 0 -> 28 bytes .../tests/invalid/control/rawmulti-us.toml | 1 + .../tests/invalid/control/rawstring-del.toml | 1 + .../tests/invalid/control/rawstring-lf.toml | 1 + .../tests/invalid/control/rawstring-null.toml | Bin 0 -> 25 bytes .../tests/invalid/control/rawstring-us.toml | 1 + .../toml-test/tests/invalid/control/string-bs.toml | 1 + .../tests/invalid/control/string-del.toml | 1 + .../toml-test/tests/invalid/control/string-lf.toml | 1 + .../tests/invalid/control/string-null.toml | Bin 0 -> 22 bytes .../toml-test/tests/invalid/control/string-us.toml | 1 + .../tests/invalid/datetime/hour-over.toml | 2 + .../tests/invalid/datetime/mday-over.toml | 3 + .../tests/invalid/datetime/mday-under.toml | 3 + .../tests/invalid/datetime/minute-over.toml | 2 + .../tests/invalid/datetime/month-over.toml | 2 + .../tests/invalid/datetime/month-under.toml | 2 + .../invalid/datetime/no-leads-with-milli.toml | 2 + .../toml-test/tests/invalid/datetime/no-leads.toml | 2 + .../toml-test/tests/invalid/datetime/no-secs.toml | 2 + assets/toml-test/tests/invalid/datetime/no-t.toml | 2 + .../tests/invalid/datetime/second-over.toml | 3 + .../tests/invalid/datetime/time-no-leads-2.toml | 2 + .../tests/invalid/datetime/time-no-leads.toml | 2 + .../tests/invalid/datetime/trailing-t.toml | 2 + .../tests/invalid/encoding/bad-utf8-at-end.toml | 5 + .../invalid/encoding/bad-utf8-in-comment.toml | 1 + .../encoding/bad-utf8-in-multiline-literal.toml | 2 + .../invalid/encoding/bad-utf8-in-multiline.toml | 2 + .../encoding/bad-utf8-in-string-literal.toml | 2 + .../tests/invalid/encoding/bad-utf8-in-string.toml | 2 + .../tests/invalid/encoding/bom-not-at-start-1.toml | 1 + .../tests/invalid/encoding/bom-not-at-start-2.toml | 1 + .../tests/invalid/encoding/utf16-bom.toml | Bin 0 -> 38 bytes assets/toml-test/tests/invalid/encoding/utf16.toml | Bin 0 -> 42 bytes .../tests/invalid/float/double-point-1.toml | 1 + .../tests/invalid/float/double-point-2.toml | 1 + .../tests/invalid/float/exp-double-e-1.toml | 1 + .../tests/invalid/float/exp-double-e-2.toml | 1 + .../tests/invalid/float/exp-double-us.toml | 1 + .../tests/invalid/float/exp-leading-us.toml | 1 + .../toml-test/tests/invalid/float/exp-point-1.toml | 1 + .../toml-test/tests/invalid/float/exp-point-2.toml | 1 + .../tests/invalid/float/exp-trailing-us.toml | 1 + assets/toml-test/tests/invalid/float/float.multi | 40 +++ .../tests/invalid/float/inf-incomplete-1.toml | 1 + .../tests/invalid/float/inf-incomplete-2.toml | 1 + .../tests/invalid/float/inf-incomplete-3.toml | 1 + .../tests/invalid/float/inf_underscore.toml | 1 + .../tests/invalid/float/leading-point-neg.toml | 1 + .../tests/invalid/float/leading-point-plus.toml | 1 + .../tests/invalid/float/leading-point.toml | 1 + .../toml-test/tests/invalid/float/leading-us.toml | 1 + .../tests/invalid/float/leading-zero-neg.toml | 1 + .../tests/invalid/float/leading-zero-plus.toml | 1 + .../tests/invalid/float/leading-zero.toml | 1 + .../tests/invalid/float/nan-incomplete-1.toml | 1 + .../tests/invalid/float/nan-incomplete-2.toml | 1 + .../tests/invalid/float/nan-incomplete-3.toml | 1 + .../tests/invalid/float/nan_underscore.toml | 1 + .../tests/invalid/float/trailing-point-min.toml | 1 + .../tests/invalid/float/trailing-point-plus.toml | 1 + .../tests/invalid/float/trailing-point.toml | 1 + .../tests/invalid/float/trailing-us-exp.toml | 4 + .../toml-test/tests/invalid/float/trailing-us.toml | 1 + .../tests/invalid/float/us-after-point.toml | 1 + .../tests/invalid/float/us-before-point.toml | 1 + .../toml-test/tests/invalid/inline-table/add.toml | 3 + .../tests/invalid/inline-table/double-comma.toml | 1 + .../tests/invalid/inline-table/duplicate-key.toml | 2 + .../tests/invalid/inline-table/empty.toml | 1 + .../tests/invalid/inline-table/linebreak-1.toml | 4 + .../tests/invalid/inline-table/linebreak-2.toml | 2 + .../tests/invalid/inline-table/linebreak-3.toml | 2 + .../tests/invalid/inline-table/linebreak-4.toml | 4 + .../tests/invalid/inline-table/no-comma.toml | 1 + .../tests/invalid/inline-table/overwrite.toml | 3 + .../tests/invalid/inline-table/trailing-comma.toml | 3 + .../tests/invalid/integer/capital-bin.toml | 1 + .../tests/invalid/integer/capital-hex.toml | 1 + .../tests/invalid/integer/capital-oct.toml | 1 + .../tests/invalid/integer/double-sign-nex.toml | 1 + .../tests/invalid/integer/double-sign-plus.toml | 1 + .../toml-test/tests/invalid/integer/double-us.toml | 1 + .../tests/invalid/integer/incomplete-bin.toml | 1 + .../tests/invalid/integer/incomplete-hex.toml | 1 + .../tests/invalid/integer/incomplete-oct.toml | 1 + .../toml-test/tests/invalid/integer/integer.multi | 41 ++++ .../tests/invalid/integer/invalid-bin.toml | 1 + .../tests/invalid/integer/invalid-hex.toml | 1 + .../tests/invalid/integer/invalid-oct.toml | 1 + .../tests/invalid/integer/leading-us-bin.toml | 1 + .../tests/invalid/integer/leading-us-hex.toml | 1 + .../tests/invalid/integer/leading-us-oct.toml | 1 + .../tests/invalid/integer/leading-us.toml | 1 + .../tests/invalid/integer/leading-zero-1.toml | 1 + .../tests/invalid/integer/leading-zero-2.toml | 1 + .../tests/invalid/integer/leading-zero-3.toml | 1 + .../tests/invalid/integer/leading-zero-sign-1.toml | 1 + .../tests/invalid/integer/leading-zero-sign-2.toml | 1 + .../tests/invalid/integer/leading-zero-sign-3.toml | 1 + .../tests/invalid/integer/negative-bin.toml | 1 + .../tests/invalid/integer/negative-hex.toml | 1 + .../tests/invalid/integer/negative-oct.toml | 1 + .../tests/invalid/integer/positive-bin.toml | 1 + .../tests/invalid/integer/positive-hex.toml | 1 + .../tests/invalid/integer/positive-oct.toml | 1 + .../tests/invalid/integer/text-after-integer.toml | 1 + .../tests/invalid/integer/trailing-us-bin.toml | 1 + .../tests/invalid/integer/trailing-us-hex.toml | 1 + .../tests/invalid/integer/trailing-us-oct.toml | 1 + .../tests/invalid/integer/trailing-us.toml | 1 + .../tests/invalid/integer/us-after-bin.toml | 1 + .../tests/invalid/integer/us-after-hex.toml | 1 + .../tests/invalid/integer/us-after-oct.toml | 1 + .../toml-test/tests/invalid/key/after-array.toml | 1 + .../toml-test/tests/invalid/key/after-table.toml | 1 + .../toml-test/tests/invalid/key/after-value.toml | 1 + .../tests/invalid/key/bare-invalid-character.toml | 1 + .../tests/invalid/key/dotted-redefine-table.toml | 4 + .../tests/invalid/key/duplicate-keys.toml | 2 + assets/toml-test/tests/invalid/key/duplicate.toml | 3 + assets/toml-test/tests/invalid/key/empty.toml | 1 + assets/toml-test/tests/invalid/key/escape.toml | 1 + assets/toml-test/tests/invalid/key/hash.toml | 1 + assets/toml-test/tests/invalid/key/multiline.toml | 2 + assets/toml-test/tests/invalid/key/newline.toml | 2 + assets/toml-test/tests/invalid/key/no-eol.toml | 1 + .../toml-test/tests/invalid/key/open-bracket.toml | 1 + .../tests/invalid/key/partial-quoted.toml | 1 + .../tests/invalid/key/quoted-unclosed-1.toml | 1 + .../tests/invalid/key/quoted-unclosed-2.toml | 1 + .../tests/invalid/key/single-open-bracket.toml | 1 + assets/toml-test/tests/invalid/key/space.toml | 1 + .../tests/invalid/key/special-character.toml | 1 + .../toml-test/tests/invalid/key/start-bracket.toml | 3 + assets/toml-test/tests/invalid/key/start-dot.toml | 1 + assets/toml-test/tests/invalid/key/two-equals.toml | 1 + .../toml-test/tests/invalid/key/two-equals2.toml | 1 + .../toml-test/tests/invalid/key/two-equals3.toml | 1 + .../tests/invalid/key/without-value-1.toml | 1 + .../tests/invalid/key/without-value-2.toml | 1 + .../tests/invalid/key/without-value-3.toml | 1 + .../tests/invalid/key/without-value-4.toml | 1 + .../tests/invalid/spec/inline-table-2-0.toml | 3 + .../tests/invalid/spec/inline-table-3-0.toml | 3 + .../tests/invalid/spec/key-value-pair-1.toml | 1 + assets/toml-test/tests/invalid/spec/keys-2.toml | 3 + .../toml-test/tests/invalid/spec/string-4-0.toml | 7 + .../toml-test/tests/invalid/spec/string-7-0.toml | 7 + assets/toml-test/tests/invalid/spec/table-9-0.toml | 9 + assets/toml-test/tests/invalid/spec/table-9-1.toml | 9 + .../tests/invalid/string/bad-byte-escape.toml | 1 + .../tests/invalid/string/bad-codepoint.toml | 1 + .../toml-test/tests/invalid/string/bad-concat.toml | 1 + .../tests/invalid/string/bad-escape-1.toml | 1 + .../tests/invalid/string/bad-escape-2.toml | 2 + .../tests/invalid/string/bad-hex-esc-1.toml | 1 + .../tests/invalid/string/bad-hex-esc-2.toml | 1 + .../tests/invalid/string/bad-hex-esc-3.toml | 1 + .../tests/invalid/string/bad-hex-esc-4.toml | 1 + .../tests/invalid/string/bad-hex-esc-5.toml | 1 + .../tests/invalid/string/bad-hex-esc.multi | 4 + .../tests/invalid/string/bad-multiline.toml | 2 + .../tests/invalid/string/bad-slash-escape.toml | 1 + .../tests/invalid/string/bad-uni-esc-1.toml | 1 + .../tests/invalid/string/bad-uni-esc-2.toml | 1 + .../tests/invalid/string/bad-uni-esc-3.toml | 2 + .../tests/invalid/string/bad-uni-esc-4.toml | 1 + .../tests/invalid/string/bad-uni-esc-5.toml | 1 + .../tests/invalid/string/basic-byte-escapes.toml | 1 + ...ic-multiline-out-of-range-unicode-escape-1.toml | 1 + ...ic-multiline-out-of-range-unicode-escape-2.toml | 1 + .../invalid/string/basic-multiline-quotes.toml | 1 + .../string/basic-multiline-unknown-escape.toml | 1 + .../basic-out-of-range-unicode-escape-1.toml | 1 + .../basic-out-of-range-unicode-escape-2.toml | 1 + .../tests/invalid/string/basic-unknown-escape.toml | 1 + .../invalid/string/literal-multiline-quotes-1.toml | 2 + .../invalid/string/literal-multiline-quotes-2.toml | 1 + .../tests/invalid/string/missing-quotes.toml | 1 + .../invalid/string/multiline-bad-escape-1.toml | 2 + .../invalid/string/multiline-bad-escape-2.toml | 2 + .../invalid/string/multiline-bad-escape-3.toml | 3 + .../invalid/string/multiline-escape-space.toml | 3 + .../tests/invalid/string/multiline-no-close-2.toml | 1 + .../tests/invalid/string/multiline-no-close.toml | 2 + .../tests/invalid/string/multiline-quotes-1.toml | 1 + .../toml-test/tests/invalid/string/no-close.toml | 1 + .../tests/invalid/string/text-after-string.toml | 1 + .../tests/invalid/string/wrong-close.toml | 1 + .../invalid/table/append-with-dotted-keys-1.toml | 17 ++ .../invalid/table/append-with-dotted-keys-2.toml | 8 + .../toml-test/tests/invalid/table/array-empty.toml | 2 + .../tests/invalid/table/array-implicit.toml | 14 ++ .../tests/invalid/table/array-missing-bracket.toml | 2 + .../invalid/table/duplicate-key-dotted-table.toml | 4 + .../invalid/table/duplicate-key-dotted-table2.toml | 4 + .../tests/invalid/table/duplicate-key-table.toml | 5 + .../tests/invalid/table/duplicate-table-array.toml | 2 + .../invalid/table/duplicate-table-array2.toml | 2 + .../toml-test/tests/invalid/table/duplicate.toml | 5 + .../tests/invalid/table/empty-implicit-table.toml | 1 + assets/toml-test/tests/invalid/table/empty.toml | 1 + .../toml-test/tests/invalid/table/equals-sign.toml | 1 + assets/toml-test/tests/invalid/table/llbrace.toml | 1 + .../tests/invalid/table/nested-brackets-close.toml | 2 + .../tests/invalid/table/nested-brackets-open.toml | 2 + .../tests/invalid/table/quoted-no-close.toml | 2 + assets/toml-test/tests/invalid/table/redefine.toml | 6 + assets/toml-test/tests/invalid/table/rrbrace.toml | 1 + .../tests/invalid/table/text-after-table.toml | 1 + .../toml-test/tests/invalid/table/whitespace.toml | 1 + .../toml-test/tests/invalid/table/with-pound.toml | 2 + assets/toml-test/tests/valid/array/array.json | 68 ++++++ assets/toml-test/tests/valid/array/array.toml | 12 + assets/toml-test/tests/valid/array/bool.json | 12 + assets/toml-test/tests/valid/array/bool.toml | 1 + assets/toml-test/tests/valid/array/empty.json | 11 + assets/toml-test/tests/valid/array/empty.toml | 1 + .../toml-test/tests/valid/array/hetergeneous.json | 34 +++ .../toml-test/tests/valid/array/hetergeneous.toml | 1 + .../tests/valid/array/mixed-int-array.json | 14 ++ .../tests/valid/array/mixed-int-array.toml | 1 + .../tests/valid/array/mixed-int-float.json | 12 + .../tests/valid/array/mixed-int-float.toml | 1 + .../tests/valid/array/mixed-int-string.json | 12 + .../tests/valid/array/mixed-int-string.toml | 1 + .../tests/valid/array/mixed-string-table.json | 38 +++ .../tests/valid/array/mixed-string-table.toml | 11 + .../toml-test/tests/valid/array/nested-double.json | 28 +++ .../toml-test/tests/valid/array/nested-double.toml | 6 + .../tests/valid/array/nested-inline-table.json | 7 + .../tests/valid/array/nested-inline-table.toml | 1 + assets/toml-test/tests/valid/array/nested.json | 16 ++ assets/toml-test/tests/valid/array/nested.toml | 1 + assets/toml-test/tests/valid/array/nospaces.json | 16 ++ assets/toml-test/tests/valid/array/nospaces.toml | 1 + .../tests/valid/array/string-quote-comma-2.json | 8 + .../tests/valid/array/string-quote-comma-2.toml | 1 + .../tests/valid/array/string-quote-comma.json | 12 + .../tests/valid/array/string-quote-comma.toml | 4 + .../tests/valid/array/string-with-comma.json | 12 + .../tests/valid/array/string-with-comma.toml | 4 + assets/toml-test/tests/valid/array/strings.json | 20 ++ assets/toml-test/tests/valid/array/strings.toml | 1 + .../valid/array/table-array-string-backslash.json | 10 + .../valid/array/table-array-string-backslash.toml | 1 + assets/toml-test/tests/valid/bool/bool.json | 10 + assets/toml-test/tests/valid/bool/bool.toml | 2 + assets/toml-test/tests/valid/comment/at-eof.json | 6 + assets/toml-test/tests/valid/comment/at-eof.toml | 2 + assets/toml-test/tests/valid/comment/at-eof2.json | 6 + assets/toml-test/tests/valid/comment/at-eof2.toml | 2 + .../toml-test/tests/valid/comment/everywhere.json | 26 ++ .../toml-test/tests/valid/comment/everywhere.toml | 28 +++ assets/toml-test/tests/valid/comment/noeol.json | 1 + assets/toml-test/tests/valid/comment/noeol.toml | 1 + assets/toml-test/tests/valid/comment/tricky.json | 98 ++++++++ assets/toml-test/tests/valid/comment/tricky.toml | 31 +++ .../toml-test/tests/valid/datetime/datetime.json | 10 + .../toml-test/tests/valid/datetime/datetime.toml | 2 + .../toml-test/tests/valid/datetime/local-date.json | 6 + .../toml-test/tests/valid/datetime/local-date.toml | 1 + .../toml-test/tests/valid/datetime/local-time.json | 10 + .../toml-test/tests/valid/datetime/local-time.toml | 2 + assets/toml-test/tests/valid/datetime/local.json | 14 ++ assets/toml-test/tests/valid/datetime/local.toml | 3 + .../tests/valid/datetime/milliseconds.json | 18 ++ .../tests/valid/datetime/milliseconds.toml | 4 + .../toml-test/tests/valid/datetime/no-seconds.json | 18 ++ .../toml-test/tests/valid/datetime/no-seconds.toml | 5 + .../toml-test/tests/valid/datetime/timezone.json | 18 ++ .../toml-test/tests/valid/datetime/timezone.toml | 4 + assets/toml-test/tests/valid/empty-file.json | 1 + assets/toml-test/tests/valid/empty-file.toml | 0 assets/toml-test/tests/valid/example.json | 26 ++ assets/toml-test/tests/valid/example.toml | 5 + assets/toml-test/tests/valid/float/exponent.json | 34 +++ assets/toml-test/tests/valid/float/exponent.toml | 8 + assets/toml-test/tests/valid/float/float.json | 18 ++ assets/toml-test/tests/valid/float/float.toml | 4 + .../toml-test/tests/valid/float/inf-and-nan.json | 26 ++ .../toml-test/tests/valid/float/inf-and-nan.toml | 8 + assets/toml-test/tests/valid/float/long.json | 10 + assets/toml-test/tests/valid/float/long.toml | 2 + assets/toml-test/tests/valid/float/underscore.json | 14 ++ assets/toml-test/tests/valid/float/underscore.toml | 3 + assets/toml-test/tests/valid/float/zero.json | 30 +++ assets/toml-test/tests/valid/float/zero.toml | 7 + .../tests/valid/implicit-and-explicit-after.json | 16 ++ .../tests/valid/implicit-and-explicit-after.toml | 5 + .../tests/valid/implicit-and-explicit-before.json | 16 ++ .../tests/valid/implicit-and-explicit-before.toml | 5 + assets/toml-test/tests/valid/implicit-groups.json | 12 + assets/toml-test/tests/valid/implicit-groups.toml | 2 + .../toml-test/tests/valid/inline-table/array.json | 34 +++ .../toml-test/tests/valid/inline-table/array.toml | 3 + .../toml-test/tests/valid/inline-table/bool.json | 12 + .../toml-test/tests/valid/inline-table/bool.toml | 1 + .../toml-test/tests/valid/inline-table/empty.json | 30 +++ .../toml-test/tests/valid/inline-table/empty.toml | 6 + .../tests/valid/inline-table/end-in-bool.json | 16 ++ .../tests/valid/inline-table/end-in-bool.toml | 1 + .../tests/valid/inline-table/inline-table.json | 48 ++++ .../tests/valid/inline-table/inline-table.toml | 5 + .../tests/valid/inline-table/key-dotted.json | 140 +++++++++++ .../tests/valid/inline-table/key-dotted.toml | 23 ++ .../tests/valid/inline-table/multiline.json | 20 ++ .../tests/valid/inline-table/multiline.toml | 4 + .../toml-test/tests/valid/inline-table/nest.json | 64 +++++ .../toml-test/tests/valid/inline-table/nest.toml | 10 + .../tests/valid/inline-table/newline.json | 50 ++++ .../tests/valid/inline-table/newline.toml | 24 ++ assets/toml-test/tests/valid/integer/integer.json | 18 ++ assets/toml-test/tests/valid/integer/integer.toml | 4 + assets/toml-test/tests/valid/integer/literals.json | 38 +++ assets/toml-test/tests/valid/integer/literals.toml | 11 + assets/toml-test/tests/valid/integer/long.json | 10 + assets/toml-test/tests/valid/integer/long.toml | 2 + .../toml-test/tests/valid/integer/underscore.json | 10 + .../toml-test/tests/valid/integer/underscore.toml | 2 + assets/toml-test/tests/valid/integer/zero.json | 50 ++++ assets/toml-test/tests/valid/integer/zero.toml | 15 ++ assets/toml-test/tests/valid/key/alphanum.json | 46 ++++ assets/toml-test/tests/valid/key/alphanum.toml | 14 ++ .../toml-test/tests/valid/key/case-sensitive.json | 38 +++ .../toml-test/tests/valid/key/case-sensitive.toml | 13 + assets/toml-test/tests/valid/key/dotted.json | 132 ++++++++++ assets/toml-test/tests/valid/key/dotted.toml | 35 +++ assets/toml-test/tests/valid/key/empty.json | 6 + assets/toml-test/tests/valid/key/empty.toml | 1 + .../toml-test/tests/valid/key/equals-nospace.json | 6 + .../toml-test/tests/valid/key/equals-nospace.toml | 1 + assets/toml-test/tests/valid/key/escapes.json | 24 ++ assets/toml-test/tests/valid/key/escapes.toml | 10 + .../toml-test/tests/valid/key/numeric-dotted.json | 8 + .../toml-test/tests/valid/key/numeric-dotted.toml | 1 + assets/toml-test/tests/valid/key/numeric.json | 6 + assets/toml-test/tests/valid/key/numeric.toml | 1 + assets/toml-test/tests/valid/key/quoted-dots.json | 32 +++ assets/toml-test/tests/valid/key/quoted-dots.toml | 10 + assets/toml-test/tests/valid/key/space.json | 16 ++ assets/toml-test/tests/valid/key/space.toml | 6 + .../toml-test/tests/valid/key/special-chars.json | 6 + .../toml-test/tests/valid/key/special-chars.toml | 1 + assets/toml-test/tests/valid/key/special-word.json | 18 ++ assets/toml-test/tests/valid/key/special-word.toml | 5 + assets/toml-test/tests/valid/newline-crlf.json | 10 + assets/toml-test/tests/valid/newline-crlf.toml | 2 + assets/toml-test/tests/valid/newline-lf.json | 10 + assets/toml-test/tests/valid/newline-lf.toml | 2 + .../tests/valid/spec-example-1-compact.json | 100 ++++++++ .../tests/valid/spec-example-1-compact.toml | 23 ++ assets/toml-test/tests/valid/spec-example-1.json | 100 ++++++++ assets/toml-test/tests/valid/spec-example-1.toml | 33 +++ assets/toml-test/tests/valid/spec/array-0.json | 146 +++++++++++ assets/toml-test/tests/valid/spec/array-0.toml | 12 + assets/toml-test/tests/valid/spec/array-1.json | 26 ++ assets/toml-test/tests/valid/spec/array-1.toml | 8 + .../tests/valid/spec/array-of-tables-0.json | 29 +++ .../tests/valid/spec/array-of-tables-0.toml | 11 + .../tests/valid/spec/array-of-tables-1.json | 48 ++++ .../tests/valid/spec/array-of-tables-1.toml | 19 ++ .../tests/valid/spec/array-of-tables-2.json | 46 ++++ .../tests/valid/spec/array-of-tables-2.toml | 3 + assets/toml-test/tests/valid/spec/boolean-0.json | 10 + assets/toml-test/tests/valid/spec/boolean-0.toml | 2 + assets/toml-test/tests/valid/spec/comment-0.json | 10 + assets/toml-test/tests/valid/spec/comment-0.toml | 3 + assets/toml-test/tests/valid/spec/float-0.json | 30 +++ assets/toml-test/tests/valid/spec/float-0.toml | 12 + assets/toml-test/tests/valid/spec/float-1.json | 6 + assets/toml-test/tests/valid/spec/float-1.toml | 1 + assets/toml-test/tests/valid/spec/float-2.json | 26 ++ assets/toml-test/tests/valid/spec/float-2.toml | 9 + .../toml-test/tests/valid/spec/inline-table-0.json | 30 +++ .../toml-test/tests/valid/spec/inline-table-0.toml | 3 + .../toml-test/tests/valid/spec/inline-table-1.json | 30 +++ .../toml-test/tests/valid/spec/inline-table-1.toml | 10 + .../toml-test/tests/valid/spec/inline-table-2.json | 10 + .../toml-test/tests/valid/spec/inline-table-2.toml | 3 + .../toml-test/tests/valid/spec/inline-table-3.json | 10 + .../toml-test/tests/valid/spec/inline-table-3.toml | 3 + assets/toml-test/tests/valid/spec/integer-0.json | 18 ++ assets/toml-test/tests/valid/spec/integer-0.toml | 4 + assets/toml-test/tests/valid/spec/integer-1.json | 18 ++ assets/toml-test/tests/valid/spec/integer-1.toml | 4 + assets/toml-test/tests/valid/spec/integer-2.json | 26 ++ assets/toml-test/tests/valid/spec/integer-2.toml | 11 + .../tests/valid/spec/key-value-pair-0.json | 6 + .../tests/valid/spec/key-value-pair-0.toml | 1 + assets/toml-test/tests/valid/spec/keys-0.json | 18 ++ assets/toml-test/tests/valid/spec/keys-0.toml | 4 + assets/toml-test/tests/valid/spec/keys-1.json | 22 ++ assets/toml-test/tests/valid/spec/keys-1.toml | 5 + assets/toml-test/tests/valid/spec/keys-3.json | 22 ++ assets/toml-test/tests/valid/spec/keys-3.toml | 4 + assets/toml-test/tests/valid/spec/keys-4.json | 16 ++ assets/toml-test/tests/valid/spec/keys-4.toml | 3 + assets/toml-test/tests/valid/spec/keys-5.json | 30 +++ assets/toml-test/tests/valid/spec/keys-5.toml | 10 + assets/toml-test/tests/valid/spec/keys-6.json | 30 +++ assets/toml-test/tests/valid/spec/keys-6.toml | 9 + assets/toml-test/tests/valid/spec/keys-7.json | 8 + assets/toml-test/tests/valid/spec/keys-7.toml | 1 + .../toml-test/tests/valid/spec/local-date-0.json | 6 + .../toml-test/tests/valid/spec/local-date-0.toml | 1 + .../tests/valid/spec/local-date-time-0.json | 10 + .../tests/valid/spec/local-date-time-0.toml | 2 + .../toml-test/tests/valid/spec/local-time-0.json | 10 + .../toml-test/tests/valid/spec/local-time-0.toml | 2 + .../tests/valid/spec/offset-date-time-0.json | 14 ++ .../tests/valid/spec/offset-date-time-0.toml | 3 + .../tests/valid/spec/offset-date-time-1.json | 6 + .../tests/valid/spec/offset-date-time-1.toml | 1 + assets/toml-test/tests/valid/spec/string-0.json | 6 + assets/toml-test/tests/valid/spec/string-0.toml | 1 + assets/toml-test/tests/valid/spec/string-1.json | 6 + assets/toml-test/tests/valid/spec/string-1.toml | 3 + assets/toml-test/tests/valid/spec/string-2.json | 10 + assets/toml-test/tests/valid/spec/string-2.toml | 5 + assets/toml-test/tests/valid/spec/string-3.json | 14 ++ assets/toml-test/tests/valid/spec/string-3.toml | 15 ++ assets/toml-test/tests/valid/spec/string-4.json | 18 ++ assets/toml-test/tests/valid/spec/string-4.toml | 7 + assets/toml-test/tests/valid/spec/string-5.json | 18 ++ assets/toml-test/tests/valid/spec/string-5.toml | 5 + assets/toml-test/tests/valid/spec/string-6.json | 10 + assets/toml-test/tests/valid/spec/string-6.toml | 7 + assets/toml-test/tests/valid/spec/string-7.json | 14 ++ assets/toml-test/tests/valid/spec/string-7.toml | 7 + assets/toml-test/tests/valid/spec/table-0.json | 3 + assets/toml-test/tests/valid/spec/table-0.toml | 1 + assets/toml-test/tests/valid/spec/table-1.json | 22 ++ assets/toml-test/tests/valid/spec/table-1.toml | 7 + assets/toml-test/tests/valid/spec/table-2.json | 12 + assets/toml-test/tests/valid/spec/table-2.toml | 2 + assets/toml-test/tests/valid/spec/table-3.json | 22 ++ assets/toml-test/tests/valid/spec/table-3.toml | 4 + assets/toml-test/tests/valid/spec/table-4.json | 9 + assets/toml-test/tests/valid/spec/table-4.toml | 6 + assets/toml-test/tests/valid/spec/table-5.json | 7 + assets/toml-test/tests/valid/spec/table-5.toml | 4 + assets/toml-test/tests/valid/spec/table-6.json | 7 + assets/toml-test/tests/valid/spec/table-6.toml | 4 + assets/toml-test/tests/valid/spec/table-7.json | 20 ++ assets/toml-test/tests/valid/spec/table-7.toml | 8 + assets/toml-test/tests/valid/spec/table-8.json | 16 ++ assets/toml-test/tests/valid/spec/table-8.toml | 7 + assets/toml-test/tests/valid/spec/table-9.json | 22 ++ assets/toml-test/tests/valid/spec/table-9.toml | 9 + .../tests/valid/string/double-quote-escape.json | 6 + .../tests/valid/string/double-quote-escape.toml | 1 + assets/toml-test/tests/valid/string/empty.json | 6 + assets/toml-test/tests/valid/string/empty.toml | 1 + .../toml-test/tests/valid/string/escape-esc.json | 6 + .../toml-test/tests/valid/string/escape-esc.toml | 1 + .../tests/valid/string/escape-tricky.json | 30 +++ .../tests/valid/string/escape-tricky.toml | 15 ++ .../tests/valid/string/escaped-escape.json | 6 + .../tests/valid/string/escaped-escape.toml | 1 + assets/toml-test/tests/valid/string/escapes.json | 54 +++++ assets/toml-test/tests/valid/string/escapes.toml | 13 + .../toml-test/tests/valid/string/hex-escape.json | 34 +++ .../toml-test/tests/valid/string/hex-escape.toml | 21 ++ .../tests/valid/string/multiline-escaped-crlf.json | 6 + .../tests/valid/string/multiline-escaped-crlf.toml | 4 + .../tests/valid/string/multiline-quotes.json | 46 ++++ .../tests/valid/string/multiline-quotes.toml | 19 ++ assets/toml-test/tests/valid/string/multiline.json | 54 +++++ assets/toml-test/tests/valid/string/multiline.toml | 52 ++++ assets/toml-test/tests/valid/string/nl.json | 22 ++ assets/toml-test/tests/valid/string/nl.toml | 6 + .../tests/valid/string/raw-multiline.json | 18 ++ .../tests/valid/string/raw-multiline.toml | 18 ++ assets/toml-test/tests/valid/string/raw.json | 34 +++ assets/toml-test/tests/valid/string/raw.toml | 8 + assets/toml-test/tests/valid/string/simple.json | 6 + assets/toml-test/tests/valid/string/simple.toml | 1 + .../tests/valid/string/unicode-escape.json | 10 + .../tests/valid/string/unicode-escape.toml | 2 + .../tests/valid/string/unicode-literal.json | 6 + .../tests/valid/string/unicode-literal.toml | 1 + .../toml-test/tests/valid/string/with-pound.json | 10 + .../toml-test/tests/valid/string/with-pound.toml | 2 + .../tests/valid/table/array-implicit.json | 12 + .../tests/valid/table/array-implicit.toml | 2 + assets/toml-test/tests/valid/table/array-many.json | 34 +++ assets/toml-test/tests/valid/table/array-many.toml | 11 + assets/toml-test/tests/valid/table/array-nest.json | 44 ++++ assets/toml-test/tests/valid/table/array-nest.toml | 17 ++ assets/toml-test/tests/valid/table/array-one.json | 14 ++ assets/toml-test/tests/valid/table/array-one.toml | 3 + .../tests/valid/table/array-table-array.json | 24 ++ .../tests/valid/table/array-table-array.toml | 7 + assets/toml-test/tests/valid/table/empty.json | 3 + assets/toml-test/tests/valid/table/empty.toml | 1 + assets/toml-test/tests/valid/table/keyword.json | 6 + assets/toml-test/tests/valid/table/keyword.toml | 9 + assets/toml-test/tests/valid/table/names.json | 30 +++ assets/toml-test/tests/valid/table/names.toml | 9 + assets/toml-test/tests/valid/table/no-eol.json | 3 + assets/toml-test/tests/valid/table/no-eol.toml | 1 + assets/toml-test/tests/valid/table/sub-empty.json | 5 + assets/toml-test/tests/valid/table/sub-empty.toml | 2 + assets/toml-test/tests/valid/table/sub.json | 20 ++ assets/toml-test/tests/valid/table/sub.toml | 9 + assets/toml-test/tests/valid/table/whitespace.json | 3 + assets/toml-test/tests/valid/table/whitespace.toml | 1 + .../tests/valid/table/with-literal-string.json | 12 + .../tests/valid/table/with-literal-string.toml | 4 + assets/toml-test/tests/valid/table/with-pound.json | 8 + assets/toml-test/tests/valid/table/with-pound.toml | 2 + .../tests/valid/table/with-single-quotes.json | 12 + .../tests/valid/table/with-single-quotes.toml | 4 + .../toml-test/tests/valid/table/without-super.json | 9 + .../toml-test/tests/valid/table/without-super.toml | 5 + src/lib.rs | 63 +++++ 565 files changed, 5359 insertions(+) create mode 100644 .cargo_vcs_info.json create mode 100644 Cargo.toml create mode 100644 Cargo.toml.orig create mode 100644 README.md create mode 100644 assets/toml-test/README.md create mode 100644 assets/toml-test/tests/.gitattributes create mode 100644 assets/toml-test/tests/invalid/array/double-comma-1.toml create mode 100644 assets/toml-test/tests/invalid/array/double-comma-2.toml create mode 100644 assets/toml-test/tests/invalid/array/extending-table.toml create mode 100644 assets/toml-test/tests/invalid/array/missing-separator.toml create mode 100644 assets/toml-test/tests/invalid/array/no-close-2.toml create mode 100644 assets/toml-test/tests/invalid/array/no-close-table-2.toml create mode 100644 assets/toml-test/tests/invalid/array/no-close-table.toml create mode 100644 assets/toml-test/tests/invalid/array/no-close.toml create mode 100644 assets/toml-test/tests/invalid/array/tables-1.toml create mode 100644 assets/toml-test/tests/invalid/array/tables-2.toml create mode 100644 assets/toml-test/tests/invalid/array/text-after-array-entries.toml create mode 100644 assets/toml-test/tests/invalid/array/text-before-array-separator.toml create mode 100644 assets/toml-test/tests/invalid/array/text-in-array.toml create mode 100644 assets/toml-test/tests/invalid/bool/almost-false-with-extra.toml create mode 100644 assets/toml-test/tests/invalid/bool/almost-false.toml create mode 100644 assets/toml-test/tests/invalid/bool/almost-true-with-extra.toml create mode 100644 assets/toml-test/tests/invalid/bool/almost-true.toml create mode 100644 assets/toml-test/tests/invalid/bool/just-f.toml create mode 100644 assets/toml-test/tests/invalid/bool/just-t.toml create mode 100644 assets/toml-test/tests/invalid/bool/mixed-case.toml create mode 100644 assets/toml-test/tests/invalid/bool/starting-same-false.toml create mode 100644 assets/toml-test/tests/invalid/bool/starting-same-true.toml create mode 100644 assets/toml-test/tests/invalid/bool/wrong-case-false.toml create mode 100644 assets/toml-test/tests/invalid/bool/wrong-case-true.toml create mode 100644 assets/toml-test/tests/invalid/control/bare-cr.toml create mode 100644 assets/toml-test/tests/invalid/control/bare-formfeed.toml create mode 100644 assets/toml-test/tests/invalid/control/bare-null.toml create mode 100644 assets/toml-test/tests/invalid/control/bare-vertical-tab.toml create mode 100644 assets/toml-test/tests/invalid/control/comment-cr.toml create mode 100644 assets/toml-test/tests/invalid/control/comment-del.toml create mode 100644 assets/toml-test/tests/invalid/control/comment-lf.toml create mode 100644 assets/toml-test/tests/invalid/control/comment-null.toml create mode 100644 assets/toml-test/tests/invalid/control/comment-us.toml create mode 100644 assets/toml-test/tests/invalid/control/control.multi create mode 100644 assets/toml-test/tests/invalid/control/multi-del.toml create mode 100644 assets/toml-test/tests/invalid/control/multi-lf.toml create mode 100644 assets/toml-test/tests/invalid/control/multi-null.toml create mode 100644 assets/toml-test/tests/invalid/control/multi-us.toml create mode 100644 assets/toml-test/tests/invalid/control/rawmulti-del.toml create mode 100644 assets/toml-test/tests/invalid/control/rawmulti-lf.toml create mode 100644 assets/toml-test/tests/invalid/control/rawmulti-null.toml create mode 100644 assets/toml-test/tests/invalid/control/rawmulti-us.toml create mode 100644 assets/toml-test/tests/invalid/control/rawstring-del.toml create mode 100644 assets/toml-test/tests/invalid/control/rawstring-lf.toml create mode 100644 assets/toml-test/tests/invalid/control/rawstring-null.toml create mode 100644 assets/toml-test/tests/invalid/control/rawstring-us.toml create mode 100644 assets/toml-test/tests/invalid/control/string-bs.toml create mode 100644 assets/toml-test/tests/invalid/control/string-del.toml create mode 100644 assets/toml-test/tests/invalid/control/string-lf.toml create mode 100644 assets/toml-test/tests/invalid/control/string-null.toml create mode 100644 assets/toml-test/tests/invalid/control/string-us.toml create mode 100644 assets/toml-test/tests/invalid/datetime/hour-over.toml create mode 100644 assets/toml-test/tests/invalid/datetime/mday-over.toml create mode 100644 assets/toml-test/tests/invalid/datetime/mday-under.toml create mode 100644 assets/toml-test/tests/invalid/datetime/minute-over.toml create mode 100644 assets/toml-test/tests/invalid/datetime/month-over.toml create mode 100644 assets/toml-test/tests/invalid/datetime/month-under.toml create mode 100644 assets/toml-test/tests/invalid/datetime/no-leads-with-milli.toml create mode 100644 assets/toml-test/tests/invalid/datetime/no-leads.toml create mode 100644 assets/toml-test/tests/invalid/datetime/no-secs.toml create mode 100644 assets/toml-test/tests/invalid/datetime/no-t.toml create mode 100644 assets/toml-test/tests/invalid/datetime/second-over.toml create mode 100644 assets/toml-test/tests/invalid/datetime/time-no-leads-2.toml create mode 100644 assets/toml-test/tests/invalid/datetime/time-no-leads.toml create mode 100644 assets/toml-test/tests/invalid/datetime/trailing-t.toml create mode 100644 assets/toml-test/tests/invalid/encoding/bad-utf8-at-end.toml create mode 100644 assets/toml-test/tests/invalid/encoding/bad-utf8-in-comment.toml create mode 100644 assets/toml-test/tests/invalid/encoding/bad-utf8-in-multiline-literal.toml create mode 100644 assets/toml-test/tests/invalid/encoding/bad-utf8-in-multiline.toml create mode 100644 assets/toml-test/tests/invalid/encoding/bad-utf8-in-string-literal.toml create mode 100644 assets/toml-test/tests/invalid/encoding/bad-utf8-in-string.toml create mode 100644 assets/toml-test/tests/invalid/encoding/bom-not-at-start-1.toml create mode 100644 assets/toml-test/tests/invalid/encoding/bom-not-at-start-2.toml create mode 100644 assets/toml-test/tests/invalid/encoding/utf16-bom.toml create mode 100644 assets/toml-test/tests/invalid/encoding/utf16.toml create mode 100644 assets/toml-test/tests/invalid/float/double-point-1.toml create mode 100644 assets/toml-test/tests/invalid/float/double-point-2.toml create mode 100644 assets/toml-test/tests/invalid/float/exp-double-e-1.toml create mode 100644 assets/toml-test/tests/invalid/float/exp-double-e-2.toml create mode 100644 assets/toml-test/tests/invalid/float/exp-double-us.toml create mode 100644 assets/toml-test/tests/invalid/float/exp-leading-us.toml create mode 100644 assets/toml-test/tests/invalid/float/exp-point-1.toml create mode 100644 assets/toml-test/tests/invalid/float/exp-point-2.toml create mode 100644 assets/toml-test/tests/invalid/float/exp-trailing-us.toml create mode 100644 assets/toml-test/tests/invalid/float/float.multi create mode 100644 assets/toml-test/tests/invalid/float/inf-incomplete-1.toml create mode 100644 assets/toml-test/tests/invalid/float/inf-incomplete-2.toml create mode 100644 assets/toml-test/tests/invalid/float/inf-incomplete-3.toml create mode 100644 assets/toml-test/tests/invalid/float/inf_underscore.toml create mode 100644 assets/toml-test/tests/invalid/float/leading-point-neg.toml create mode 100644 assets/toml-test/tests/invalid/float/leading-point-plus.toml create mode 100644 assets/toml-test/tests/invalid/float/leading-point.toml create mode 100644 assets/toml-test/tests/invalid/float/leading-us.toml create mode 100644 assets/toml-test/tests/invalid/float/leading-zero-neg.toml create mode 100644 assets/toml-test/tests/invalid/float/leading-zero-plus.toml create mode 100644 assets/toml-test/tests/invalid/float/leading-zero.toml create mode 100644 assets/toml-test/tests/invalid/float/nan-incomplete-1.toml create mode 100644 assets/toml-test/tests/invalid/float/nan-incomplete-2.toml create mode 100644 assets/toml-test/tests/invalid/float/nan-incomplete-3.toml create mode 100644 assets/toml-test/tests/invalid/float/nan_underscore.toml create mode 100644 assets/toml-test/tests/invalid/float/trailing-point-min.toml create mode 100644 assets/toml-test/tests/invalid/float/trailing-point-plus.toml create mode 100644 assets/toml-test/tests/invalid/float/trailing-point.toml create mode 100644 assets/toml-test/tests/invalid/float/trailing-us-exp.toml create mode 100644 assets/toml-test/tests/invalid/float/trailing-us.toml create mode 100644 assets/toml-test/tests/invalid/float/us-after-point.toml create mode 100644 assets/toml-test/tests/invalid/float/us-before-point.toml create mode 100644 assets/toml-test/tests/invalid/inline-table/add.toml create mode 100644 assets/toml-test/tests/invalid/inline-table/double-comma.toml create mode 100644 assets/toml-test/tests/invalid/inline-table/duplicate-key.toml create mode 100644 assets/toml-test/tests/invalid/inline-table/empty.toml create mode 100644 assets/toml-test/tests/invalid/inline-table/linebreak-1.toml create mode 100644 assets/toml-test/tests/invalid/inline-table/linebreak-2.toml create mode 100644 assets/toml-test/tests/invalid/inline-table/linebreak-3.toml create mode 100644 assets/toml-test/tests/invalid/inline-table/linebreak-4.toml create mode 100644 assets/toml-test/tests/invalid/inline-table/no-comma.toml create mode 100644 assets/toml-test/tests/invalid/inline-table/overwrite.toml create mode 100644 assets/toml-test/tests/invalid/inline-table/trailing-comma.toml create mode 100644 assets/toml-test/tests/invalid/integer/capital-bin.toml create mode 100644 assets/toml-test/tests/invalid/integer/capital-hex.toml create mode 100644 assets/toml-test/tests/invalid/integer/capital-oct.toml create mode 100644 assets/toml-test/tests/invalid/integer/double-sign-nex.toml create mode 100644 assets/toml-test/tests/invalid/integer/double-sign-plus.toml create mode 100644 assets/toml-test/tests/invalid/integer/double-us.toml create mode 100644 assets/toml-test/tests/invalid/integer/incomplete-bin.toml create mode 100644 assets/toml-test/tests/invalid/integer/incomplete-hex.toml create mode 100644 assets/toml-test/tests/invalid/integer/incomplete-oct.toml create mode 100644 assets/toml-test/tests/invalid/integer/integer.multi create mode 100644 assets/toml-test/tests/invalid/integer/invalid-bin.toml create mode 100644 assets/toml-test/tests/invalid/integer/invalid-hex.toml create mode 100644 assets/toml-test/tests/invalid/integer/invalid-oct.toml create mode 100644 assets/toml-test/tests/invalid/integer/leading-us-bin.toml create mode 100644 assets/toml-test/tests/invalid/integer/leading-us-hex.toml create mode 100644 assets/toml-test/tests/invalid/integer/leading-us-oct.toml create mode 100644 assets/toml-test/tests/invalid/integer/leading-us.toml create mode 100644 assets/toml-test/tests/invalid/integer/leading-zero-1.toml create mode 100644 assets/toml-test/tests/invalid/integer/leading-zero-2.toml create mode 100644 assets/toml-test/tests/invalid/integer/leading-zero-3.toml create mode 100644 assets/toml-test/tests/invalid/integer/leading-zero-sign-1.toml create mode 100644 assets/toml-test/tests/invalid/integer/leading-zero-sign-2.toml create mode 100644 assets/toml-test/tests/invalid/integer/leading-zero-sign-3.toml create mode 100644 assets/toml-test/tests/invalid/integer/negative-bin.toml create mode 100644 assets/toml-test/tests/invalid/integer/negative-hex.toml create mode 100644 assets/toml-test/tests/invalid/integer/negative-oct.toml create mode 100644 assets/toml-test/tests/invalid/integer/positive-bin.toml create mode 100644 assets/toml-test/tests/invalid/integer/positive-hex.toml create mode 100644 assets/toml-test/tests/invalid/integer/positive-oct.toml create mode 100644 assets/toml-test/tests/invalid/integer/text-after-integer.toml create mode 100644 assets/toml-test/tests/invalid/integer/trailing-us-bin.toml create mode 100644 assets/toml-test/tests/invalid/integer/trailing-us-hex.toml create mode 100644 assets/toml-test/tests/invalid/integer/trailing-us-oct.toml create mode 100644 assets/toml-test/tests/invalid/integer/trailing-us.toml create mode 100644 assets/toml-test/tests/invalid/integer/us-after-bin.toml create mode 100644 assets/toml-test/tests/invalid/integer/us-after-hex.toml create mode 100644 assets/toml-test/tests/invalid/integer/us-after-oct.toml create mode 100644 assets/toml-test/tests/invalid/key/after-array.toml create mode 100644 assets/toml-test/tests/invalid/key/after-table.toml create mode 100644 assets/toml-test/tests/invalid/key/after-value.toml create mode 100644 assets/toml-test/tests/invalid/key/bare-invalid-character.toml create mode 100644 assets/toml-test/tests/invalid/key/dotted-redefine-table.toml create mode 100644 assets/toml-test/tests/invalid/key/duplicate-keys.toml create mode 100644 assets/toml-test/tests/invalid/key/duplicate.toml create mode 100644 assets/toml-test/tests/invalid/key/empty.toml create mode 100644 assets/toml-test/tests/invalid/key/escape.toml create mode 100644 assets/toml-test/tests/invalid/key/hash.toml create mode 100644 assets/toml-test/tests/invalid/key/multiline.toml create mode 100644 assets/toml-test/tests/invalid/key/newline.toml create mode 100644 assets/toml-test/tests/invalid/key/no-eol.toml create mode 100644 assets/toml-test/tests/invalid/key/open-bracket.toml create mode 100644 assets/toml-test/tests/invalid/key/partial-quoted.toml create mode 100644 assets/toml-test/tests/invalid/key/quoted-unclosed-1.toml create mode 100644 assets/toml-test/tests/invalid/key/quoted-unclosed-2.toml create mode 100644 assets/toml-test/tests/invalid/key/single-open-bracket.toml create mode 100644 assets/toml-test/tests/invalid/key/space.toml create mode 100644 assets/toml-test/tests/invalid/key/special-character.toml create mode 100644 assets/toml-test/tests/invalid/key/start-bracket.toml create mode 100644 assets/toml-test/tests/invalid/key/start-dot.toml create mode 100644 assets/toml-test/tests/invalid/key/two-equals.toml create mode 100644 assets/toml-test/tests/invalid/key/two-equals2.toml create mode 100644 assets/toml-test/tests/invalid/key/two-equals3.toml create mode 100644 assets/toml-test/tests/invalid/key/without-value-1.toml create mode 100644 assets/toml-test/tests/invalid/key/without-value-2.toml create mode 100644 assets/toml-test/tests/invalid/key/without-value-3.toml create mode 100644 assets/toml-test/tests/invalid/key/without-value-4.toml create mode 100644 assets/toml-test/tests/invalid/spec/inline-table-2-0.toml create mode 100644 assets/toml-test/tests/invalid/spec/inline-table-3-0.toml create mode 100644 assets/toml-test/tests/invalid/spec/key-value-pair-1.toml create mode 100644 assets/toml-test/tests/invalid/spec/keys-2.toml create mode 100644 assets/toml-test/tests/invalid/spec/string-4-0.toml create mode 100644 assets/toml-test/tests/invalid/spec/string-7-0.toml create mode 100644 assets/toml-test/tests/invalid/spec/table-9-0.toml create mode 100644 assets/toml-test/tests/invalid/spec/table-9-1.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-byte-escape.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-codepoint.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-concat.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-escape-1.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-escape-2.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-hex-esc-1.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-hex-esc-2.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-hex-esc-3.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-hex-esc-4.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-hex-esc-5.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-hex-esc.multi create mode 100644 assets/toml-test/tests/invalid/string/bad-multiline.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-slash-escape.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-uni-esc-1.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-uni-esc-2.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-uni-esc-3.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-uni-esc-4.toml create mode 100644 assets/toml-test/tests/invalid/string/bad-uni-esc-5.toml create mode 100644 assets/toml-test/tests/invalid/string/basic-byte-escapes.toml create mode 100644 assets/toml-test/tests/invalid/string/basic-multiline-out-of-range-unicode-escape-1.toml create mode 100644 assets/toml-test/tests/invalid/string/basic-multiline-out-of-range-unicode-escape-2.toml create mode 100644 assets/toml-test/tests/invalid/string/basic-multiline-quotes.toml create mode 100644 assets/toml-test/tests/invalid/string/basic-multiline-unknown-escape.toml create mode 100644 assets/toml-test/tests/invalid/string/basic-out-of-range-unicode-escape-1.toml create mode 100644 assets/toml-test/tests/invalid/string/basic-out-of-range-unicode-escape-2.toml create mode 100644 assets/toml-test/tests/invalid/string/basic-unknown-escape.toml create mode 100644 assets/toml-test/tests/invalid/string/literal-multiline-quotes-1.toml create mode 100644 assets/toml-test/tests/invalid/string/literal-multiline-quotes-2.toml create mode 100644 assets/toml-test/tests/invalid/string/missing-quotes.toml create mode 100644 assets/toml-test/tests/invalid/string/multiline-bad-escape-1.toml create mode 100644 assets/toml-test/tests/invalid/string/multiline-bad-escape-2.toml create mode 100644 assets/toml-test/tests/invalid/string/multiline-bad-escape-3.toml create mode 100644 assets/toml-test/tests/invalid/string/multiline-escape-space.toml create mode 100644 assets/toml-test/tests/invalid/string/multiline-no-close-2.toml create mode 100644 assets/toml-test/tests/invalid/string/multiline-no-close.toml create mode 100644 assets/toml-test/tests/invalid/string/multiline-quotes-1.toml create mode 100644 assets/toml-test/tests/invalid/string/no-close.toml create mode 100644 assets/toml-test/tests/invalid/string/text-after-string.toml create mode 100644 assets/toml-test/tests/invalid/string/wrong-close.toml create mode 100644 assets/toml-test/tests/invalid/table/append-with-dotted-keys-1.toml create mode 100644 assets/toml-test/tests/invalid/table/append-with-dotted-keys-2.toml create mode 100644 assets/toml-test/tests/invalid/table/array-empty.toml create mode 100644 assets/toml-test/tests/invalid/table/array-implicit.toml create mode 100644 assets/toml-test/tests/invalid/table/array-missing-bracket.toml create mode 100644 assets/toml-test/tests/invalid/table/duplicate-key-dotted-table.toml create mode 100644 assets/toml-test/tests/invalid/table/duplicate-key-dotted-table2.toml create mode 100644 assets/toml-test/tests/invalid/table/duplicate-key-table.toml create mode 100644 assets/toml-test/tests/invalid/table/duplicate-table-array.toml create mode 100644 assets/toml-test/tests/invalid/table/duplicate-table-array2.toml create mode 100644 assets/toml-test/tests/invalid/table/duplicate.toml create mode 100644 assets/toml-test/tests/invalid/table/empty-implicit-table.toml create mode 100644 assets/toml-test/tests/invalid/table/empty.toml create mode 100644 assets/toml-test/tests/invalid/table/equals-sign.toml create mode 100644 assets/toml-test/tests/invalid/table/llbrace.toml create mode 100644 assets/toml-test/tests/invalid/table/nested-brackets-close.toml create mode 100644 assets/toml-test/tests/invalid/table/nested-brackets-open.toml create mode 100644 assets/toml-test/tests/invalid/table/quoted-no-close.toml create mode 100644 assets/toml-test/tests/invalid/table/redefine.toml create mode 100644 assets/toml-test/tests/invalid/table/rrbrace.toml create mode 100644 assets/toml-test/tests/invalid/table/text-after-table.toml create mode 100644 assets/toml-test/tests/invalid/table/whitespace.toml create mode 100644 assets/toml-test/tests/invalid/table/with-pound.toml create mode 100644 assets/toml-test/tests/valid/array/array.json create mode 100644 assets/toml-test/tests/valid/array/array.toml create mode 100644 assets/toml-test/tests/valid/array/bool.json create mode 100644 assets/toml-test/tests/valid/array/bool.toml create mode 100644 assets/toml-test/tests/valid/array/empty.json create mode 100644 assets/toml-test/tests/valid/array/empty.toml create mode 100644 assets/toml-test/tests/valid/array/hetergeneous.json create mode 100644 assets/toml-test/tests/valid/array/hetergeneous.toml create mode 100644 assets/toml-test/tests/valid/array/mixed-int-array.json create mode 100644 assets/toml-test/tests/valid/array/mixed-int-array.toml create mode 100644 assets/toml-test/tests/valid/array/mixed-int-float.json create mode 100644 assets/toml-test/tests/valid/array/mixed-int-float.toml create mode 100644 assets/toml-test/tests/valid/array/mixed-int-string.json create mode 100644 assets/toml-test/tests/valid/array/mixed-int-string.toml create mode 100644 assets/toml-test/tests/valid/array/mixed-string-table.json create mode 100644 assets/toml-test/tests/valid/array/mixed-string-table.toml create mode 100644 assets/toml-test/tests/valid/array/nested-double.json create mode 100644 assets/toml-test/tests/valid/array/nested-double.toml create mode 100644 assets/toml-test/tests/valid/array/nested-inline-table.json create mode 100644 assets/toml-test/tests/valid/array/nested-inline-table.toml create mode 100644 assets/toml-test/tests/valid/array/nested.json create mode 100644 assets/toml-test/tests/valid/array/nested.toml create mode 100644 assets/toml-test/tests/valid/array/nospaces.json create mode 100644 assets/toml-test/tests/valid/array/nospaces.toml create mode 100644 assets/toml-test/tests/valid/array/string-quote-comma-2.json create mode 100644 assets/toml-test/tests/valid/array/string-quote-comma-2.toml create mode 100644 assets/toml-test/tests/valid/array/string-quote-comma.json create mode 100644 assets/toml-test/tests/valid/array/string-quote-comma.toml create mode 100644 assets/toml-test/tests/valid/array/string-with-comma.json create mode 100644 assets/toml-test/tests/valid/array/string-with-comma.toml create mode 100644 assets/toml-test/tests/valid/array/strings.json create mode 100644 assets/toml-test/tests/valid/array/strings.toml create mode 100644 assets/toml-test/tests/valid/array/table-array-string-backslash.json create mode 100644 assets/toml-test/tests/valid/array/table-array-string-backslash.toml create mode 100644 assets/toml-test/tests/valid/bool/bool.json create mode 100644 assets/toml-test/tests/valid/bool/bool.toml create mode 100644 assets/toml-test/tests/valid/comment/at-eof.json create mode 100644 assets/toml-test/tests/valid/comment/at-eof.toml create mode 100644 assets/toml-test/tests/valid/comment/at-eof2.json create mode 100644 assets/toml-test/tests/valid/comment/at-eof2.toml create mode 100644 assets/toml-test/tests/valid/comment/everywhere.json create mode 100644 assets/toml-test/tests/valid/comment/everywhere.toml create mode 100644 assets/toml-test/tests/valid/comment/noeol.json create mode 100644 assets/toml-test/tests/valid/comment/noeol.toml create mode 100644 assets/toml-test/tests/valid/comment/tricky.json create mode 100644 assets/toml-test/tests/valid/comment/tricky.toml create mode 100644 assets/toml-test/tests/valid/datetime/datetime.json create mode 100644 assets/toml-test/tests/valid/datetime/datetime.toml create mode 100644 assets/toml-test/tests/valid/datetime/local-date.json create mode 100644 assets/toml-test/tests/valid/datetime/local-date.toml create mode 100644 assets/toml-test/tests/valid/datetime/local-time.json create mode 100644 assets/toml-test/tests/valid/datetime/local-time.toml create mode 100644 assets/toml-test/tests/valid/datetime/local.json create mode 100644 assets/toml-test/tests/valid/datetime/local.toml create mode 100644 assets/toml-test/tests/valid/datetime/milliseconds.json create mode 100644 assets/toml-test/tests/valid/datetime/milliseconds.toml create mode 100644 assets/toml-test/tests/valid/datetime/no-seconds.json create mode 100644 assets/toml-test/tests/valid/datetime/no-seconds.toml create mode 100644 assets/toml-test/tests/valid/datetime/timezone.json create mode 100644 assets/toml-test/tests/valid/datetime/timezone.toml create mode 100644 assets/toml-test/tests/valid/empty-file.json create mode 100644 assets/toml-test/tests/valid/empty-file.toml create mode 100644 assets/toml-test/tests/valid/example.json create mode 100644 assets/toml-test/tests/valid/example.toml create mode 100644 assets/toml-test/tests/valid/float/exponent.json create mode 100644 assets/toml-test/tests/valid/float/exponent.toml create mode 100644 assets/toml-test/tests/valid/float/float.json create mode 100644 assets/toml-test/tests/valid/float/float.toml create mode 100644 assets/toml-test/tests/valid/float/inf-and-nan.json create mode 100644 assets/toml-test/tests/valid/float/inf-and-nan.toml create mode 100644 assets/toml-test/tests/valid/float/long.json create mode 100644 assets/toml-test/tests/valid/float/long.toml create mode 100644 assets/toml-test/tests/valid/float/underscore.json create mode 100644 assets/toml-test/tests/valid/float/underscore.toml create mode 100644 assets/toml-test/tests/valid/float/zero.json create mode 100644 assets/toml-test/tests/valid/float/zero.toml create mode 100644 assets/toml-test/tests/valid/implicit-and-explicit-after.json create mode 100644 assets/toml-test/tests/valid/implicit-and-explicit-after.toml create mode 100644 assets/toml-test/tests/valid/implicit-and-explicit-before.json create mode 100644 assets/toml-test/tests/valid/implicit-and-explicit-before.toml create mode 100644 assets/toml-test/tests/valid/implicit-groups.json create mode 100644 assets/toml-test/tests/valid/implicit-groups.toml create mode 100644 assets/toml-test/tests/valid/inline-table/array.json create mode 100644 assets/toml-test/tests/valid/inline-table/array.toml create mode 100644 assets/toml-test/tests/valid/inline-table/bool.json create mode 100644 assets/toml-test/tests/valid/inline-table/bool.toml create mode 100644 assets/toml-test/tests/valid/inline-table/empty.json create mode 100644 assets/toml-test/tests/valid/inline-table/empty.toml create mode 100644 assets/toml-test/tests/valid/inline-table/end-in-bool.json create mode 100644 assets/toml-test/tests/valid/inline-table/end-in-bool.toml create mode 100644 assets/toml-test/tests/valid/inline-table/inline-table.json create mode 100644 assets/toml-test/tests/valid/inline-table/inline-table.toml create mode 100644 assets/toml-test/tests/valid/inline-table/key-dotted.json create mode 100644 assets/toml-test/tests/valid/inline-table/key-dotted.toml create mode 100644 assets/toml-test/tests/valid/inline-table/multiline.json create mode 100644 assets/toml-test/tests/valid/inline-table/multiline.toml create mode 100644 assets/toml-test/tests/valid/inline-table/nest.json create mode 100644 assets/toml-test/tests/valid/inline-table/nest.toml create mode 100644 assets/toml-test/tests/valid/inline-table/newline.json create mode 100644 assets/toml-test/tests/valid/inline-table/newline.toml create mode 100644 assets/toml-test/tests/valid/integer/integer.json create mode 100644 assets/toml-test/tests/valid/integer/integer.toml create mode 100644 assets/toml-test/tests/valid/integer/literals.json create mode 100644 assets/toml-test/tests/valid/integer/literals.toml create mode 100644 assets/toml-test/tests/valid/integer/long.json create mode 100644 assets/toml-test/tests/valid/integer/long.toml create mode 100644 assets/toml-test/tests/valid/integer/underscore.json create mode 100644 assets/toml-test/tests/valid/integer/underscore.toml create mode 100644 assets/toml-test/tests/valid/integer/zero.json create mode 100644 assets/toml-test/tests/valid/integer/zero.toml create mode 100644 assets/toml-test/tests/valid/key/alphanum.json create mode 100644 assets/toml-test/tests/valid/key/alphanum.toml create mode 100644 assets/toml-test/tests/valid/key/case-sensitive.json create mode 100644 assets/toml-test/tests/valid/key/case-sensitive.toml create mode 100644 assets/toml-test/tests/valid/key/dotted.json create mode 100644 assets/toml-test/tests/valid/key/dotted.toml create mode 100644 assets/toml-test/tests/valid/key/empty.json create mode 100644 assets/toml-test/tests/valid/key/empty.toml create mode 100644 assets/toml-test/tests/valid/key/equals-nospace.json create mode 100644 assets/toml-test/tests/valid/key/equals-nospace.toml create mode 100644 assets/toml-test/tests/valid/key/escapes.json create mode 100644 assets/toml-test/tests/valid/key/escapes.toml create mode 100644 assets/toml-test/tests/valid/key/numeric-dotted.json create mode 100644 assets/toml-test/tests/valid/key/numeric-dotted.toml create mode 100644 assets/toml-test/tests/valid/key/numeric.json create mode 100644 assets/toml-test/tests/valid/key/numeric.toml create mode 100644 assets/toml-test/tests/valid/key/quoted-dots.json create mode 100644 assets/toml-test/tests/valid/key/quoted-dots.toml create mode 100644 assets/toml-test/tests/valid/key/space.json create mode 100644 assets/toml-test/tests/valid/key/space.toml create mode 100644 assets/toml-test/tests/valid/key/special-chars.json create mode 100644 assets/toml-test/tests/valid/key/special-chars.toml create mode 100644 assets/toml-test/tests/valid/key/special-word.json create mode 100644 assets/toml-test/tests/valid/key/special-word.toml create mode 100644 assets/toml-test/tests/valid/newline-crlf.json create mode 100644 assets/toml-test/tests/valid/newline-crlf.toml create mode 100644 assets/toml-test/tests/valid/newline-lf.json create mode 100644 assets/toml-test/tests/valid/newline-lf.toml create mode 100644 assets/toml-test/tests/valid/spec-example-1-compact.json create mode 100644 assets/toml-test/tests/valid/spec-example-1-compact.toml create mode 100644 assets/toml-test/tests/valid/spec-example-1.json create mode 100644 assets/toml-test/tests/valid/spec-example-1.toml create mode 100644 assets/toml-test/tests/valid/spec/array-0.json create mode 100644 assets/toml-test/tests/valid/spec/array-0.toml create mode 100644 assets/toml-test/tests/valid/spec/array-1.json create mode 100644 assets/toml-test/tests/valid/spec/array-1.toml create mode 100644 assets/toml-test/tests/valid/spec/array-of-tables-0.json create mode 100644 assets/toml-test/tests/valid/spec/array-of-tables-0.toml create mode 100644 assets/toml-test/tests/valid/spec/array-of-tables-1.json create mode 100644 assets/toml-test/tests/valid/spec/array-of-tables-1.toml create mode 100644 assets/toml-test/tests/valid/spec/array-of-tables-2.json create mode 100644 assets/toml-test/tests/valid/spec/array-of-tables-2.toml create mode 100644 assets/toml-test/tests/valid/spec/boolean-0.json create mode 100644 assets/toml-test/tests/valid/spec/boolean-0.toml create mode 100644 assets/toml-test/tests/valid/spec/comment-0.json create mode 100644 assets/toml-test/tests/valid/spec/comment-0.toml create mode 100644 assets/toml-test/tests/valid/spec/float-0.json create mode 100644 assets/toml-test/tests/valid/spec/float-0.toml create mode 100644 assets/toml-test/tests/valid/spec/float-1.json create mode 100644 assets/toml-test/tests/valid/spec/float-1.toml create mode 100644 assets/toml-test/tests/valid/spec/float-2.json create mode 100644 assets/toml-test/tests/valid/spec/float-2.toml create mode 100644 assets/toml-test/tests/valid/spec/inline-table-0.json create mode 100644 assets/toml-test/tests/valid/spec/inline-table-0.toml create mode 100644 assets/toml-test/tests/valid/spec/inline-table-1.json create mode 100644 assets/toml-test/tests/valid/spec/inline-table-1.toml create mode 100644 assets/toml-test/tests/valid/spec/inline-table-2.json create mode 100644 assets/toml-test/tests/valid/spec/inline-table-2.toml create mode 100644 assets/toml-test/tests/valid/spec/inline-table-3.json create mode 100644 assets/toml-test/tests/valid/spec/inline-table-3.toml create mode 100644 assets/toml-test/tests/valid/spec/integer-0.json create mode 100644 assets/toml-test/tests/valid/spec/integer-0.toml create mode 100644 assets/toml-test/tests/valid/spec/integer-1.json create mode 100644 assets/toml-test/tests/valid/spec/integer-1.toml create mode 100644 assets/toml-test/tests/valid/spec/integer-2.json create mode 100644 assets/toml-test/tests/valid/spec/integer-2.toml create mode 100644 assets/toml-test/tests/valid/spec/key-value-pair-0.json create mode 100644 assets/toml-test/tests/valid/spec/key-value-pair-0.toml create mode 100644 assets/toml-test/tests/valid/spec/keys-0.json create mode 100644 assets/toml-test/tests/valid/spec/keys-0.toml create mode 100644 assets/toml-test/tests/valid/spec/keys-1.json create mode 100644 assets/toml-test/tests/valid/spec/keys-1.toml create mode 100644 assets/toml-test/tests/valid/spec/keys-3.json create mode 100644 assets/toml-test/tests/valid/spec/keys-3.toml create mode 100644 assets/toml-test/tests/valid/spec/keys-4.json create mode 100644 assets/toml-test/tests/valid/spec/keys-4.toml create mode 100644 assets/toml-test/tests/valid/spec/keys-5.json create mode 100644 assets/toml-test/tests/valid/spec/keys-5.toml create mode 100644 assets/toml-test/tests/valid/spec/keys-6.json create mode 100644 assets/toml-test/tests/valid/spec/keys-6.toml create mode 100644 assets/toml-test/tests/valid/spec/keys-7.json create mode 100644 assets/toml-test/tests/valid/spec/keys-7.toml create mode 100644 assets/toml-test/tests/valid/spec/local-date-0.json create mode 100644 assets/toml-test/tests/valid/spec/local-date-0.toml create mode 100644 assets/toml-test/tests/valid/spec/local-date-time-0.json create mode 100644 assets/toml-test/tests/valid/spec/local-date-time-0.toml create mode 100644 assets/toml-test/tests/valid/spec/local-time-0.json create mode 100644 assets/toml-test/tests/valid/spec/local-time-0.toml create mode 100644 assets/toml-test/tests/valid/spec/offset-date-time-0.json create mode 100644 assets/toml-test/tests/valid/spec/offset-date-time-0.toml create mode 100644 assets/toml-test/tests/valid/spec/offset-date-time-1.json create mode 100644 assets/toml-test/tests/valid/spec/offset-date-time-1.toml create mode 100644 assets/toml-test/tests/valid/spec/string-0.json create mode 100644 assets/toml-test/tests/valid/spec/string-0.toml create mode 100644 assets/toml-test/tests/valid/spec/string-1.json create mode 100644 assets/toml-test/tests/valid/spec/string-1.toml create mode 100644 assets/toml-test/tests/valid/spec/string-2.json create mode 100644 assets/toml-test/tests/valid/spec/string-2.toml create mode 100644 assets/toml-test/tests/valid/spec/string-3.json create mode 100644 assets/toml-test/tests/valid/spec/string-3.toml create mode 100644 assets/toml-test/tests/valid/spec/string-4.json create mode 100644 assets/toml-test/tests/valid/spec/string-4.toml create mode 100644 assets/toml-test/tests/valid/spec/string-5.json create mode 100644 assets/toml-test/tests/valid/spec/string-5.toml create mode 100644 assets/toml-test/tests/valid/spec/string-6.json create mode 100644 assets/toml-test/tests/valid/spec/string-6.toml create mode 100644 assets/toml-test/tests/valid/spec/string-7.json create mode 100644 assets/toml-test/tests/valid/spec/string-7.toml create mode 100644 assets/toml-test/tests/valid/spec/table-0.json create mode 100644 assets/toml-test/tests/valid/spec/table-0.toml create mode 100644 assets/toml-test/tests/valid/spec/table-1.json create mode 100644 assets/toml-test/tests/valid/spec/table-1.toml create mode 100644 assets/toml-test/tests/valid/spec/table-2.json create mode 100644 assets/toml-test/tests/valid/spec/table-2.toml create mode 100644 assets/toml-test/tests/valid/spec/table-3.json create mode 100644 assets/toml-test/tests/valid/spec/table-3.toml create mode 100644 assets/toml-test/tests/valid/spec/table-4.json create mode 100644 assets/toml-test/tests/valid/spec/table-4.toml create mode 100644 assets/toml-test/tests/valid/spec/table-5.json create mode 100644 assets/toml-test/tests/valid/spec/table-5.toml create mode 100644 assets/toml-test/tests/valid/spec/table-6.json create mode 100644 assets/toml-test/tests/valid/spec/table-6.toml create mode 100644 assets/toml-test/tests/valid/spec/table-7.json create mode 100644 assets/toml-test/tests/valid/spec/table-7.toml create mode 100644 assets/toml-test/tests/valid/spec/table-8.json create mode 100644 assets/toml-test/tests/valid/spec/table-8.toml create mode 100644 assets/toml-test/tests/valid/spec/table-9.json create mode 100644 assets/toml-test/tests/valid/spec/table-9.toml create mode 100644 assets/toml-test/tests/valid/string/double-quote-escape.json create mode 100644 assets/toml-test/tests/valid/string/double-quote-escape.toml create mode 100644 assets/toml-test/tests/valid/string/empty.json create mode 100644 assets/toml-test/tests/valid/string/empty.toml create mode 100644 assets/toml-test/tests/valid/string/escape-esc.json create mode 100644 assets/toml-test/tests/valid/string/escape-esc.toml create mode 100644 assets/toml-test/tests/valid/string/escape-tricky.json create mode 100644 assets/toml-test/tests/valid/string/escape-tricky.toml create mode 100644 assets/toml-test/tests/valid/string/escaped-escape.json create mode 100644 assets/toml-test/tests/valid/string/escaped-escape.toml create mode 100644 assets/toml-test/tests/valid/string/escapes.json create mode 100644 assets/toml-test/tests/valid/string/escapes.toml create mode 100644 assets/toml-test/tests/valid/string/hex-escape.json create mode 100644 assets/toml-test/tests/valid/string/hex-escape.toml create mode 100644 assets/toml-test/tests/valid/string/multiline-escaped-crlf.json create mode 100644 assets/toml-test/tests/valid/string/multiline-escaped-crlf.toml create mode 100644 assets/toml-test/tests/valid/string/multiline-quotes.json create mode 100644 assets/toml-test/tests/valid/string/multiline-quotes.toml create mode 100644 assets/toml-test/tests/valid/string/multiline.json create mode 100644 assets/toml-test/tests/valid/string/multiline.toml create mode 100644 assets/toml-test/tests/valid/string/nl.json create mode 100644 assets/toml-test/tests/valid/string/nl.toml create mode 100644 assets/toml-test/tests/valid/string/raw-multiline.json create mode 100644 assets/toml-test/tests/valid/string/raw-multiline.toml create mode 100644 assets/toml-test/tests/valid/string/raw.json create mode 100644 assets/toml-test/tests/valid/string/raw.toml create mode 100644 assets/toml-test/tests/valid/string/simple.json create mode 100644 assets/toml-test/tests/valid/string/simple.toml create mode 100644 assets/toml-test/tests/valid/string/unicode-escape.json create mode 100644 assets/toml-test/tests/valid/string/unicode-escape.toml create mode 100644 assets/toml-test/tests/valid/string/unicode-literal.json create mode 100644 assets/toml-test/tests/valid/string/unicode-literal.toml create mode 100644 assets/toml-test/tests/valid/string/with-pound.json create mode 100644 assets/toml-test/tests/valid/string/with-pound.toml create mode 100644 assets/toml-test/tests/valid/table/array-implicit.json create mode 100644 assets/toml-test/tests/valid/table/array-implicit.toml create mode 100644 assets/toml-test/tests/valid/table/array-many.json create mode 100644 assets/toml-test/tests/valid/table/array-many.toml create mode 100644 assets/toml-test/tests/valid/table/array-nest.json create mode 100644 assets/toml-test/tests/valid/table/array-nest.toml create mode 100644 assets/toml-test/tests/valid/table/array-one.json create mode 100644 assets/toml-test/tests/valid/table/array-one.toml create mode 100644 assets/toml-test/tests/valid/table/array-table-array.json create mode 100644 assets/toml-test/tests/valid/table/array-table-array.toml create mode 100644 assets/toml-test/tests/valid/table/empty.json create mode 100644 assets/toml-test/tests/valid/table/empty.toml create mode 100644 assets/toml-test/tests/valid/table/keyword.json create mode 100644 assets/toml-test/tests/valid/table/keyword.toml create mode 100644 assets/toml-test/tests/valid/table/names.json create mode 100644 assets/toml-test/tests/valid/table/names.toml create mode 100644 assets/toml-test/tests/valid/table/no-eol.json create mode 100644 assets/toml-test/tests/valid/table/no-eol.toml create mode 100644 assets/toml-test/tests/valid/table/sub-empty.json create mode 100644 assets/toml-test/tests/valid/table/sub-empty.toml create mode 100644 assets/toml-test/tests/valid/table/sub.json create mode 100644 assets/toml-test/tests/valid/table/sub.toml create mode 100644 assets/toml-test/tests/valid/table/whitespace.json create mode 100644 assets/toml-test/tests/valid/table/whitespace.toml create mode 100644 assets/toml-test/tests/valid/table/with-literal-string.json create mode 100644 assets/toml-test/tests/valid/table/with-literal-string.toml create mode 100644 assets/toml-test/tests/valid/table/with-pound.json create mode 100644 assets/toml-test/tests/valid/table/with-pound.toml create mode 100644 assets/toml-test/tests/valid/table/with-single-quotes.json create mode 100644 assets/toml-test/tests/valid/table/with-single-quotes.toml create mode 100644 assets/toml-test/tests/valid/table/without-super.json create mode 100644 assets/toml-test/tests/valid/table/without-super.toml create mode 100644 src/lib.rs diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json new file mode 100644 index 0000000..946c280 --- /dev/null +++ b/.cargo_vcs_info.json @@ -0,0 +1,6 @@ +{ + "git": { + "sha1": "e5224ed68ce5d3e8d69e39c0b67e4791fb8c17a7" + }, + "path_in_vcs": "crates/data" +} \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..b8b11d2 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,40 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.60.0" +name = "toml-test-data" +version = "1.3.0" +include = [ + "src/**/*", + "Cargo.toml", + "LICENSE*", + "README.md", + "examples/**/*", + "assets/toml-test/tests", +] +description = "TOML test cases" +readme = "README.md" +keywords = [ + "development", + "toml", +] +categories = [ + "development-tools:testing", + "text-processing", + "encoding", +] +license = "MIT OR Apache-2.0" +repository = "https://github.com/epage/toml-test-rs" + +[dependencies.include_dir] +version = "0.7.0" diff --git a/Cargo.toml.orig b/Cargo.toml.orig new file mode 100644 index 0000000..c7021fa --- /dev/null +++ b/Cargo.toml.orig @@ -0,0 +1,22 @@ +[package] +name = "toml-test-data" +version = "1.3.0" +description = "TOML test cases" +license = "MIT OR Apache-2.0" +repository = "https://github.com/epage/toml-test-rs" +readme = "README.md" +categories = ["development-tools:testing", "text-processing", "encoding"] +keywords = ["development", "toml"] +edition = "2021" +rust-version = "1.60.0" # MSRV +include = [ + "src/**/*", + "Cargo.toml", + "LICENSE*", + "README.md", + "examples/**/*", + "assets/toml-test/tests" +] + +[dependencies] +include_dir = "0.7.0" diff --git a/README.md b/README.md new file mode 100644 index 0000000..047a888 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# toml-test-data + +> **TOML test cases** + +[![Documentation](https://img.shields.io/badge/docs-master-blue.svg)][Documentation] +![License](https://img.shields.io/crates/l/toml-test.svg) +[![Crates Status](https://img.shields.io/crates/v/toml-test.svg)](https://crates.io/crates/toml-test) + +Dual-licensed under [MIT](LICENSE-MIT) or [Apache 2.0](LICENSE-APACHE) + +## About + +[toml-test](https://github.com/BurntSushi/toml-test) is a language-agnostic +toml parser spec verification. This crate distributes all of the test cases. + +[Documentation]: https://docs.rs/toml-test diff --git a/assets/toml-test/README.md b/assets/toml-test/README.md new file mode 100644 index 0000000..87f3848 --- /dev/null +++ b/assets/toml-test/README.md @@ -0,0 +1,270 @@ +`toml-test` is a language-agnostic test suite to verify the correctness of +[TOML][t] parsers and writers. + +Tests are divided into two groups: "invalid" and "valid". Decoders or encoders +that reject "invalid" tests pass the tests, and decoders that accept "valid" +tests and output precisely what is expected pass the tests. The output format is +JSON, described below. + +Both encoders and decoders share valid tests, except an encoder accepts JSON and +outputs TOML rather than the reverse. The TOML representations are read with a +blessed decoder and is compared. Encoders have their own set of invalid tests in +the invalid-encoder directory. The JSON given to a TOML encoder is in the same +format as the JSON that a TOML decoder should output. + +Compatible with TOML version [v1.0.0][v1]. + +[t]: https://toml.io +[v1]: https://toml.io/en/v1.0.0 + +Installation +------------ +There are binaries on the [release page][r]; these are statically compiled and +should run in most environments. It's recommended you use a binary, or a tagged +release if you build from source especially in CI environments. This prevents +your tests from breaking on changes to tests in this tool. + +To compile from source you will need Go 1.16 or newer (older versions will *not* +work): + + $ git clone https://github.com/BurntSushi/toml-test.git + $ cd toml-test + $ go build ./cmd/toml-test + +This will build a `./toml-test` binary. + +[r]: https://github.com/BurntSushi/toml-test/releases + +Usage +----- +`toml-test` accepts an encoder or decoder as the first positional argument, for +example: + + $ toml-test my-toml-decoder + $ toml-test my-toml-encoder -encoder + +The `-encoder` flag is used to signal that this is an encoder rather than a +decoder. + +For example, to run the tests against the Go TOML library: + + # Install my parser + $ go install github.com/BurntSushi/toml/cmd/toml-test-decoder@master + $ go install github.com/BurntSushi/toml/cmd/toml-test-encoder@master + + $ toml-test toml-test-decoder + toml-test [toml-test-decoder]: using embeded tests: 278 passed + + $ toml-test -encoder toml-test-encoder + toml-test [toml-test-encoder]: using embeded tests: 94 passed, 0 failed + +The default is to use the tests compiled in the binary; you can use `-testdir` +to load tests from the filesystem. You can use `-run [name]` or `-skip [name]` +to run or skip specific tests. Both flags can be given more than once and accept +glob patterns: `-run 'valid/string/*'`. + +See `toml-test -help` for detailed usage. + +### Implementing a decoder +For your decoder to be compatible with `toml-test` it **must** satisfy the +expected interface: + +- Your decoder **must** accept TOML data on `stdin`. +- If the TOML data is invalid, your decoder **must** return with a non-zero + exit code, indicating an error. +- If the TOML data is valid, your decoder **must** output a JSON encoding of + that data on `stdout` and return with a zero exit code, indicating success. + +An example in pseudocode: + + toml_data = read_stdin() + + parsed_toml = decode_toml(toml_data) + + if error_parsing_toml(): + print_error_to_stderr() + exit(1) + + print_as_tagged_json(parsed_toml) + exit(0) + +Details on the tagged JSON is explained below in "JSON encoding". + +### Implementing an encoder +For your encoder to be compatible with `toml-test`, it **must** satisfy the +expected interface: + +- Your encoder **must** accept JSON data on `stdin`. +- If the JSON data cannot be converted to a valid TOML representation, your + encoder **must** return with a non-zero exit code, indicating an error. +- If the JSON data can be converted to a valid TOML representation, your encoder + **must** output a TOML encoding of that data on `stdout` and return with a + zero exit code, indicating success. + +An example in pseudocode: + + json_data = read_stdin() + + parsed_json_with_tags = decode_json(json_data) + + if error_parsing_json(): + print_error_to_stderr() + exit(1) + + print_as_toml(parsed_json_with_tags) + exit(0) + +JSON encoding +------------- +The following JSON encoding applies equally to both encoders and decoders: + +- TOML tables correspond to JSON objects. +- TOML table arrays correspond to JSON arrays. +- TOML values correspond to a special JSON object of the form: + `{"type": "{TOML_TYPE}", "value": "{TOML_VALUE}"}` + +In the above, `TOML_TYPE` may be one of: + +- string +- integer +- float +- bool +- datetime +- datetime-local +- date-local +- time-local + +`TOML_VALUE` is always a JSON string. + +Empty hashes correspond to empty JSON objects (`{}`) and empty arrays correspond +to empty JSON arrays (`[]`). + +Offset datetimes should be encoded in RFC 3339; Local datetimes should be +encoded following RFC 3339 without the offset part. Local dates should be +encoded as the date part of RFC 3339 and Local times as the time part. + +Examples: + + TOML JSON + + a = 42 {"type": "integer": "value": "42"} + + + + [tbl] {"tbl": { + a = 42 "a": {"type": "integer": "value": "42"} + }} + + + + a = ["a", 2] {"a": [ + {"type": "string", "value": "1"}, + {"type": "integer": "value": "2"} + ]} + +Or a more complex example: + +```toml +best-day-ever = 1987-07-05T17:45:00Z + +[numtheory] +boring = false +perfection = [6, 28, 496] +``` + +And the JSON encoding expected by `toml-test` is: + +```json +{ + "best-day-ever": {"type": "datetime", "value": "1987-07-05T17:45:00Z"}, + "numtheory": { + "boring": {"type": "bool", "value": "false"}, + "perfection": [ + {"type": "integer", "value": "6"}, + {"type": "integer", "value": "28"}, + {"type": "integer", "value": "496"} + ] + } +} +``` + +Note that the only JSON values ever used are objects, arrays and strings. + +An example implementation can be found in the BurnSushi/toml: + +- [Add tags](https://github.com/BurntSushi/toml/blob/master/internal/tag/add.go) +- [Remove tags](https://github.com/BurntSushi/toml/blob/master/internal/tag/rm.go) + +Implementation-defined behaviour +-------------------------------- +This only tests behaviour that's should be true for every encoder implementing +TOML; a few things are left up to implementations, and are not tested here. + +- Millisecond precision (4 digits) is required for datetimes and times, and + further precision is implementation-specific, and any greater precision than + is supported must be truncated (not rounded). + + This tests only millisecond precision, and not any further precision or the + truncation of it. + +Assumptions of Truth +-------------------- +The following are taken as ground truths by `toml-test`: + +- All tests classified as `invalid` **are** invalid. +- All tests classified as `valid` **are** valid. +- All expected outputs in `valid/test-name.json` are exactly correct. +- The Go standard library package `encoding/json` decodes JSON correctly. +- When testing encoders the + [BurntSushi/toml](https://github.com/BurntSushi/toml) TOML decoder is assumed + to be correct. (Note that this assumption is not made when testing decoders!) + +Of particular note is that **no TOML decoder** is taken as ground truth when +testing decoders. This means that most changes to the spec will only require an +update of the tests in `toml-test`. (Bigger changes may require an adjustment of +how two things are considered equal. Particularly if a new type of data is +added.) Obviously, this advantage does not apply to testing TOML encoders since +there must exist a TOML decoder that conforms to the specification in order to +read the output of a TOML encoder. + +Adding tests +------------ +`toml-test` was designed so that tests can be easily added and removed. As +mentioned above, tests are split into two groups: invalid and valid tests. + +Invalid tests **only check if a decoder rejects invalid TOML data**. Or, in the +case of testing encoders, invalid tests **only check if an encoder rejects an +invalid representation of TOML** (e.g., a hetergeneous array). Therefore, all +invalid tests should try to **test one thing and one thing only**. Invalid tests +should be named after the fault it is trying to expose. Invalid tests for +decoders are in the `tests/invalid` directory while invalid tests for encoders +are in the `tests/invalid-encoder` directory. + +Valid tests check that a decoder accepts valid TOML data **and** that the parser +has the correct representation of the TOML data. Therefore, valid tests need a +JSON encoding in addition to the TOML data. The tests should be small enough +that writing the JSON encoding by hand will not give you brain damage. The exact +reverse is true when testing encoders. + +A valid test without either a `.json` or `.toml` file will automatically fail. + +If you have tests that you'd like to add, please submit a pull request. + +Why JSON? +--------- +In order for a language agnostic test suite to work, we need some kind of data +exchange format. TOML cannot be used, as it would imply that a particular parser +has a blessing of correctness. + +My decision to use JSON was not a careful one. It was based on expediency. The +Go standard library has an excellent `encoding/json` package built in, which +made it easy to compare JSON data. + +The problem with JSON is that the types in TOML are not in one-to-one +correspondence with JSON. This is why every TOML value represented in JSON is +tagged with a type annotation, as described above. + +YAML may be closer in correspondence with TOML, but I don't believe we should +rely on that correspondence. Making things explicit with JSON means that writing +tests is a little more cumbersome, but it also reduces the number of assumptions +we need to make. diff --git a/assets/toml-test/tests/.gitattributes b/assets/toml-test/tests/.gitattributes new file mode 100644 index 0000000..6381655 --- /dev/null +++ b/assets/toml-test/tests/.gitattributes @@ -0,0 +1 @@ +*.toml -text diff --git a/assets/toml-test/tests/invalid/array/double-comma-1.toml b/assets/toml-test/tests/invalid/array/double-comma-1.toml new file mode 100644 index 0000000..339aad2 --- /dev/null +++ b/assets/toml-test/tests/invalid/array/double-comma-1.toml @@ -0,0 +1 @@ +array = [1,,2] diff --git a/assets/toml-test/tests/invalid/array/double-comma-2.toml b/assets/toml-test/tests/invalid/array/double-comma-2.toml new file mode 100644 index 0000000..ce3565c --- /dev/null +++ b/assets/toml-test/tests/invalid/array/double-comma-2.toml @@ -0,0 +1,2 @@ +array = [1,2,,] + diff --git a/assets/toml-test/tests/invalid/array/extending-table.toml b/assets/toml-test/tests/invalid/array/extending-table.toml new file mode 100644 index 0000000..a6b7ce4 --- /dev/null +++ b/assets/toml-test/tests/invalid/array/extending-table.toml @@ -0,0 +1,6 @@ +a = [{ b = 1 }] + +# Cannot extend tables within static arrays +# https://github.com/toml-lang/toml/issues/908 +[a.c] +foo = 1 diff --git a/assets/toml-test/tests/invalid/array/missing-separator.toml b/assets/toml-test/tests/invalid/array/missing-separator.toml new file mode 100644 index 0000000..ab3791a --- /dev/null +++ b/assets/toml-test/tests/invalid/array/missing-separator.toml @@ -0,0 +1 @@ +wrong = [ 1 2 3 ] diff --git a/assets/toml-test/tests/invalid/array/no-close-2.toml b/assets/toml-test/tests/invalid/array/no-close-2.toml new file mode 100644 index 0000000..2f46123 --- /dev/null +++ b/assets/toml-test/tests/invalid/array/no-close-2.toml @@ -0,0 +1 @@ +x = [42 # diff --git a/assets/toml-test/tests/invalid/array/no-close-table-2.toml b/assets/toml-test/tests/invalid/array/no-close-table-2.toml new file mode 100644 index 0000000..827c128 --- /dev/null +++ b/assets/toml-test/tests/invalid/array/no-close-table-2.toml @@ -0,0 +1 @@ +x = [{ key = 42 # diff --git a/assets/toml-test/tests/invalid/array/no-close-table.toml b/assets/toml-test/tests/invalid/array/no-close-table.toml new file mode 100644 index 0000000..7b077be --- /dev/null +++ b/assets/toml-test/tests/invalid/array/no-close-table.toml @@ -0,0 +1 @@ +x = [{ key = 42 diff --git a/assets/toml-test/tests/invalid/array/no-close.toml b/assets/toml-test/tests/invalid/array/no-close.toml new file mode 100644 index 0000000..032ebcc --- /dev/null +++ b/assets/toml-test/tests/invalid/array/no-close.toml @@ -0,0 +1 @@ +long_array = [ 1, 2, 3 diff --git a/assets/toml-test/tests/invalid/array/tables-1.toml b/assets/toml-test/tests/invalid/array/tables-1.toml new file mode 100644 index 0000000..01d4d13 --- /dev/null +++ b/assets/toml-test/tests/invalid/array/tables-1.toml @@ -0,0 +1,4 @@ +# INVALID TOML DOC +fruit = [] + +[[fruit]] # Not allowed diff --git a/assets/toml-test/tests/invalid/array/tables-2.toml b/assets/toml-test/tests/invalid/array/tables-2.toml new file mode 100644 index 0000000..a77b0e4 --- /dev/null +++ b/assets/toml-test/tests/invalid/array/tables-2.toml @@ -0,0 +1,10 @@ +# INVALID TOML DOC +[[fruit]] + name = "apple" + + [[fruit.variety]] + name = "red delicious" + + # This table conflicts with the previous table + [fruit.variety] + name = "granny smith" diff --git a/assets/toml-test/tests/invalid/array/text-after-array-entries.toml b/assets/toml-test/tests/invalid/array/text-after-array-entries.toml new file mode 100644 index 0000000..1a72890 --- /dev/null +++ b/assets/toml-test/tests/invalid/array/text-after-array-entries.toml @@ -0,0 +1,4 @@ +array = [ + "Is there life after an array separator?", No + "Entry" +] diff --git a/assets/toml-test/tests/invalid/array/text-before-array-separator.toml b/assets/toml-test/tests/invalid/array/text-before-array-separator.toml new file mode 100644 index 0000000..9b06a39 --- /dev/null +++ b/assets/toml-test/tests/invalid/array/text-before-array-separator.toml @@ -0,0 +1,4 @@ +array = [ + "Is there life before an array separator?" No, + "Entry" +] diff --git a/assets/toml-test/tests/invalid/array/text-in-array.toml b/assets/toml-test/tests/invalid/array/text-in-array.toml new file mode 100644 index 0000000..a6a6c42 --- /dev/null +++ b/assets/toml-test/tests/invalid/array/text-in-array.toml @@ -0,0 +1,5 @@ +array = [ + "Entry 1", + I don't belong, + "Entry 2", +] diff --git a/assets/toml-test/tests/invalid/bool/almost-false-with-extra.toml b/assets/toml-test/tests/invalid/bool/almost-false-with-extra.toml new file mode 100644 index 0000000..047911e --- /dev/null +++ b/assets/toml-test/tests/invalid/bool/almost-false-with-extra.toml @@ -0,0 +1 @@ +a = falsify diff --git a/assets/toml-test/tests/invalid/bool/almost-false.toml b/assets/toml-test/tests/invalid/bool/almost-false.toml new file mode 100644 index 0000000..90d612d --- /dev/null +++ b/assets/toml-test/tests/invalid/bool/almost-false.toml @@ -0,0 +1 @@ +a = fals diff --git a/assets/toml-test/tests/invalid/bool/almost-true-with-extra.toml b/assets/toml-test/tests/invalid/bool/almost-true-with-extra.toml new file mode 100644 index 0000000..b8946f3 --- /dev/null +++ b/assets/toml-test/tests/invalid/bool/almost-true-with-extra.toml @@ -0,0 +1 @@ +a = truthy diff --git a/assets/toml-test/tests/invalid/bool/almost-true.toml b/assets/toml-test/tests/invalid/bool/almost-true.toml new file mode 100644 index 0000000..e9a6145 --- /dev/null +++ b/assets/toml-test/tests/invalid/bool/almost-true.toml @@ -0,0 +1 @@ +a = tru diff --git a/assets/toml-test/tests/invalid/bool/just-f.toml b/assets/toml-test/tests/invalid/bool/just-f.toml new file mode 100644 index 0000000..b7dfb90 --- /dev/null +++ b/assets/toml-test/tests/invalid/bool/just-f.toml @@ -0,0 +1 @@ +a = f diff --git a/assets/toml-test/tests/invalid/bool/just-t.toml b/assets/toml-test/tests/invalid/bool/just-t.toml new file mode 100644 index 0000000..26e457a --- /dev/null +++ b/assets/toml-test/tests/invalid/bool/just-t.toml @@ -0,0 +1 @@ +a = t diff --git a/assets/toml-test/tests/invalid/bool/mixed-case.toml b/assets/toml-test/tests/invalid/bool/mixed-case.toml new file mode 100644 index 0000000..41d995a --- /dev/null +++ b/assets/toml-test/tests/invalid/bool/mixed-case.toml @@ -0,0 +1 @@ +valid = False diff --git a/assets/toml-test/tests/invalid/bool/starting-same-false.toml b/assets/toml-test/tests/invalid/bool/starting-same-false.toml new file mode 100644 index 0000000..19dfb8d --- /dev/null +++ b/assets/toml-test/tests/invalid/bool/starting-same-false.toml @@ -0,0 +1 @@ +a = falsey diff --git a/assets/toml-test/tests/invalid/bool/starting-same-true.toml b/assets/toml-test/tests/invalid/bool/starting-same-true.toml new file mode 100644 index 0000000..bf2f784 --- /dev/null +++ b/assets/toml-test/tests/invalid/bool/starting-same-true.toml @@ -0,0 +1 @@ +a = truer diff --git a/assets/toml-test/tests/invalid/bool/wrong-case-false.toml b/assets/toml-test/tests/invalid/bool/wrong-case-false.toml new file mode 100644 index 0000000..3982220 --- /dev/null +++ b/assets/toml-test/tests/invalid/bool/wrong-case-false.toml @@ -0,0 +1 @@ +b = FALSE diff --git a/assets/toml-test/tests/invalid/bool/wrong-case-true.toml b/assets/toml-test/tests/invalid/bool/wrong-case-true.toml new file mode 100644 index 0000000..85e34c5 --- /dev/null +++ b/assets/toml-test/tests/invalid/bool/wrong-case-true.toml @@ -0,0 +1 @@ +a = TRUE diff --git a/assets/toml-test/tests/invalid/control/bare-cr.toml b/assets/toml-test/tests/invalid/control/bare-cr.toml new file mode 100644 index 0000000..37f4ce4 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/bare-cr.toml @@ -0,0 +1,2 @@ +# The following line contains a single carriage return control character + \ No newline at end of file diff --git a/assets/toml-test/tests/invalid/control/bare-formfeed.toml b/assets/toml-test/tests/invalid/control/bare-formfeed.toml new file mode 100644 index 0000000..508a650 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/bare-formfeed.toml @@ -0,0 +1 @@ +bare-formfeed = diff --git a/assets/toml-test/tests/invalid/control/bare-null.toml b/assets/toml-test/tests/invalid/control/bare-null.toml new file mode 100644 index 0000000000000000000000000000000000000000..cf15002ae4e5866dc8a6aabc98730c9f4d6b5ee3 GIT binary patch literal 27 icmYdFEK1eQE6vGKuvJhh&d*I%C`-&KO;u80-~s@FCkS5v literal 0 HcmV?d00001 diff --git a/assets/toml-test/tests/invalid/control/bare-vertical-tab.toml b/assets/toml-test/tests/invalid/control/bare-vertical-tab.toml new file mode 100644 index 0000000..abacefd --- /dev/null +++ b/assets/toml-test/tests/invalid/control/bare-vertical-tab.toml @@ -0,0 +1 @@ +bare-vertical-tab = diff --git a/assets/toml-test/tests/invalid/control/comment-cr.toml b/assets/toml-test/tests/invalid/control/comment-cr.toml new file mode 100644 index 0000000..3ce1cb4 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/comment-cr.toml @@ -0,0 +1 @@ +comment-cr = "Carriage return in comment" # a=1 diff --git a/assets/toml-test/tests/invalid/control/comment-del.toml b/assets/toml-test/tests/invalid/control/comment-del.toml new file mode 100644 index 0000000..fb90400 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/comment-del.toml @@ -0,0 +1 @@ +comment-del = "0x7f" #  diff --git a/assets/toml-test/tests/invalid/control/comment-lf.toml b/assets/toml-test/tests/invalid/control/comment-lf.toml new file mode 100644 index 0000000..f6e963e --- /dev/null +++ b/assets/toml-test/tests/invalid/control/comment-lf.toml @@ -0,0 +1 @@ +comment-lf = "ctrl-P" #  diff --git a/assets/toml-test/tests/invalid/control/comment-null.toml b/assets/toml-test/tests/invalid/control/comment-null.toml new file mode 100644 index 0000000000000000000000000000000000000000..2c903729b9a0731eebedef6c551fe9ddb30ba882 GIT binary patch literal 26 ecmYe!&&^HEE78p>&B;-)RZs%aN(#yf3|s(wpa;bO literal 0 HcmV?d00001 diff --git a/assets/toml-test/tests/invalid/control/comment-us.toml b/assets/toml-test/tests/invalid/control/comment-us.toml new file mode 100644 index 0000000..c685b79 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/comment-us.toml @@ -0,0 +1 @@ +comment-us = "ctrl-_" #  diff --git a/assets/toml-test/tests/invalid/control/control.multi b/assets/toml-test/tests/invalid/control/control.multi new file mode 100644 index 0000000..d23b6a6 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/control.multi @@ -0,0 +1,33 @@ +# "\x.." sequences are replaced with literal control characters. + +comment-null = "null" # \x00 +comment-lf = "ctrl-P" # \x10 +comment-us = "ctrl-_" # \x1f +comment-del = "0x7f" # \x7f +comment-cr = "Carriage return in comment" # \x0da=1 + +string-null = "null\x00" +string-lf = "null\x10" +string-us = "null\x1f" +string-del = "null\x7f" + +rawstring-null = 'null\x00' +rawstring-lf = 'null\x10' +rawstring-us = 'null\x1f' +rawstring-del = 'null\x7f' + +multi-null = """null\x00""" +multi-lf = """null\x10""" +multi-us = """null\x1f""" +multi-del = """null\x7f""" + +rawmulti-null = '''null\x00''' +rawmulti-lf = '''null\x10''' +rawmulti-us = '''null\x1f''' +rawmulti-del = '''null\x7f''' + +string-bs = "backspace\x08" + +bare-null = "some value" \x00 +bare-formfeed = \x0c +bare-vertical-tab = \x0b diff --git a/assets/toml-test/tests/invalid/control/multi-del.toml b/assets/toml-test/tests/invalid/control/multi-del.toml new file mode 100644 index 0000000..6629ae3 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/multi-del.toml @@ -0,0 +1 @@ +multi-del = """null""" diff --git a/assets/toml-test/tests/invalid/control/multi-lf.toml b/assets/toml-test/tests/invalid/control/multi-lf.toml new file mode 100644 index 0000000..f207d33 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/multi-lf.toml @@ -0,0 +1 @@ +multi-lf = """null""" diff --git a/assets/toml-test/tests/invalid/control/multi-null.toml b/assets/toml-test/tests/invalid/control/multi-null.toml new file mode 100644 index 0000000000000000000000000000000000000000..ac6cb46c006286cd6c9133c5029e17b2f3976db2 GIT binary patch literal 25 ccmc~T%_+&$%`45xQLt4|Qc?o37=Sbv0BuPJA^-pY literal 0 HcmV?d00001 diff --git a/assets/toml-test/tests/invalid/control/multi-us.toml b/assets/toml-test/tests/invalid/control/multi-us.toml new file mode 100644 index 0000000..b923ca9 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/multi-us.toml @@ -0,0 +1 @@ +multi-us = """null""" diff --git a/assets/toml-test/tests/invalid/control/rawmulti-del.toml b/assets/toml-test/tests/invalid/control/rawmulti-del.toml new file mode 100644 index 0000000..17cde07 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/rawmulti-del.toml @@ -0,0 +1 @@ +rawmulti-del = '''null''' diff --git a/assets/toml-test/tests/invalid/control/rawmulti-lf.toml b/assets/toml-test/tests/invalid/control/rawmulti-lf.toml new file mode 100644 index 0000000..360d489 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/rawmulti-lf.toml @@ -0,0 +1 @@ +rawmulti-lf = '''null''' diff --git a/assets/toml-test/tests/invalid/control/rawmulti-null.toml b/assets/toml-test/tests/invalid/control/rawmulti-null.toml new file mode 100644 index 0000000000000000000000000000000000000000..1b5bd092c5c54e408681c5bc215f34136f9d6029 GIT binary patch literal 28 fcmXR)EYB^?Daq8$E6vGKuvJi3R|l~efHW5Xkmm@B literal 0 HcmV?d00001 diff --git a/assets/toml-test/tests/invalid/control/rawmulti-us.toml b/assets/toml-test/tests/invalid/control/rawmulti-us.toml new file mode 100644 index 0000000..0251420 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/rawmulti-us.toml @@ -0,0 +1 @@ +rawmulti-us = '''null''' diff --git a/assets/toml-test/tests/invalid/control/rawstring-del.toml b/assets/toml-test/tests/invalid/control/rawstring-del.toml new file mode 100644 index 0000000..8d83ba8 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/rawstring-del.toml @@ -0,0 +1 @@ +rawstring-del = 'null' diff --git a/assets/toml-test/tests/invalid/control/rawstring-lf.toml b/assets/toml-test/tests/invalid/control/rawstring-lf.toml new file mode 100644 index 0000000..237470a --- /dev/null +++ b/assets/toml-test/tests/invalid/control/rawstring-lf.toml @@ -0,0 +1 @@ +rawstring-lf = 'null' diff --git a/assets/toml-test/tests/invalid/control/rawstring-null.toml b/assets/toml-test/tests/invalid/control/rawstring-null.toml new file mode 100644 index 0000000000000000000000000000000000000000..2d8d0b4cb8028a76db91a0455d23fc054577541b GIT binary patch literal 25 dcmXR)EH5r8%FIjG%`45xQLt4|2hj}bTmXCG2wDID literal 0 HcmV?d00001 diff --git a/assets/toml-test/tests/invalid/control/rawstring-us.toml b/assets/toml-test/tests/invalid/control/rawstring-us.toml new file mode 100644 index 0000000..76cb08c --- /dev/null +++ b/assets/toml-test/tests/invalid/control/rawstring-us.toml @@ -0,0 +1 @@ +rawstring-us = 'null' diff --git a/assets/toml-test/tests/invalid/control/string-bs.toml b/assets/toml-test/tests/invalid/control/string-bs.toml new file mode 100644 index 0000000..0061c48 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/string-bs.toml @@ -0,0 +1 @@ +string-bs = "backspace" diff --git a/assets/toml-test/tests/invalid/control/string-del.toml b/assets/toml-test/tests/invalid/control/string-del.toml new file mode 100644 index 0000000..bc0ec7f --- /dev/null +++ b/assets/toml-test/tests/invalid/control/string-del.toml @@ -0,0 +1 @@ +string-del = "null" diff --git a/assets/toml-test/tests/invalid/control/string-lf.toml b/assets/toml-test/tests/invalid/control/string-lf.toml new file mode 100644 index 0000000..0cf9218 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/string-lf.toml @@ -0,0 +1 @@ +string-lf = "null" diff --git a/assets/toml-test/tests/invalid/control/string-null.toml b/assets/toml-test/tests/invalid/control/string-null.toml new file mode 100644 index 0000000000000000000000000000000000000000..821c72c32cffdb36e3e090b510ad6699832fcd47 GIT binary patch literal 22 acmXReDay=C*Uc-<$x*OXPy*2mN?ZV3!UqNb literal 0 HcmV?d00001 diff --git a/assets/toml-test/tests/invalid/control/string-us.toml b/assets/toml-test/tests/invalid/control/string-us.toml new file mode 100644 index 0000000..af31f57 --- /dev/null +++ b/assets/toml-test/tests/invalid/control/string-us.toml @@ -0,0 +1 @@ +string-us = "null" diff --git a/assets/toml-test/tests/invalid/datetime/hour-over.toml b/assets/toml-test/tests/invalid/datetime/hour-over.toml new file mode 100644 index 0000000..d4b89b6 --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/hour-over.toml @@ -0,0 +1,2 @@ +# time-hour = 2DIGIT ; 00-23 +d = 2006-01-01T24:00:00-00:00 diff --git a/assets/toml-test/tests/invalid/datetime/mday-over.toml b/assets/toml-test/tests/invalid/datetime/mday-over.toml new file mode 100644 index 0000000..600a409 --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/mday-over.toml @@ -0,0 +1,3 @@ +# date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on +# ; month/year +d = 2006-01-32T00:00:00-00:00 diff --git a/assets/toml-test/tests/invalid/datetime/mday-under.toml b/assets/toml-test/tests/invalid/datetime/mday-under.toml new file mode 100644 index 0000000..689fc98 --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/mday-under.toml @@ -0,0 +1,3 @@ +# date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on +# ; month/year +d = 2006-01-00T00:00:00-00:00 diff --git a/assets/toml-test/tests/invalid/datetime/minute-over.toml b/assets/toml-test/tests/invalid/datetime/minute-over.toml new file mode 100644 index 0000000..1532d79 --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/minute-over.toml @@ -0,0 +1,2 @@ +# time-minute = 2DIGIT ; 00-59 +d = 2006-01-01T00:60:00-00:00 diff --git a/assets/toml-test/tests/invalid/datetime/month-over.toml b/assets/toml-test/tests/invalid/datetime/month-over.toml new file mode 100644 index 0000000..c7d40c9 --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/month-over.toml @@ -0,0 +1,2 @@ +# date-month = 2DIGIT ; 01-12 +d = 2006-13-01T00:00:00-00:00 diff --git a/assets/toml-test/tests/invalid/datetime/month-under.toml b/assets/toml-test/tests/invalid/datetime/month-under.toml new file mode 100644 index 0000000..503f60a --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/month-under.toml @@ -0,0 +1,2 @@ +# date-month = 2DIGIT ; 01-12 +d = 2007-00-01T00:00:00-00:00 diff --git a/assets/toml-test/tests/invalid/datetime/no-leads-with-milli.toml b/assets/toml-test/tests/invalid/datetime/no-leads-with-milli.toml new file mode 100644 index 0000000..6e3d2e3 --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/no-leads-with-milli.toml @@ -0,0 +1,2 @@ +# Day "5" instead of "05"; the leading zero is required. +with-milli = 1987-07-5T17:45:00.12Z diff --git a/assets/toml-test/tests/invalid/datetime/no-leads.toml b/assets/toml-test/tests/invalid/datetime/no-leads.toml new file mode 100644 index 0000000..6700d1c --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/no-leads.toml @@ -0,0 +1,2 @@ +# Month "7" instead of "07"; the leading zero is required. +no-leads = 1987-7-05T17:45:00Z diff --git a/assets/toml-test/tests/invalid/datetime/no-secs.toml b/assets/toml-test/tests/invalid/datetime/no-secs.toml new file mode 100644 index 0000000..bbd196a --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/no-secs.toml @@ -0,0 +1,2 @@ +# No seconds in time. +no-secs = 1987-07-05T17:45Z diff --git a/assets/toml-test/tests/invalid/datetime/no-t.toml b/assets/toml-test/tests/invalid/datetime/no-t.toml new file mode 100644 index 0000000..8d87260 --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/no-t.toml @@ -0,0 +1,2 @@ +# No "t" or "T" between the date and time. +no-t = 1987-07-0517:45:00Z diff --git a/assets/toml-test/tests/invalid/datetime/second-over.toml b/assets/toml-test/tests/invalid/datetime/second-over.toml new file mode 100644 index 0000000..4921704 --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/second-over.toml @@ -0,0 +1,3 @@ +# time-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second +# ; rules +d = 2006-01-01T00:00:61-00:00 diff --git a/assets/toml-test/tests/invalid/datetime/time-no-leads-2.toml b/assets/toml-test/tests/invalid/datetime/time-no-leads-2.toml new file mode 100644 index 0000000..d7b8459 --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/time-no-leads-2.toml @@ -0,0 +1,2 @@ +# Leading 0 is always required. +d = 01:32:0 diff --git a/assets/toml-test/tests/invalid/datetime/time-no-leads.toml b/assets/toml-test/tests/invalid/datetime/time-no-leads.toml new file mode 100644 index 0000000..8ad722a --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/time-no-leads.toml @@ -0,0 +1,2 @@ +# Leading 0 is always required. +d = 1:32:00 diff --git a/assets/toml-test/tests/invalid/datetime/trailing-t.toml b/assets/toml-test/tests/invalid/datetime/trailing-t.toml new file mode 100644 index 0000000..38ee1db --- /dev/null +++ b/assets/toml-test/tests/invalid/datetime/trailing-t.toml @@ -0,0 +1,2 @@ +# Date cannot end with trailing T +d = 2006-01-30T diff --git a/assets/toml-test/tests/invalid/encoding/bad-utf8-at-end.toml b/assets/toml-test/tests/invalid/encoding/bad-utf8-at-end.toml new file mode 100644 index 0000000..df5f0b0 --- /dev/null +++ b/assets/toml-test/tests/invalid/encoding/bad-utf8-at-end.toml @@ -0,0 +1,5 @@ +# There is a 0xda at after the quotes, and no EOL at the end of the file. +# +# This is a bit of an edge case: This indicates there should be two bytes +# (0b1101_1010) but there is no byte to follow because it's the end of the file. +x = """"""Ú \ No newline at end of file diff --git a/assets/toml-test/tests/invalid/encoding/bad-utf8-in-comment.toml b/assets/toml-test/tests/invalid/encoding/bad-utf8-in-comment.toml new file mode 100644 index 0000000..816fa46 --- /dev/null +++ b/assets/toml-test/tests/invalid/encoding/bad-utf8-in-comment.toml @@ -0,0 +1 @@ +# à diff --git a/assets/toml-test/tests/invalid/encoding/bad-utf8-in-multiline-literal.toml b/assets/toml-test/tests/invalid/encoding/bad-utf8-in-multiline-literal.toml new file mode 100644 index 0000000..296cf9d --- /dev/null +++ b/assets/toml-test/tests/invalid/encoding/bad-utf8-in-multiline-literal.toml @@ -0,0 +1,2 @@ +# The following line contains an invalid UTF-8 sequence. +bad = '''Ã''' diff --git a/assets/toml-test/tests/invalid/encoding/bad-utf8-in-multiline.toml b/assets/toml-test/tests/invalid/encoding/bad-utf8-in-multiline.toml new file mode 100644 index 0000000..9371cb1 --- /dev/null +++ b/assets/toml-test/tests/invalid/encoding/bad-utf8-in-multiline.toml @@ -0,0 +1,2 @@ +# The following line contains an invalid UTF-8 sequence. +bad = """Ã""" diff --git a/assets/toml-test/tests/invalid/encoding/bad-utf8-in-string-literal.toml b/assets/toml-test/tests/invalid/encoding/bad-utf8-in-string-literal.toml new file mode 100644 index 0000000..3f8948b --- /dev/null +++ b/assets/toml-test/tests/invalid/encoding/bad-utf8-in-string-literal.toml @@ -0,0 +1,2 @@ +# The following line contains an invalid UTF-8 sequence. +bad = 'Ã' diff --git a/assets/toml-test/tests/invalid/encoding/bad-utf8-in-string.toml b/assets/toml-test/tests/invalid/encoding/bad-utf8-in-string.toml new file mode 100644 index 0000000..6d376fb --- /dev/null +++ b/assets/toml-test/tests/invalid/encoding/bad-utf8-in-string.toml @@ -0,0 +1,2 @@ +# The following line contains an invalid UTF-8 sequence. +bad = "Ã" diff --git a/assets/toml-test/tests/invalid/encoding/bom-not-at-start-1.toml b/assets/toml-test/tests/invalid/encoding/bom-not-at-start-1.toml new file mode 100644 index 0000000..effe1f2 --- /dev/null +++ b/assets/toml-test/tests/invalid/encoding/bom-not-at-start-1.toml @@ -0,0 +1 @@ +bom-not-at-start ÿý diff --git a/assets/toml-test/tests/invalid/encoding/bom-not-at-start-2.toml b/assets/toml-test/tests/invalid/encoding/bom-not-at-start-2.toml new file mode 100644 index 0000000..71e52b4 --- /dev/null +++ b/assets/toml-test/tests/invalid/encoding/bom-not-at-start-2.toml @@ -0,0 +1 @@ +bom-not-at-start= ÿý diff --git a/assets/toml-test/tests/invalid/encoding/utf16-bom.toml b/assets/toml-test/tests/invalid/encoding/utf16-bom.toml new file mode 100644 index 0000000000000000000000000000000000000000..95b5f9608cb7861af19eecf94d67bdc6dc0e8f37 GIT binary patch literal 38 qcmezOpFx>HfgzM3gu#tLm%)(149F{I$YdyC$N;jO82lN08MpwPJqD-% literal 0 HcmV?d00001 diff --git a/assets/toml-test/tests/invalid/encoding/utf16.toml b/assets/toml-test/tests/invalid/encoding/utf16.toml new file mode 100644 index 0000000000000000000000000000000000000000..de3cbb2cb2ceb28abb334066ac58c8bc06fb0f91 GIT binary patch literal 42 ucmZQjW>8=VWe8z#W6)(VWH1Br${8{lN*FR2@)=5jv;u<@gFk~W0~Y{z>;?k> literal 0 HcmV?d00001 diff --git a/assets/toml-test/tests/invalid/float/double-point-1.toml b/assets/toml-test/tests/invalid/float/double-point-1.toml new file mode 100644 index 0000000..2105fa9 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/double-point-1.toml @@ -0,0 +1 @@ +double-point-1 = 0..1 diff --git a/assets/toml-test/tests/invalid/float/double-point-2.toml b/assets/toml-test/tests/invalid/float/double-point-2.toml new file mode 100644 index 0000000..1ef3d0b --- /dev/null +++ b/assets/toml-test/tests/invalid/float/double-point-2.toml @@ -0,0 +1 @@ +double-point-2 = 0.1.2 diff --git a/assets/toml-test/tests/invalid/float/exp-double-e-1.toml b/assets/toml-test/tests/invalid/float/exp-double-e-1.toml new file mode 100644 index 0000000..ee568ce --- /dev/null +++ b/assets/toml-test/tests/invalid/float/exp-double-e-1.toml @@ -0,0 +1 @@ +exp-double-e-1 = 1ee2 diff --git a/assets/toml-test/tests/invalid/float/exp-double-e-2.toml b/assets/toml-test/tests/invalid/float/exp-double-e-2.toml new file mode 100644 index 0000000..8fb0158 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/exp-double-e-2.toml @@ -0,0 +1 @@ +exp-double-e-2 = 1e2e3 diff --git a/assets/toml-test/tests/invalid/float/exp-double-us.toml b/assets/toml-test/tests/invalid/float/exp-double-us.toml new file mode 100644 index 0000000..63f94e6 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/exp-double-us.toml @@ -0,0 +1 @@ +exp-double-us = 1e__23 diff --git a/assets/toml-test/tests/invalid/float/exp-leading-us.toml b/assets/toml-test/tests/invalid/float/exp-leading-us.toml new file mode 100644 index 0000000..1426f36 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/exp-leading-us.toml @@ -0,0 +1 @@ +exp-leading-us = 1e_23 diff --git a/assets/toml-test/tests/invalid/float/exp-point-1.toml b/assets/toml-test/tests/invalid/float/exp-point-1.toml new file mode 100644 index 0000000..569590b --- /dev/null +++ b/assets/toml-test/tests/invalid/float/exp-point-1.toml @@ -0,0 +1 @@ +exp-point-1 = 1e2.3 diff --git a/assets/toml-test/tests/invalid/float/exp-point-2.toml b/assets/toml-test/tests/invalid/float/exp-point-2.toml new file mode 100644 index 0000000..4a5e1d4 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/exp-point-2.toml @@ -0,0 +1 @@ +exp-point-2 = 1.e2 diff --git a/assets/toml-test/tests/invalid/float/exp-trailing-us.toml b/assets/toml-test/tests/invalid/float/exp-trailing-us.toml new file mode 100644 index 0000000..07c0641 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/exp-trailing-us.toml @@ -0,0 +1 @@ +exp-trailing-us = 1e_23_ diff --git a/assets/toml-test/tests/invalid/float/float.multi b/assets/toml-test/tests/invalid/float/float.multi new file mode 100644 index 0000000..0708195 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/float.multi @@ -0,0 +1,40 @@ +leading-zero = 03.14 +leading-zero-neg = -03.14 +leading-zero-plus = +03.14 + +leading-point = .12345 +leading-point-neg = -.12345 +leading-point-plus = +.12345 + +trailing-point = 1. +trailing-point-min = -1. +trailing-point-plus = +1. + +trailing-us = 1.2_ +leading-us = _1.2 +us-before-point = 1_.2 +us-after-point = 1._2 + +double-point-1 = 0..1 +double-point-2 = 0.1.2 + +exp-point-1 = 1e2.3 +exp-point-2 = 1.e2 + +exp-double-e-1 = 1ee2 +exp-double-e-2 = 1e2e3 + +exp-leading-us = 1e_23 +exp-trailing-us = 1e_23_ +exp-double-us = 1e__23 + +inf-incomplete-1 = in +inf-incomplete-2 = +in +inf-incomplete-3 = -in + +nan-incomplete-1 = na +nan-incomplete-2 = +na +nan-incomplete-3 = -na + +nan_underscore = na_n +inf_underscore = in_f diff --git a/assets/toml-test/tests/invalid/float/inf-incomplete-1.toml b/assets/toml-test/tests/invalid/float/inf-incomplete-1.toml new file mode 100644 index 0000000..2c9ef59 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/inf-incomplete-1.toml @@ -0,0 +1 @@ +inf-incomplete-1 = in diff --git a/assets/toml-test/tests/invalid/float/inf-incomplete-2.toml b/assets/toml-test/tests/invalid/float/inf-incomplete-2.toml new file mode 100644 index 0000000..afda712 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/inf-incomplete-2.toml @@ -0,0 +1 @@ +inf-incomplete-2 = +in diff --git a/assets/toml-test/tests/invalid/float/inf-incomplete-3.toml b/assets/toml-test/tests/invalid/float/inf-incomplete-3.toml new file mode 100644 index 0000000..bd82738 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/inf-incomplete-3.toml @@ -0,0 +1 @@ +inf-incomplete-3 = -in diff --git a/assets/toml-test/tests/invalid/float/inf_underscore.toml b/assets/toml-test/tests/invalid/float/inf_underscore.toml new file mode 100644 index 0000000..8e6ab17 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/inf_underscore.toml @@ -0,0 +1 @@ +inf_underscore = in_f diff --git a/assets/toml-test/tests/invalid/float/leading-point-neg.toml b/assets/toml-test/tests/invalid/float/leading-point-neg.toml new file mode 100644 index 0000000..74c526f --- /dev/null +++ b/assets/toml-test/tests/invalid/float/leading-point-neg.toml @@ -0,0 +1 @@ +leading-point-neg = -.12345 diff --git a/assets/toml-test/tests/invalid/float/leading-point-plus.toml b/assets/toml-test/tests/invalid/float/leading-point-plus.toml new file mode 100644 index 0000000..85e23a2 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/leading-point-plus.toml @@ -0,0 +1 @@ +leading-point-plus = +.12345 diff --git a/assets/toml-test/tests/invalid/float/leading-point.toml b/assets/toml-test/tests/invalid/float/leading-point.toml new file mode 100644 index 0000000..a3c29b9 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/leading-point.toml @@ -0,0 +1 @@ +leading-point = .12345 diff --git a/assets/toml-test/tests/invalid/float/leading-us.toml b/assets/toml-test/tests/invalid/float/leading-us.toml new file mode 100644 index 0000000..fa94fd0 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/leading-us.toml @@ -0,0 +1 @@ +leading-us = _1.2 diff --git a/assets/toml-test/tests/invalid/float/leading-zero-neg.toml b/assets/toml-test/tests/invalid/float/leading-zero-neg.toml new file mode 100644 index 0000000..94a4e70 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/leading-zero-neg.toml @@ -0,0 +1 @@ +leading-zero-neg = -03.14 diff --git a/assets/toml-test/tests/invalid/float/leading-zero-plus.toml b/assets/toml-test/tests/invalid/float/leading-zero-plus.toml new file mode 100644 index 0000000..12bfd60 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/leading-zero-plus.toml @@ -0,0 +1 @@ +leading-zero-plus = +03.14 diff --git a/assets/toml-test/tests/invalid/float/leading-zero.toml b/assets/toml-test/tests/invalid/float/leading-zero.toml new file mode 100644 index 0000000..551fb25 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/leading-zero.toml @@ -0,0 +1 @@ +leading-zero = 03.14 diff --git a/assets/toml-test/tests/invalid/float/nan-incomplete-1.toml b/assets/toml-test/tests/invalid/float/nan-incomplete-1.toml new file mode 100644 index 0000000..df2e261 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/nan-incomplete-1.toml @@ -0,0 +1 @@ +nan-incomplete-1 = na diff --git a/assets/toml-test/tests/invalid/float/nan-incomplete-2.toml b/assets/toml-test/tests/invalid/float/nan-incomplete-2.toml new file mode 100644 index 0000000..6d2e8fb --- /dev/null +++ b/assets/toml-test/tests/invalid/float/nan-incomplete-2.toml @@ -0,0 +1 @@ +nan-incomplete-2 = +na diff --git a/assets/toml-test/tests/invalid/float/nan-incomplete-3.toml b/assets/toml-test/tests/invalid/float/nan-incomplete-3.toml new file mode 100644 index 0000000..9d365ac --- /dev/null +++ b/assets/toml-test/tests/invalid/float/nan-incomplete-3.toml @@ -0,0 +1 @@ +nan-incomplete-3 = -na diff --git a/assets/toml-test/tests/invalid/float/nan_underscore.toml b/assets/toml-test/tests/invalid/float/nan_underscore.toml new file mode 100644 index 0000000..44c8bf1 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/nan_underscore.toml @@ -0,0 +1 @@ +nan_underscore = na_n diff --git a/assets/toml-test/tests/invalid/float/trailing-point-min.toml b/assets/toml-test/tests/invalid/float/trailing-point-min.toml new file mode 100644 index 0000000..48741e3 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/trailing-point-min.toml @@ -0,0 +1 @@ +trailing-point-min = -1. diff --git a/assets/toml-test/tests/invalid/float/trailing-point-plus.toml b/assets/toml-test/tests/invalid/float/trailing-point-plus.toml new file mode 100644 index 0000000..9926039 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/trailing-point-plus.toml @@ -0,0 +1 @@ +trailing-point-plus = +1. diff --git a/assets/toml-test/tests/invalid/float/trailing-point.toml b/assets/toml-test/tests/invalid/float/trailing-point.toml new file mode 100644 index 0000000..76c95d9 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/trailing-point.toml @@ -0,0 +1 @@ +trailing-point = 1. diff --git a/assets/toml-test/tests/invalid/float/trailing-us-exp.toml b/assets/toml-test/tests/invalid/float/trailing-us-exp.toml new file mode 100644 index 0000000..7bba971 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/trailing-us-exp.toml @@ -0,0 +1,4 @@ +# trailing underscore in integer part is not allowed +trailing-us-exp = 1_e2 +# trailing underscore in float part is not allowed +trailing-us-exp2 = 1.2_e2 diff --git a/assets/toml-test/tests/invalid/float/trailing-us.toml b/assets/toml-test/tests/invalid/float/trailing-us.toml new file mode 100644 index 0000000..ddfb7ba --- /dev/null +++ b/assets/toml-test/tests/invalid/float/trailing-us.toml @@ -0,0 +1 @@ +trailing-us = 1.2_ diff --git a/assets/toml-test/tests/invalid/float/us-after-point.toml b/assets/toml-test/tests/invalid/float/us-after-point.toml new file mode 100644 index 0000000..7f15f57 --- /dev/null +++ b/assets/toml-test/tests/invalid/float/us-after-point.toml @@ -0,0 +1 @@ +us-after-point = 1._2 diff --git a/assets/toml-test/tests/invalid/float/us-before-point.toml b/assets/toml-test/tests/invalid/float/us-before-point.toml new file mode 100644 index 0000000..c8edcbf --- /dev/null +++ b/assets/toml-test/tests/invalid/float/us-before-point.toml @@ -0,0 +1 @@ +us-before-point = 1_.2 diff --git a/assets/toml-test/tests/invalid/inline-table/add.toml b/assets/toml-test/tests/invalid/inline-table/add.toml new file mode 100644 index 0000000..bb8b3e8 --- /dev/null +++ b/assets/toml-test/tests/invalid/inline-table/add.toml @@ -0,0 +1,3 @@ +a={} +# Inline tables are immutable and can't be extended +[a.b] diff --git a/assets/toml-test/tests/invalid/inline-table/double-comma.toml b/assets/toml-test/tests/invalid/inline-table/double-comma.toml new file mode 100644 index 0000000..2d2913a --- /dev/null +++ b/assets/toml-test/tests/invalid/inline-table/double-comma.toml @@ -0,0 +1 @@ +t = {x=3,,y=4} diff --git a/assets/toml-test/tests/invalid/inline-table/duplicate-key.toml b/assets/toml-test/tests/invalid/inline-table/duplicate-key.toml new file mode 100644 index 0000000..0789e14 --- /dev/null +++ b/assets/toml-test/tests/invalid/inline-table/duplicate-key.toml @@ -0,0 +1,2 @@ +# Duplicate keys within an inline table are invalid +a={b=1, b=2} diff --git a/assets/toml-test/tests/invalid/inline-table/empty.toml b/assets/toml-test/tests/invalid/inline-table/empty.toml new file mode 100644 index 0000000..ebbb066 --- /dev/null +++ b/assets/toml-test/tests/invalid/inline-table/empty.toml @@ -0,0 +1 @@ +t = {,} diff --git a/assets/toml-test/tests/invalid/inline-table/linebreak-1.toml b/assets/toml-test/tests/invalid/inline-table/linebreak-1.toml new file mode 100644 index 0000000..0ae44b6 --- /dev/null +++ b/assets/toml-test/tests/invalid/inline-table/linebreak-1.toml @@ -0,0 +1,4 @@ +# No newlines are allowed between the curly braces unless they are valid within +# a value. +simple = { a = 1 +} diff --git a/assets/toml-test/tests/invalid/inline-table/linebreak-2.toml b/assets/toml-test/tests/invalid/inline-table/linebreak-2.toml new file mode 100644 index 0000000..5ea4eaf --- /dev/null +++ b/assets/toml-test/tests/invalid/inline-table/linebreak-2.toml @@ -0,0 +1,2 @@ +t = {a=1, +b=2} diff --git a/assets/toml-test/tests/invalid/inline-table/linebreak-3.toml b/assets/toml-test/tests/invalid/inline-table/linebreak-3.toml new file mode 100644 index 0000000..7f6e892 --- /dev/null +++ b/assets/toml-test/tests/invalid/inline-table/linebreak-3.toml @@ -0,0 +1,2 @@ +t = {a=1 +,b=2} diff --git a/assets/toml-test/tests/invalid/inline-table/linebreak-4.toml b/assets/toml-test/tests/invalid/inline-table/linebreak-4.toml new file mode 100644 index 0000000..3f34e15 --- /dev/null +++ b/assets/toml-test/tests/invalid/inline-table/linebreak-4.toml @@ -0,0 +1,4 @@ +json_like = { + first = "Tom", + last = "Preston-Werner" +} diff --git a/assets/toml-test/tests/invalid/inline-table/no-comma.toml b/assets/toml-test/tests/invalid/inline-table/no-comma.toml new file mode 100644 index 0000000..0a4083d --- /dev/null +++ b/assets/toml-test/tests/invalid/inline-table/no-comma.toml @@ -0,0 +1 @@ +t = {x = 3 y = 4} diff --git a/assets/toml-test/tests/invalid/inline-table/overwrite.toml b/assets/toml-test/tests/invalid/inline-table/overwrite.toml new file mode 100644 index 0000000..4da0a85 --- /dev/null +++ b/assets/toml-test/tests/invalid/inline-table/overwrite.toml @@ -0,0 +1,3 @@ +a.b=0 +# Since table "a" is already defined, it can't be replaced by an inline table. +a={} diff --git a/assets/toml-test/tests/invalid/inline-table/trailing-comma.toml b/assets/toml-test/tests/invalid/inline-table/trailing-comma.toml new file mode 100644 index 0000000..6b67e02 --- /dev/null +++ b/assets/toml-test/tests/invalid/inline-table/trailing-comma.toml @@ -0,0 +1,3 @@ +# A terminating comma (also called trailing comma) is not permitted after the +# last key/value pair in an inline table +abc = { abc = 123, } diff --git a/assets/toml-test/tests/invalid/integer/capital-bin.toml b/assets/toml-test/tests/invalid/integer/capital-bin.toml new file mode 100644 index 0000000..bea4e5e --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/capital-bin.toml @@ -0,0 +1 @@ +capital-bin = 0B0 diff --git a/assets/toml-test/tests/invalid/integer/capital-hex.toml b/assets/toml-test/tests/invalid/integer/capital-hex.toml new file mode 100644 index 0000000..bc064bb --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/capital-hex.toml @@ -0,0 +1 @@ +capital-hex = 0X1 diff --git a/assets/toml-test/tests/invalid/integer/capital-oct.toml b/assets/toml-test/tests/invalid/integer/capital-oct.toml new file mode 100644 index 0000000..ea08a4d --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/capital-oct.toml @@ -0,0 +1 @@ +capital-oct = 0O0 diff --git a/assets/toml-test/tests/invalid/integer/double-sign-nex.toml b/assets/toml-test/tests/invalid/integer/double-sign-nex.toml new file mode 100644 index 0000000..ff014cf --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/double-sign-nex.toml @@ -0,0 +1 @@ +double-sign-nex = --99 diff --git a/assets/toml-test/tests/invalid/integer/double-sign-plus.toml b/assets/toml-test/tests/invalid/integer/double-sign-plus.toml new file mode 100644 index 0000000..845ebb5 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/double-sign-plus.toml @@ -0,0 +1 @@ +double-sign-plus = ++99 diff --git a/assets/toml-test/tests/invalid/integer/double-us.toml b/assets/toml-test/tests/invalid/integer/double-us.toml new file mode 100644 index 0000000..cd00561 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/double-us.toml @@ -0,0 +1 @@ +double-us = 1__23 diff --git a/assets/toml-test/tests/invalid/integer/incomplete-bin.toml b/assets/toml-test/tests/invalid/integer/incomplete-bin.toml new file mode 100644 index 0000000..2d80143 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/incomplete-bin.toml @@ -0,0 +1 @@ +incomplete-bin = 0b diff --git a/assets/toml-test/tests/invalid/integer/incomplete-hex.toml b/assets/toml-test/tests/invalid/integer/incomplete-hex.toml new file mode 100644 index 0000000..691b09c --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/incomplete-hex.toml @@ -0,0 +1 @@ +incomplete-hex = 0x diff --git a/assets/toml-test/tests/invalid/integer/incomplete-oct.toml b/assets/toml-test/tests/invalid/integer/incomplete-oct.toml new file mode 100644 index 0000000..a248b71 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/incomplete-oct.toml @@ -0,0 +1 @@ +incomplete-oct = 0o diff --git a/assets/toml-test/tests/invalid/integer/integer.multi b/assets/toml-test/tests/invalid/integer/integer.multi new file mode 100644 index 0000000..40ac409 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/integer.multi @@ -0,0 +1,41 @@ +leading-zero-1 = 01 +leading-zero-2 = 00 +leading-zero-3 = 0_0 +leading-zero-sign-1 = -01 +leading-zero-sign-2 = +01 +leading-zero-sign-3 = +0_1 + +double-sign-plus = ++99 +double-sign-nex = --99 + +negative-hex = -0xff +negative-bin = -0b11010110 +negative-oct = -0o99 + +positive-hex = +0xff +positive-bin = +0b11010110 +positive-oct = +0o99 + +trailing-us = 123_ +leading-us = _123 +double-us = 1__23 + +us-after-hex = 0x_1 +us-after-oct = 0o_1 +us-after-bin = 0b_1 + +trailing-us-hex = 0x1_ +trailing-us-oct = 0o1_ +trailing-us-bin = 0b1_ + +leading-us-hex = _0o1 +leading-us-oct = _0o1 +leading-us-bin = _0o1 + +invalid-hex = 0xaafz +invalid-oct = 0o778 +invalid-bin = 0b0012 + +capital-hex = 0X1 +capital-oct = 0O0 +capital-bin = 0B0 diff --git a/assets/toml-test/tests/invalid/integer/invalid-bin.toml b/assets/toml-test/tests/invalid/integer/invalid-bin.toml new file mode 100644 index 0000000..d018258 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/invalid-bin.toml @@ -0,0 +1 @@ +invalid-bin = 0b0012 diff --git a/assets/toml-test/tests/invalid/integer/invalid-hex.toml b/assets/toml-test/tests/invalid/integer/invalid-hex.toml new file mode 100644 index 0000000..7cc0e85 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/invalid-hex.toml @@ -0,0 +1 @@ +invalid-hex = 0xaafz diff --git a/assets/toml-test/tests/invalid/integer/invalid-oct.toml b/assets/toml-test/tests/invalid/integer/invalid-oct.toml new file mode 100644 index 0000000..03181b1 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/invalid-oct.toml @@ -0,0 +1 @@ +invalid-oct = 0o778 diff --git a/assets/toml-test/tests/invalid/integer/leading-us-bin.toml b/assets/toml-test/tests/invalid/integer/leading-us-bin.toml new file mode 100644 index 0000000..8885c03 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/leading-us-bin.toml @@ -0,0 +1 @@ +leading-us-bin = _0o1 diff --git a/assets/toml-test/tests/invalid/integer/leading-us-hex.toml b/assets/toml-test/tests/invalid/integer/leading-us-hex.toml new file mode 100644 index 0000000..9f193f8 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/leading-us-hex.toml @@ -0,0 +1 @@ +leading-us-hex = _0o1 diff --git a/assets/toml-test/tests/invalid/integer/leading-us-oct.toml b/assets/toml-test/tests/invalid/integer/leading-us-oct.toml new file mode 100644 index 0000000..a717f1c --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/leading-us-oct.toml @@ -0,0 +1 @@ +leading-us-oct = _0o1 diff --git a/assets/toml-test/tests/invalid/integer/leading-us.toml b/assets/toml-test/tests/invalid/integer/leading-us.toml new file mode 100644 index 0000000..d059f50 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/leading-us.toml @@ -0,0 +1 @@ +leading-us = _123 diff --git a/assets/toml-test/tests/invalid/integer/leading-zero-1.toml b/assets/toml-test/tests/invalid/integer/leading-zero-1.toml new file mode 100644 index 0000000..eba6bda --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/leading-zero-1.toml @@ -0,0 +1 @@ +leading-zero-1 = 01 diff --git a/assets/toml-test/tests/invalid/integer/leading-zero-2.toml b/assets/toml-test/tests/invalid/integer/leading-zero-2.toml new file mode 100644 index 0000000..436af56 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/leading-zero-2.toml @@ -0,0 +1 @@ +leading-zero-2 = 00 diff --git a/assets/toml-test/tests/invalid/integer/leading-zero-3.toml b/assets/toml-test/tests/invalid/integer/leading-zero-3.toml new file mode 100644 index 0000000..5404fc8 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/leading-zero-3.toml @@ -0,0 +1 @@ +leading-zero-3 = 0_0 diff --git a/assets/toml-test/tests/invalid/integer/leading-zero-sign-1.toml b/assets/toml-test/tests/invalid/integer/leading-zero-sign-1.toml new file mode 100644 index 0000000..1f15a9d --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/leading-zero-sign-1.toml @@ -0,0 +1 @@ +leading-zero-sign-1 = -01 diff --git a/assets/toml-test/tests/invalid/integer/leading-zero-sign-2.toml b/assets/toml-test/tests/invalid/integer/leading-zero-sign-2.toml new file mode 100644 index 0000000..fa259c3 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/leading-zero-sign-2.toml @@ -0,0 +1 @@ +leading-zero-sign-2 = +01 diff --git a/assets/toml-test/tests/invalid/integer/leading-zero-sign-3.toml b/assets/toml-test/tests/invalid/integer/leading-zero-sign-3.toml new file mode 100644 index 0000000..3ac64a5 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/leading-zero-sign-3.toml @@ -0,0 +1 @@ +leading-zero-sign-3 = +0_1 diff --git a/assets/toml-test/tests/invalid/integer/negative-bin.toml b/assets/toml-test/tests/invalid/integer/negative-bin.toml new file mode 100644 index 0000000..948b236 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/negative-bin.toml @@ -0,0 +1 @@ +negative-bin = -0b11010110 diff --git a/assets/toml-test/tests/invalid/integer/negative-hex.toml b/assets/toml-test/tests/invalid/integer/negative-hex.toml new file mode 100644 index 0000000..67c31ea --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/negative-hex.toml @@ -0,0 +1 @@ +negative-hex = -0xff diff --git a/assets/toml-test/tests/invalid/integer/negative-oct.toml b/assets/toml-test/tests/invalid/integer/negative-oct.toml new file mode 100644 index 0000000..b0c5ab0 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/negative-oct.toml @@ -0,0 +1 @@ +negative-oct = -0o99 diff --git a/assets/toml-test/tests/invalid/integer/positive-bin.toml b/assets/toml-test/tests/invalid/integer/positive-bin.toml new file mode 100644 index 0000000..7d6de65 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/positive-bin.toml @@ -0,0 +1 @@ +positive-bin = +0b11010110 diff --git a/assets/toml-test/tests/invalid/integer/positive-hex.toml b/assets/toml-test/tests/invalid/integer/positive-hex.toml new file mode 100644 index 0000000..bd503aa --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/positive-hex.toml @@ -0,0 +1 @@ +positive-hex = +0xff diff --git a/assets/toml-test/tests/invalid/integer/positive-oct.toml b/assets/toml-test/tests/invalid/integer/positive-oct.toml new file mode 100644 index 0000000..d77aa52 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/positive-oct.toml @@ -0,0 +1 @@ +positive-oct = +0o99 diff --git a/assets/toml-test/tests/invalid/integer/text-after-integer.toml b/assets/toml-test/tests/invalid/integer/text-after-integer.toml new file mode 100644 index 0000000..42de7af --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/text-after-integer.toml @@ -0,0 +1 @@ +answer = 42 the ultimate answer? diff --git a/assets/toml-test/tests/invalid/integer/trailing-us-bin.toml b/assets/toml-test/tests/invalid/integer/trailing-us-bin.toml new file mode 100644 index 0000000..9a0b574 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/trailing-us-bin.toml @@ -0,0 +1 @@ +trailing-us-bin = 0b1_ diff --git a/assets/toml-test/tests/invalid/integer/trailing-us-hex.toml b/assets/toml-test/tests/invalid/integer/trailing-us-hex.toml new file mode 100644 index 0000000..2a96455 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/trailing-us-hex.toml @@ -0,0 +1 @@ +trailing-us-hex = 0x1_ diff --git a/assets/toml-test/tests/invalid/integer/trailing-us-oct.toml b/assets/toml-test/tests/invalid/integer/trailing-us-oct.toml new file mode 100644 index 0000000..d28e8bc --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/trailing-us-oct.toml @@ -0,0 +1 @@ +trailing-us-oct = 0o1_ diff --git a/assets/toml-test/tests/invalid/integer/trailing-us.toml b/assets/toml-test/tests/invalid/integer/trailing-us.toml new file mode 100644 index 0000000..e11e8ff --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/trailing-us.toml @@ -0,0 +1 @@ +trailing-us = 123_ diff --git a/assets/toml-test/tests/invalid/integer/us-after-bin.toml b/assets/toml-test/tests/invalid/integer/us-after-bin.toml new file mode 100644 index 0000000..61dd895 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/us-after-bin.toml @@ -0,0 +1 @@ +us-after-bin = 0b_1 diff --git a/assets/toml-test/tests/invalid/integer/us-after-hex.toml b/assets/toml-test/tests/invalid/integer/us-after-hex.toml new file mode 100644 index 0000000..200220a --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/us-after-hex.toml @@ -0,0 +1 @@ +us-after-hex = 0x_1 diff --git a/assets/toml-test/tests/invalid/integer/us-after-oct.toml b/assets/toml-test/tests/invalid/integer/us-after-oct.toml new file mode 100644 index 0000000..23f5300 --- /dev/null +++ b/assets/toml-test/tests/invalid/integer/us-after-oct.toml @@ -0,0 +1 @@ +us-after-oct = 0o_1 diff --git a/assets/toml-test/tests/invalid/key/after-array.toml b/assets/toml-test/tests/invalid/key/after-array.toml new file mode 100644 index 0000000..5c1a1b0 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/after-array.toml @@ -0,0 +1 @@ +[[agencies]] owner = "S Cjelli" diff --git a/assets/toml-test/tests/invalid/key/after-table.toml b/assets/toml-test/tests/invalid/key/after-table.toml new file mode 100644 index 0000000..6886784 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/after-table.toml @@ -0,0 +1 @@ +[error] this = "should not be here" diff --git a/assets/toml-test/tests/invalid/key/after-value.toml b/assets/toml-test/tests/invalid/key/after-value.toml new file mode 100644 index 0000000..e05c47c --- /dev/null +++ b/assets/toml-test/tests/invalid/key/after-value.toml @@ -0,0 +1 @@ +first = "Tom" last = "Preston-Werner" # INVALID diff --git a/assets/toml-test/tests/invalid/key/bare-invalid-character.toml b/assets/toml-test/tests/invalid/key/bare-invalid-character.toml new file mode 100644 index 0000000..e50dbe3 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/bare-invalid-character.toml @@ -0,0 +1 @@ +bare!key = 123 diff --git a/assets/toml-test/tests/invalid/key/dotted-redefine-table.toml b/assets/toml-test/tests/invalid/key/dotted-redefine-table.toml new file mode 100644 index 0000000..55e25ac --- /dev/null +++ b/assets/toml-test/tests/invalid/key/dotted-redefine-table.toml @@ -0,0 +1,4 @@ +# Defined a.b as int +a.b = 1 +# Tries to access it as table: error +a.b.c = 2 diff --git a/assets/toml-test/tests/invalid/key/duplicate-keys.toml b/assets/toml-test/tests/invalid/key/duplicate-keys.toml new file mode 100644 index 0000000..9b5aee0 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/duplicate-keys.toml @@ -0,0 +1,2 @@ +dupe = false +dupe = true diff --git a/assets/toml-test/tests/invalid/key/duplicate.toml b/assets/toml-test/tests/invalid/key/duplicate.toml new file mode 100644 index 0000000..7847bd4 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/duplicate.toml @@ -0,0 +1,3 @@ +# DO NOT DO THIS +name = "Tom" +name = "Pradyun" diff --git a/assets/toml-test/tests/invalid/key/empty.toml b/assets/toml-test/tests/invalid/key/empty.toml new file mode 100644 index 0000000..09f998f --- /dev/null +++ b/assets/toml-test/tests/invalid/key/empty.toml @@ -0,0 +1 @@ + = 1 diff --git a/assets/toml-test/tests/invalid/key/escape.toml b/assets/toml-test/tests/invalid/key/escape.toml new file mode 100644 index 0000000..cdb8f4d --- /dev/null +++ b/assets/toml-test/tests/invalid/key/escape.toml @@ -0,0 +1 @@ +\u00c0 = "latin capital letter A with grave" diff --git a/assets/toml-test/tests/invalid/key/hash.toml b/assets/toml-test/tests/invalid/key/hash.toml new file mode 100644 index 0000000..e321b1f --- /dev/null +++ b/assets/toml-test/tests/invalid/key/hash.toml @@ -0,0 +1 @@ +a# = 1 diff --git a/assets/toml-test/tests/invalid/key/multiline.toml b/assets/toml-test/tests/invalid/key/multiline.toml new file mode 100644 index 0000000..31ff67e --- /dev/null +++ b/assets/toml-test/tests/invalid/key/multiline.toml @@ -0,0 +1,2 @@ +"""long +key""" = 1 diff --git a/assets/toml-test/tests/invalid/key/newline.toml b/assets/toml-test/tests/invalid/key/newline.toml new file mode 100644 index 0000000..24acaa1 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/newline.toml @@ -0,0 +1,2 @@ +barekey + = 123 diff --git a/assets/toml-test/tests/invalid/key/no-eol.toml b/assets/toml-test/tests/invalid/key/no-eol.toml new file mode 100644 index 0000000..3c58eee --- /dev/null +++ b/assets/toml-test/tests/invalid/key/no-eol.toml @@ -0,0 +1 @@ +a = 1 b = 2 diff --git a/assets/toml-test/tests/invalid/key/open-bracket.toml b/assets/toml-test/tests/invalid/key/open-bracket.toml new file mode 100644 index 0000000..f0aeb16 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/open-bracket.toml @@ -0,0 +1 @@ +[abc = 1 diff --git a/assets/toml-test/tests/invalid/key/partial-quoted.toml b/assets/toml-test/tests/invalid/key/partial-quoted.toml new file mode 100644 index 0000000..e491a2f --- /dev/null +++ b/assets/toml-test/tests/invalid/key/partial-quoted.toml @@ -0,0 +1 @@ +partial"quoted" = 5 diff --git a/assets/toml-test/tests/invalid/key/quoted-unclosed-1.toml b/assets/toml-test/tests/invalid/key/quoted-unclosed-1.toml new file mode 100644 index 0000000..4ea331a --- /dev/null +++ b/assets/toml-test/tests/invalid/key/quoted-unclosed-1.toml @@ -0,0 +1 @@ +"key = x diff --git a/assets/toml-test/tests/invalid/key/quoted-unclosed-2.toml b/assets/toml-test/tests/invalid/key/quoted-unclosed-2.toml new file mode 100644 index 0000000..d341d80 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/quoted-unclosed-2.toml @@ -0,0 +1 @@ +"key diff --git a/assets/toml-test/tests/invalid/key/single-open-bracket.toml b/assets/toml-test/tests/invalid/key/single-open-bracket.toml new file mode 100644 index 0000000..558ed37 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/single-open-bracket.toml @@ -0,0 +1 @@ +[ diff --git a/assets/toml-test/tests/invalid/key/space.toml b/assets/toml-test/tests/invalid/key/space.toml new file mode 100644 index 0000000..7c22703 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/space.toml @@ -0,0 +1 @@ +a b = 1 diff --git a/assets/toml-test/tests/invalid/key/special-character.toml b/assets/toml-test/tests/invalid/key/special-character.toml new file mode 100644 index 0000000..bc181a5 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/special-character.toml @@ -0,0 +1 @@ +μ = "greek small letter mu" diff --git a/assets/toml-test/tests/invalid/key/start-bracket.toml b/assets/toml-test/tests/invalid/key/start-bracket.toml new file mode 100644 index 0000000..e0597ae --- /dev/null +++ b/assets/toml-test/tests/invalid/key/start-bracket.toml @@ -0,0 +1,3 @@ +[a] +[xyz = 5 +[b] diff --git a/assets/toml-test/tests/invalid/key/start-dot.toml b/assets/toml-test/tests/invalid/key/start-dot.toml new file mode 100644 index 0000000..9967c7d --- /dev/null +++ b/assets/toml-test/tests/invalid/key/start-dot.toml @@ -0,0 +1 @@ +.key = 1 diff --git a/assets/toml-test/tests/invalid/key/two-equals.toml b/assets/toml-test/tests/invalid/key/two-equals.toml new file mode 100644 index 0000000..25a0378 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/two-equals.toml @@ -0,0 +1 @@ +key= = 1 diff --git a/assets/toml-test/tests/invalid/key/two-equals2.toml b/assets/toml-test/tests/invalid/key/two-equals2.toml new file mode 100644 index 0000000..c5f2de8 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/two-equals2.toml @@ -0,0 +1 @@ +a==1 diff --git a/assets/toml-test/tests/invalid/key/two-equals3.toml b/assets/toml-test/tests/invalid/key/two-equals3.toml new file mode 100644 index 0000000..eb20372 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/two-equals3.toml @@ -0,0 +1 @@ +a=b=1 diff --git a/assets/toml-test/tests/invalid/key/without-value-1.toml b/assets/toml-test/tests/invalid/key/without-value-1.toml new file mode 100644 index 0000000..06bfde4 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/without-value-1.toml @@ -0,0 +1 @@ +key diff --git a/assets/toml-test/tests/invalid/key/without-value-2.toml b/assets/toml-test/tests/invalid/key/without-value-2.toml new file mode 100644 index 0000000..ca6d7eb --- /dev/null +++ b/assets/toml-test/tests/invalid/key/without-value-2.toml @@ -0,0 +1 @@ +key = diff --git a/assets/toml-test/tests/invalid/key/without-value-3.toml b/assets/toml-test/tests/invalid/key/without-value-3.toml new file mode 100644 index 0000000..a9c06ef --- /dev/null +++ b/assets/toml-test/tests/invalid/key/without-value-3.toml @@ -0,0 +1 @@ +"key" diff --git a/assets/toml-test/tests/invalid/key/without-value-4.toml b/assets/toml-test/tests/invalid/key/without-value-4.toml new file mode 100644 index 0000000..adf9d62 --- /dev/null +++ b/assets/toml-test/tests/invalid/key/without-value-4.toml @@ -0,0 +1 @@ +"key" = diff --git a/assets/toml-test/tests/invalid/spec/inline-table-2-0.toml b/assets/toml-test/tests/invalid/spec/inline-table-2-0.toml new file mode 100644 index 0000000..7689e14 --- /dev/null +++ b/assets/toml-test/tests/invalid/spec/inline-table-2-0.toml @@ -0,0 +1,3 @@ +[product] +type = { name = "Nail" } +type.edible = false # INVALID diff --git a/assets/toml-test/tests/invalid/spec/inline-table-3-0.toml b/assets/toml-test/tests/invalid/spec/inline-table-3-0.toml new file mode 100644 index 0000000..d6937eb --- /dev/null +++ b/assets/toml-test/tests/invalid/spec/inline-table-3-0.toml @@ -0,0 +1,3 @@ +[product] +type.name = "Nail" +type = { edible = false } # INVALID diff --git a/assets/toml-test/tests/invalid/spec/key-value-pair-1.toml b/assets/toml-test/tests/invalid/spec/key-value-pair-1.toml new file mode 100644 index 0000000..56f085a --- /dev/null +++ b/assets/toml-test/tests/invalid/spec/key-value-pair-1.toml @@ -0,0 +1 @@ +key = # INVALID diff --git a/assets/toml-test/tests/invalid/spec/keys-2.toml b/assets/toml-test/tests/invalid/spec/keys-2.toml new file mode 100644 index 0000000..1547a5c --- /dev/null +++ b/assets/toml-test/tests/invalid/spec/keys-2.toml @@ -0,0 +1,3 @@ += "no key name" # INVALID +"" = "blank" # VALID but discouraged +'' = 'blank' # VALID but discouraged diff --git a/assets/toml-test/tests/invalid/spec/string-4-0.toml b/assets/toml-test/tests/invalid/spec/string-4-0.toml new file mode 100644 index 0000000..72071ea --- /dev/null +++ b/assets/toml-test/tests/invalid/spec/string-4-0.toml @@ -0,0 +1,7 @@ +str4 = """Here are two quotation marks: "". Simple enough.""" +str5 = """Here are three quotation marks: """.""" # INVALID +str5 = """Here are three quotation marks: ""\".""" +str6 = """Here are fifteen quotation marks: ""\"""\"""\"""\"""\".""" + +# "This," she said, "is just a pointless statement." +str7 = """"This," she said, "is just a pointless statement."""" diff --git a/assets/toml-test/tests/invalid/spec/string-7-0.toml b/assets/toml-test/tests/invalid/spec/string-7-0.toml new file mode 100644 index 0000000..7b20aec --- /dev/null +++ b/assets/toml-test/tests/invalid/spec/string-7-0.toml @@ -0,0 +1,7 @@ +quot15 = '''Here are fifteen quotation marks: """""""""""""""''' + +apos15 = '''Here are fifteen apostrophes: '''''''''''''''''' # INVALID +apos15 = "Here are fifteen apostrophes: '''''''''''''''" + +# 'That,' she said, 'is still pointless.' +str = ''''That,' she said, 'is still pointless.'''' diff --git a/assets/toml-test/tests/invalid/spec/table-9-0.toml b/assets/toml-test/tests/invalid/spec/table-9-0.toml new file mode 100644 index 0000000..adc3841 --- /dev/null +++ b/assets/toml-test/tests/invalid/spec/table-9-0.toml @@ -0,0 +1,9 @@ +[fruit] +apple.color = "red" +apple.taste.sweet = true + +[fruit.apple] # INVALID +# [fruit.apple.taste] # INVALID + +[fruit.apple.texture] # you can add sub-tables +smooth = true diff --git a/assets/toml-test/tests/invalid/spec/table-9-1.toml b/assets/toml-test/tests/invalid/spec/table-9-1.toml new file mode 100644 index 0000000..3b5644e --- /dev/null +++ b/assets/toml-test/tests/invalid/spec/table-9-1.toml @@ -0,0 +1,9 @@ +[fruit] +apple.color = "red" +apple.taste.sweet = true + +# [fruit.apple] # INVALID +[fruit.apple.taste] # INVALID + +[fruit.apple.texture] # you can add sub-tables +smooth = true diff --git a/assets/toml-test/tests/invalid/string/bad-byte-escape.toml b/assets/toml-test/tests/invalid/string/bad-byte-escape.toml new file mode 100644 index 0000000..4c7be59 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-byte-escape.toml @@ -0,0 +1 @@ +naughty = "\xAg" diff --git a/assets/toml-test/tests/invalid/string/bad-codepoint.toml b/assets/toml-test/tests/invalid/string/bad-codepoint.toml new file mode 100644 index 0000000..592db75 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-codepoint.toml @@ -0,0 +1 @@ +invalid-codepoint = "This string contains a non scalar unicode codepoint \uD801" diff --git a/assets/toml-test/tests/invalid/string/bad-concat.toml b/assets/toml-test/tests/invalid/string/bad-concat.toml new file mode 100644 index 0000000..fc6d3c9 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-concat.toml @@ -0,0 +1 @@ +no_concat = "first" "second" diff --git a/assets/toml-test/tests/invalid/string/bad-escape-1.toml b/assets/toml-test/tests/invalid/string/bad-escape-1.toml new file mode 100644 index 0000000..60acb0c --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-escape-1.toml @@ -0,0 +1 @@ +invalid-escape = "This string has a bad \a escape character." diff --git a/assets/toml-test/tests/invalid/string/bad-escape-2.toml b/assets/toml-test/tests/invalid/string/bad-escape-2.toml new file mode 100644 index 0000000..2a20d8c --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-escape-2.toml @@ -0,0 +1,2 @@ +invalid-escape = "This string has a bad \ escape character." + diff --git a/assets/toml-test/tests/invalid/string/bad-hex-esc-1.toml b/assets/toml-test/tests/invalid/string/bad-hex-esc-1.toml new file mode 100644 index 0000000..199c961 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-hex-esc-1.toml @@ -0,0 +1 @@ +bad-hex-esc-1 = "\x0g" diff --git a/assets/toml-test/tests/invalid/string/bad-hex-esc-2.toml b/assets/toml-test/tests/invalid/string/bad-hex-esc-2.toml new file mode 100644 index 0000000..3ff0765 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-hex-esc-2.toml @@ -0,0 +1 @@ +bad-hex-esc-2 = "\xG0" diff --git a/assets/toml-test/tests/invalid/string/bad-hex-esc-3.toml b/assets/toml-test/tests/invalid/string/bad-hex-esc-3.toml new file mode 100644 index 0000000..5a1df54 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-hex-esc-3.toml @@ -0,0 +1 @@ +bad-hex-esc-3 = "\x" diff --git a/assets/toml-test/tests/invalid/string/bad-hex-esc-4.toml b/assets/toml-test/tests/invalid/string/bad-hex-esc-4.toml new file mode 100644 index 0000000..4df871b --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-hex-esc-4.toml @@ -0,0 +1 @@ +bad-hex-esc-4 = "\x 50" diff --git a/assets/toml-test/tests/invalid/string/bad-hex-esc-5.toml b/assets/toml-test/tests/invalid/string/bad-hex-esc-5.toml new file mode 100644 index 0000000..379922f --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-hex-esc-5.toml @@ -0,0 +1 @@ +bad-hex-esc-5 = "\x 50" diff --git a/assets/toml-test/tests/invalid/string/bad-hex-esc.multi b/assets/toml-test/tests/invalid/string/bad-hex-esc.multi new file mode 100644 index 0000000..5216ce0 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-hex-esc.multi @@ -0,0 +1,4 @@ +bad-hex-esc-1 = "\x0g" +bad-hex-esc-2 = "\xG0" +bad-hex-esc-3 = "\x" +bad-hex-esc-4 = "\x 50" diff --git a/assets/toml-test/tests/invalid/string/bad-multiline.toml b/assets/toml-test/tests/invalid/string/bad-multiline.toml new file mode 100644 index 0000000..786046b --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-multiline.toml @@ -0,0 +1,2 @@ +multi = "first line +second line" diff --git a/assets/toml-test/tests/invalid/string/bad-slash-escape.toml b/assets/toml-test/tests/invalid/string/bad-slash-escape.toml new file mode 100644 index 0000000..154abad --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-slash-escape.toml @@ -0,0 +1 @@ +invalid-escape = "This string has a bad \/ escape character." diff --git a/assets/toml-test/tests/invalid/string/bad-uni-esc-1.toml b/assets/toml-test/tests/invalid/string/bad-uni-esc-1.toml new file mode 100644 index 0000000..9eae4ab --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-uni-esc-1.toml @@ -0,0 +1 @@ +str = "val\ue" diff --git a/assets/toml-test/tests/invalid/string/bad-uni-esc-2.toml b/assets/toml-test/tests/invalid/string/bad-uni-esc-2.toml new file mode 100644 index 0000000..dce8b08 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-uni-esc-2.toml @@ -0,0 +1 @@ +str = "val\Ux" diff --git a/assets/toml-test/tests/invalid/string/bad-uni-esc-3.toml b/assets/toml-test/tests/invalid/string/bad-uni-esc-3.toml new file mode 100644 index 0000000..95ea098 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-uni-esc-3.toml @@ -0,0 +1,2 @@ +str = "val\U0000000" + diff --git a/assets/toml-test/tests/invalid/string/bad-uni-esc-4.toml b/assets/toml-test/tests/invalid/string/bad-uni-esc-4.toml new file mode 100644 index 0000000..b90d0fb --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-uni-esc-4.toml @@ -0,0 +1 @@ +str = "val\U0000" diff --git a/assets/toml-test/tests/invalid/string/bad-uni-esc-5.toml b/assets/toml-test/tests/invalid/string/bad-uni-esc-5.toml new file mode 100644 index 0000000..448d3c6 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/bad-uni-esc-5.toml @@ -0,0 +1 @@ +str = "val\Ugggggggg" diff --git a/assets/toml-test/tests/invalid/string/basic-byte-escapes.toml b/assets/toml-test/tests/invalid/string/basic-byte-escapes.toml new file mode 100644 index 0000000..e94452a --- /dev/null +++ b/assets/toml-test/tests/invalid/string/basic-byte-escapes.toml @@ -0,0 +1 @@ +answer = "\x33" diff --git a/assets/toml-test/tests/invalid/string/basic-multiline-out-of-range-unicode-escape-1.toml b/assets/toml-test/tests/invalid/string/basic-multiline-out-of-range-unicode-escape-1.toml new file mode 100644 index 0000000..b27e203 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/basic-multiline-out-of-range-unicode-escape-1.toml @@ -0,0 +1 @@ +a = """\UFFFFFFFF""" diff --git a/assets/toml-test/tests/invalid/string/basic-multiline-out-of-range-unicode-escape-2.toml b/assets/toml-test/tests/invalid/string/basic-multiline-out-of-range-unicode-escape-2.toml new file mode 100644 index 0000000..17a9361 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/basic-multiline-out-of-range-unicode-escape-2.toml @@ -0,0 +1 @@ +a = """\U00D80000""" diff --git a/assets/toml-test/tests/invalid/string/basic-multiline-quotes.toml b/assets/toml-test/tests/invalid/string/basic-multiline-quotes.toml new file mode 100644 index 0000000..02ebf13 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/basic-multiline-quotes.toml @@ -0,0 +1 @@ +str5 = """Here are three quotation marks: """.""" diff --git a/assets/toml-test/tests/invalid/string/basic-multiline-unknown-escape.toml b/assets/toml-test/tests/invalid/string/basic-multiline-unknown-escape.toml new file mode 100644 index 0000000..35c5cc5 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/basic-multiline-unknown-escape.toml @@ -0,0 +1 @@ +a = """\@""" diff --git a/assets/toml-test/tests/invalid/string/basic-out-of-range-unicode-escape-1.toml b/assets/toml-test/tests/invalid/string/basic-out-of-range-unicode-escape-1.toml new file mode 100644 index 0000000..ada1f55 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/basic-out-of-range-unicode-escape-1.toml @@ -0,0 +1 @@ +a = "\UFFFFFFFF" diff --git a/assets/toml-test/tests/invalid/string/basic-out-of-range-unicode-escape-2.toml b/assets/toml-test/tests/invalid/string/basic-out-of-range-unicode-escape-2.toml new file mode 100644 index 0000000..d4833b3 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/basic-out-of-range-unicode-escape-2.toml @@ -0,0 +1 @@ +a = "\U00D80000" diff --git a/assets/toml-test/tests/invalid/string/basic-unknown-escape.toml b/assets/toml-test/tests/invalid/string/basic-unknown-escape.toml new file mode 100644 index 0000000..381dd85 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/basic-unknown-escape.toml @@ -0,0 +1 @@ +a = "\@" diff --git a/assets/toml-test/tests/invalid/string/literal-multiline-quotes-1.toml b/assets/toml-test/tests/invalid/string/literal-multiline-quotes-1.toml new file mode 100644 index 0000000..9cfb763 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/literal-multiline-quotes-1.toml @@ -0,0 +1,2 @@ +a = '''6 apostrophes: '''''' + diff --git a/assets/toml-test/tests/invalid/string/literal-multiline-quotes-2.toml b/assets/toml-test/tests/invalid/string/literal-multiline-quotes-2.toml new file mode 100644 index 0000000..9924236 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/literal-multiline-quotes-2.toml @@ -0,0 +1 @@ +a = '''15 apostrophes: '''''''''''''''''' diff --git a/assets/toml-test/tests/invalid/string/missing-quotes.toml b/assets/toml-test/tests/invalid/string/missing-quotes.toml new file mode 100644 index 0000000..2292793 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/missing-quotes.toml @@ -0,0 +1 @@ +name = value diff --git a/assets/toml-test/tests/invalid/string/multiline-bad-escape-1.toml b/assets/toml-test/tests/invalid/string/multiline-bad-escape-1.toml new file mode 100644 index 0000000..5de9e15 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/multiline-bad-escape-1.toml @@ -0,0 +1,2 @@ +k = """t\a""" + diff --git a/assets/toml-test/tests/invalid/string/multiline-bad-escape-2.toml b/assets/toml-test/tests/invalid/string/multiline-bad-escape-2.toml new file mode 100644 index 0000000..3d1ac10 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/multiline-bad-escape-2.toml @@ -0,0 +1,2 @@ +# \ is not a valid escape. +k = """t\ t""" diff --git a/assets/toml-test/tests/invalid/string/multiline-bad-escape-3.toml b/assets/toml-test/tests/invalid/string/multiline-bad-escape-3.toml new file mode 100644 index 0000000..95621eb --- /dev/null +++ b/assets/toml-test/tests/invalid/string/multiline-bad-escape-3.toml @@ -0,0 +1,3 @@ +# \ is not a valid escape. +k = """t\ """ + diff --git a/assets/toml-test/tests/invalid/string/multiline-escape-space.toml b/assets/toml-test/tests/invalid/string/multiline-escape-space.toml new file mode 100644 index 0000000..13570d3 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/multiline-escape-space.toml @@ -0,0 +1,3 @@ +a = """ + foo \ \n + bar""" diff --git a/assets/toml-test/tests/invalid/string/multiline-no-close-2.toml b/assets/toml-test/tests/invalid/string/multiline-no-close-2.toml new file mode 100644 index 0000000..f469402 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/multiline-no-close-2.toml @@ -0,0 +1 @@ +x=""" diff --git a/assets/toml-test/tests/invalid/string/multiline-no-close.toml b/assets/toml-test/tests/invalid/string/multiline-no-close.toml new file mode 100644 index 0000000..4ca9597 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/multiline-no-close.toml @@ -0,0 +1,2 @@ +invalid = """ + this will fail diff --git a/assets/toml-test/tests/invalid/string/multiline-quotes-1.toml b/assets/toml-test/tests/invalid/string/multiline-quotes-1.toml new file mode 100644 index 0000000..9f7a42b --- /dev/null +++ b/assets/toml-test/tests/invalid/string/multiline-quotes-1.toml @@ -0,0 +1 @@ +a = """6 quotes: """""" diff --git a/assets/toml-test/tests/invalid/string/no-close.toml b/assets/toml-test/tests/invalid/string/no-close.toml new file mode 100644 index 0000000..0c292fc --- /dev/null +++ b/assets/toml-test/tests/invalid/string/no-close.toml @@ -0,0 +1 @@ +no-ending-quote = "One time, at band camp diff --git a/assets/toml-test/tests/invalid/string/text-after-string.toml b/assets/toml-test/tests/invalid/string/text-after-string.toml new file mode 100644 index 0000000..c92a6f1 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/text-after-string.toml @@ -0,0 +1 @@ +string = "Is there life after strings?" No. diff --git a/assets/toml-test/tests/invalid/string/wrong-close.toml b/assets/toml-test/tests/invalid/string/wrong-close.toml new file mode 100644 index 0000000..0f5c801 --- /dev/null +++ b/assets/toml-test/tests/invalid/string/wrong-close.toml @@ -0,0 +1 @@ +bad-ending-quote = "double and single' diff --git a/assets/toml-test/tests/invalid/table/append-with-dotted-keys-1.toml b/assets/toml-test/tests/invalid/table/append-with-dotted-keys-1.toml new file mode 100644 index 0000000..0b5b4bb --- /dev/null +++ b/assets/toml-test/tests/invalid/table/append-with-dotted-keys-1.toml @@ -0,0 +1,17 @@ +# First a.b.c defines a table: a.b.c = {z=9} +# +# Then we define a.b.c.t = "str" to add a str to the above table, making it: +# +# a.b.c = {z=9, t="..."} +# +# While this makes sense, logically, it was decided this is not valid TOML as +# it's too confusing/convoluted. +# +# See: https://github.com/toml-lang/toml/issues/846 +# https://github.com/toml-lang/toml/pull/859 + +[a.b.c] + z = 9 + +[a] + b.c.t = "Using dotted keys to add to [a.b.c] after explicitly defining it above is not allowed" diff --git a/assets/toml-test/tests/invalid/table/append-with-dotted-keys-2.toml b/assets/toml-test/tests/invalid/table/append-with-dotted-keys-2.toml new file mode 100644 index 0000000..3f0a011 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/append-with-dotted-keys-2.toml @@ -0,0 +1,8 @@ +# This is the same issue as in injection-1.toml, except that nests one level +# deeper. See that file for a more complete description. + +[a.b.c.d] + z = 9 + +[a] + b.c.d.k.t = "Using dotted keys to add to [a.b.c.d] after explicitly defining it above is not allowed" diff --git a/assets/toml-test/tests/invalid/table/array-empty.toml b/assets/toml-test/tests/invalid/table/array-empty.toml new file mode 100644 index 0000000..a470ca3 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/array-empty.toml @@ -0,0 +1,2 @@ +[[]] +name = "Born to Run" diff --git a/assets/toml-test/tests/invalid/table/array-implicit.toml b/assets/toml-test/tests/invalid/table/array-implicit.toml new file mode 100644 index 0000000..05f2507 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/array-implicit.toml @@ -0,0 +1,14 @@ +# This test is a bit tricky. It should fail because the first use of +# `[[albums.songs]]` without first declaring `albums` implies that `albums` +# must be a table. The alternative would be quite weird. Namely, it wouldn't +# comply with the TOML spec: "Each double-bracketed sub-table will belong to +# the most *recently* defined table element *above* it." +# +# This is in contrast to the *valid* test, table-array-implicit where +# `[[albums.songs]]` works by itself, so long as `[[albums]]` isn't declared +# later. (Although, `[albums]` could be.) +[[albums.songs]] +name = "Glory Days" + +[[albums]] +name = "Born in the USA" diff --git a/assets/toml-test/tests/invalid/table/array-missing-bracket.toml b/assets/toml-test/tests/invalid/table/array-missing-bracket.toml new file mode 100644 index 0000000..39c73b0 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/array-missing-bracket.toml @@ -0,0 +1,2 @@ +[[albums] +name = "Born to Run" diff --git a/assets/toml-test/tests/invalid/table/duplicate-key-dotted-table.toml b/assets/toml-test/tests/invalid/table/duplicate-key-dotted-table.toml new file mode 100644 index 0000000..ade637b --- /dev/null +++ b/assets/toml-test/tests/invalid/table/duplicate-key-dotted-table.toml @@ -0,0 +1,4 @@ +[fruit] +apple.color = "red" + +[fruit.apple] # INVALID diff --git a/assets/toml-test/tests/invalid/table/duplicate-key-dotted-table2.toml b/assets/toml-test/tests/invalid/table/duplicate-key-dotted-table2.toml new file mode 100644 index 0000000..609b660 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/duplicate-key-dotted-table2.toml @@ -0,0 +1,4 @@ +[fruit] +apple.taste.sweet = true + +[fruit.apple.taste] # INVALID diff --git a/assets/toml-test/tests/invalid/table/duplicate-key-table.toml b/assets/toml-test/tests/invalid/table/duplicate-key-table.toml new file mode 100644 index 0000000..cedf05f --- /dev/null +++ b/assets/toml-test/tests/invalid/table/duplicate-key-table.toml @@ -0,0 +1,5 @@ +[fruit] +type = "apple" + +[fruit.type] +apple = "yes" diff --git a/assets/toml-test/tests/invalid/table/duplicate-table-array.toml b/assets/toml-test/tests/invalid/table/duplicate-table-array.toml new file mode 100644 index 0000000..a1d8705 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/duplicate-table-array.toml @@ -0,0 +1,2 @@ +[tbl] +[[tbl]] diff --git a/assets/toml-test/tests/invalid/table/duplicate-table-array2.toml b/assets/toml-test/tests/invalid/table/duplicate-table-array2.toml new file mode 100644 index 0000000..72eacbd --- /dev/null +++ b/assets/toml-test/tests/invalid/table/duplicate-table-array2.toml @@ -0,0 +1,2 @@ +[[tbl]] +[tbl] diff --git a/assets/toml-test/tests/invalid/table/duplicate.toml b/assets/toml-test/tests/invalid/table/duplicate.toml new file mode 100644 index 0000000..73ef1cc --- /dev/null +++ b/assets/toml-test/tests/invalid/table/duplicate.toml @@ -0,0 +1,5 @@ +[a] +b = 1 + +[a] +c = 2 diff --git a/assets/toml-test/tests/invalid/table/empty-implicit-table.toml b/assets/toml-test/tests/invalid/table/empty-implicit-table.toml new file mode 100644 index 0000000..0cc36d0 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/empty-implicit-table.toml @@ -0,0 +1 @@ +[naughty..naughty] diff --git a/assets/toml-test/tests/invalid/table/empty.toml b/assets/toml-test/tests/invalid/table/empty.toml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/empty.toml @@ -0,0 +1 @@ +[] diff --git a/assets/toml-test/tests/invalid/table/equals-sign.toml b/assets/toml-test/tests/invalid/table/equals-sign.toml new file mode 100644 index 0000000..eb5e742 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/equals-sign.toml @@ -0,0 +1 @@ +[name=bad] diff --git a/assets/toml-test/tests/invalid/table/llbrace.toml b/assets/toml-test/tests/invalid/table/llbrace.toml new file mode 100644 index 0000000..047978e --- /dev/null +++ b/assets/toml-test/tests/invalid/table/llbrace.toml @@ -0,0 +1 @@ +[ [table]] diff --git a/assets/toml-test/tests/invalid/table/nested-brackets-close.toml b/assets/toml-test/tests/invalid/table/nested-brackets-close.toml new file mode 100644 index 0000000..c8b5a67 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/nested-brackets-close.toml @@ -0,0 +1,2 @@ +[a]b] +zyx = 42 diff --git a/assets/toml-test/tests/invalid/table/nested-brackets-open.toml b/assets/toml-test/tests/invalid/table/nested-brackets-open.toml new file mode 100644 index 0000000..246d7e9 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/nested-brackets-open.toml @@ -0,0 +1,2 @@ +[a[b] +zyx = 42 diff --git a/assets/toml-test/tests/invalid/table/quoted-no-close.toml b/assets/toml-test/tests/invalid/table/quoted-no-close.toml new file mode 100644 index 0000000..6e7c1a1 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/quoted-no-close.toml @@ -0,0 +1,2 @@ +["where will it end] +name = value diff --git a/assets/toml-test/tests/invalid/table/redefine.toml b/assets/toml-test/tests/invalid/table/redefine.toml new file mode 100644 index 0000000..fc23bf7 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/redefine.toml @@ -0,0 +1,6 @@ +# Define b as int, and try to use it as a table: error +[a] +b = 1 + +[a.b] +c = 2 diff --git a/assets/toml-test/tests/invalid/table/rrbrace.toml b/assets/toml-test/tests/invalid/table/rrbrace.toml new file mode 100644 index 0000000..3a4dee4 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/rrbrace.toml @@ -0,0 +1 @@ +[[table] ] diff --git a/assets/toml-test/tests/invalid/table/text-after-table.toml b/assets/toml-test/tests/invalid/table/text-after-table.toml new file mode 100644 index 0000000..87da9db --- /dev/null +++ b/assets/toml-test/tests/invalid/table/text-after-table.toml @@ -0,0 +1 @@ +[error] this shouldn't be here diff --git a/assets/toml-test/tests/invalid/table/whitespace.toml b/assets/toml-test/tests/invalid/table/whitespace.toml new file mode 100644 index 0000000..0a6a6a6 --- /dev/null +++ b/assets/toml-test/tests/invalid/table/whitespace.toml @@ -0,0 +1 @@ +[invalid key] diff --git a/assets/toml-test/tests/invalid/table/with-pound.toml b/assets/toml-test/tests/invalid/table/with-pound.toml new file mode 100644 index 0000000..e7b777e --- /dev/null +++ b/assets/toml-test/tests/invalid/table/with-pound.toml @@ -0,0 +1,2 @@ +[key#group] +answer = 42 diff --git a/assets/toml-test/tests/valid/array/array.json b/assets/toml-test/tests/valid/array/array.json new file mode 100644 index 0000000..4e9d45b --- /dev/null +++ b/assets/toml-test/tests/valid/array/array.json @@ -0,0 +1,68 @@ +{ + "comments": [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + } + ], + "dates": [ + { + "type": "datetime", + "value": "1987-07-05T17:45:00Z" + }, + { + "type": "datetime", + "value": "1979-05-27T07:32:00Z" + }, + { + "type": "datetime", + "value": "2006-06-01T11:00:00Z" + } + ], + "floats": [ + { + "type": "float", + "value": "1.1" + }, + { + "type": "float", + "value": "2.1" + }, + { + "type": "float", + "value": "3.1" + } + ], + "ints": [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + }, + { + "type": "integer", + "value": "3" + } + ], + "strings": [ + { + "type": "string", + "value": "a" + }, + { + "type": "string", + "value": "b" + }, + { + "type": "string", + "value": "c" + } + ] +} diff --git a/assets/toml-test/tests/valid/array/array.toml b/assets/toml-test/tests/valid/array/array.toml new file mode 100644 index 0000000..ab88465 --- /dev/null +++ b/assets/toml-test/tests/valid/array/array.toml @@ -0,0 +1,12 @@ +ints = [1, 2, 3, ] +floats = [1.1, 2.1, 3.1] +strings = ["a", "b", "c"] +dates = [ + 1987-07-05T17:45:00Z, + 1979-05-27T07:32:00Z, + 2006-06-01T11:00:00Z, +] +comments = [ + 1, + 2, #this is ok +] diff --git a/assets/toml-test/tests/valid/array/bool.json b/assets/toml-test/tests/valid/array/bool.json new file mode 100644 index 0000000..7cede3f --- /dev/null +++ b/assets/toml-test/tests/valid/array/bool.json @@ -0,0 +1,12 @@ +{ + "a": [ + { + "type": "bool", + "value": "true" + }, + { + "type": "bool", + "value": "false" + } + ] +} diff --git a/assets/toml-test/tests/valid/array/bool.toml b/assets/toml-test/tests/valid/array/bool.toml new file mode 100644 index 0000000..d2010c5 --- /dev/null +++ b/assets/toml-test/tests/valid/array/bool.toml @@ -0,0 +1 @@ +a = [true, false] diff --git a/assets/toml-test/tests/valid/array/empty.json b/assets/toml-test/tests/valid/array/empty.json new file mode 100644 index 0000000..7b1ca0c --- /dev/null +++ b/assets/toml-test/tests/valid/array/empty.json @@ -0,0 +1,11 @@ +{ + "thevoid": [ + [ + [ + [ + [] + ] + ] + ] + ] +} diff --git a/assets/toml-test/tests/valid/array/empty.toml b/assets/toml-test/tests/valid/array/empty.toml new file mode 100644 index 0000000..fa58dc6 --- /dev/null +++ b/assets/toml-test/tests/valid/array/empty.toml @@ -0,0 +1 @@ +thevoid = [[[[[]]]]] diff --git a/assets/toml-test/tests/valid/array/hetergeneous.json b/assets/toml-test/tests/valid/array/hetergeneous.json new file mode 100644 index 0000000..751b624 --- /dev/null +++ b/assets/toml-test/tests/valid/array/hetergeneous.json @@ -0,0 +1,34 @@ +{ + "mixed": [ + [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + } + ], + [ + { + "type": "string", + "value": "a" + }, + { + "type": "string", + "value": "b" + } + ], + [ + { + "type": "float", + "value": "1.1" + }, + { + "type": "float", + "value": "2.1" + } + ] + ] +} diff --git a/assets/toml-test/tests/valid/array/hetergeneous.toml b/assets/toml-test/tests/valid/array/hetergeneous.toml new file mode 100644 index 0000000..a246fcf --- /dev/null +++ b/assets/toml-test/tests/valid/array/hetergeneous.toml @@ -0,0 +1 @@ +mixed = [[1, 2], ["a", "b"], [1.1, 2.1]] diff --git a/assets/toml-test/tests/valid/array/mixed-int-array.json b/assets/toml-test/tests/valid/array/mixed-int-array.json new file mode 100644 index 0000000..2f3ac5e --- /dev/null +++ b/assets/toml-test/tests/valid/array/mixed-int-array.json @@ -0,0 +1,14 @@ +{ + "arrays-and-ints": [ + { + "type": "integer", + "value": "1" + }, + [ + { + "type": "string", + "value": "Arrays are not integers." + } + ] + ] +} diff --git a/assets/toml-test/tests/valid/array/mixed-int-array.toml b/assets/toml-test/tests/valid/array/mixed-int-array.toml new file mode 100644 index 0000000..051ec73 --- /dev/null +++ b/assets/toml-test/tests/valid/array/mixed-int-array.toml @@ -0,0 +1 @@ +arrays-and-ints = [1, ["Arrays are not integers."]] diff --git a/assets/toml-test/tests/valid/array/mixed-int-float.json b/assets/toml-test/tests/valid/array/mixed-int-float.json new file mode 100644 index 0000000..e73059b --- /dev/null +++ b/assets/toml-test/tests/valid/array/mixed-int-float.json @@ -0,0 +1,12 @@ +{ + "ints-and-floats": [ + { + "type": "integer", + "value": "1" + }, + { + "type": "float", + "value": "1.1" + } + ] +} diff --git a/assets/toml-test/tests/valid/array/mixed-int-float.toml b/assets/toml-test/tests/valid/array/mixed-int-float.toml new file mode 100644 index 0000000..a5aa9b7 --- /dev/null +++ b/assets/toml-test/tests/valid/array/mixed-int-float.toml @@ -0,0 +1 @@ +ints-and-floats = [1, 1.1] diff --git a/assets/toml-test/tests/valid/array/mixed-int-string.json b/assets/toml-test/tests/valid/array/mixed-int-string.json new file mode 100644 index 0000000..c6acc76 --- /dev/null +++ b/assets/toml-test/tests/valid/array/mixed-int-string.json @@ -0,0 +1,12 @@ +{ + "strings-and-ints": [ + { + "type": "string", + "value": "hi" + }, + { + "type": "integer", + "value": "42" + } + ] +} diff --git a/assets/toml-test/tests/valid/array/mixed-int-string.toml b/assets/toml-test/tests/valid/array/mixed-int-string.toml new file mode 100644 index 0000000..f348308 --- /dev/null +++ b/assets/toml-test/tests/valid/array/mixed-int-string.toml @@ -0,0 +1 @@ +strings-and-ints = ["hi", 42] diff --git a/assets/toml-test/tests/valid/array/mixed-string-table.json b/assets/toml-test/tests/valid/array/mixed-string-table.json new file mode 100644 index 0000000..0de6a6e --- /dev/null +++ b/assets/toml-test/tests/valid/array/mixed-string-table.json @@ -0,0 +1,38 @@ +{ + "contributors": [ + { + "type": "string", + "value": "Foo Bar \u003cfoo@example.com\u003e" + }, + { + "email": { + "type": "string", + "value": "bazqux@example.com" + }, + "name": { + "type": "string", + "value": "Baz Qux" + }, + "url": { + "type": "string", + "value": "https://example.com/bazqux" + } + } + ], + "mixed": [ + { + "k": { + "type": "string", + "value": "a" + } + }, + { + "type": "string", + "value": "b" + }, + { + "type": "integer", + "value": "1" + } + ] +} diff --git a/assets/toml-test/tests/valid/array/mixed-string-table.toml b/assets/toml-test/tests/valid/array/mixed-string-table.toml new file mode 100644 index 0000000..f0ede9c --- /dev/null +++ b/assets/toml-test/tests/valid/array/mixed-string-table.toml @@ -0,0 +1,11 @@ +contributors = [ + "Foo Bar ", + { name = "Baz Qux", email = "bazqux@example.com", url = "https://example.com/bazqux" } +] + +# Start with a table as the first element. This tests a case that some libraries +# might have where they will check if the first entry is a table/map/hash/assoc +# array and then encode it as a table array. This was a reasonable thing to do +# before TOML 1.0 since arrays could only contain one type, but now it's no +# longer. +mixed = [{k="a"}, "b", 1] diff --git a/assets/toml-test/tests/valid/array/nested-double.json b/assets/toml-test/tests/valid/array/nested-double.json new file mode 100644 index 0000000..c89a8c9 --- /dev/null +++ b/assets/toml-test/tests/valid/array/nested-double.json @@ -0,0 +1,28 @@ +{ + "nest": [ + [ + [ + { + "type": "string", + "value": "a" + } + ], + [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + }, + [ + { + "type": "integer", + "value": "3" + } + ] + ] + ] + ] +} diff --git a/assets/toml-test/tests/valid/array/nested-double.toml b/assets/toml-test/tests/valid/array/nested-double.toml new file mode 100644 index 0000000..c1de747 --- /dev/null +++ b/assets/toml-test/tests/valid/array/nested-double.toml @@ -0,0 +1,6 @@ +nest = [ + [ + ["a"], + [1, 2, [3]] + ] +] diff --git a/assets/toml-test/tests/valid/array/nested-inline-table.json b/assets/toml-test/tests/valid/array/nested-inline-table.json new file mode 100644 index 0000000..2ae5fa7 --- /dev/null +++ b/assets/toml-test/tests/valid/array/nested-inline-table.json @@ -0,0 +1,7 @@ +{ + "a": [ + { + "b": {} + } + ] +} diff --git a/assets/toml-test/tests/valid/array/nested-inline-table.toml b/assets/toml-test/tests/valid/array/nested-inline-table.toml new file mode 100644 index 0000000..e1e24f6 --- /dev/null +++ b/assets/toml-test/tests/valid/array/nested-inline-table.toml @@ -0,0 +1 @@ +a = [ { b = {} } ] diff --git a/assets/toml-test/tests/valid/array/nested.json b/assets/toml-test/tests/valid/array/nested.json new file mode 100644 index 0000000..72c7589 --- /dev/null +++ b/assets/toml-test/tests/valid/array/nested.json @@ -0,0 +1,16 @@ +{ + "nest": [ + [ + { + "type": "string", + "value": "a" + } + ], + [ + { + "type": "string", + "value": "b" + } + ] + ] +} diff --git a/assets/toml-test/tests/valid/array/nested.toml b/assets/toml-test/tests/valid/array/nested.toml new file mode 100644 index 0000000..ce33022 --- /dev/null +++ b/assets/toml-test/tests/valid/array/nested.toml @@ -0,0 +1 @@ +nest = [["a"], ["b"]] diff --git a/assets/toml-test/tests/valid/array/nospaces.json b/assets/toml-test/tests/valid/array/nospaces.json new file mode 100644 index 0000000..6c89fce --- /dev/null +++ b/assets/toml-test/tests/valid/array/nospaces.json @@ -0,0 +1,16 @@ +{ + "ints": [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + }, + { + "type": "integer", + "value": "3" + } + ] +} diff --git a/assets/toml-test/tests/valid/array/nospaces.toml b/assets/toml-test/tests/valid/array/nospaces.toml new file mode 100644 index 0000000..6618936 --- /dev/null +++ b/assets/toml-test/tests/valid/array/nospaces.toml @@ -0,0 +1 @@ +ints = [1,2,3] diff --git a/assets/toml-test/tests/valid/array/string-quote-comma-2.json b/assets/toml-test/tests/valid/array/string-quote-comma-2.json new file mode 100644 index 0000000..7cd5406 --- /dev/null +++ b/assets/toml-test/tests/valid/array/string-quote-comma-2.json @@ -0,0 +1,8 @@ +{ + "title": [ + { + "type": "string", + "value": " \", " + } + ] +} diff --git a/assets/toml-test/tests/valid/array/string-quote-comma-2.toml b/assets/toml-test/tests/valid/array/string-quote-comma-2.toml new file mode 100644 index 0000000..4758ddc --- /dev/null +++ b/assets/toml-test/tests/valid/array/string-quote-comma-2.toml @@ -0,0 +1 @@ +title = [ " \", ",] diff --git a/assets/toml-test/tests/valid/array/string-quote-comma.json b/assets/toml-test/tests/valid/array/string-quote-comma.json new file mode 100644 index 0000000..b78db42 --- /dev/null +++ b/assets/toml-test/tests/valid/array/string-quote-comma.json @@ -0,0 +1,12 @@ +{ + "title": [ + { + "type": "string", + "value": "Client: \"XXXX\", Job: XXXX" + }, + { + "type": "string", + "value": "Code: XXXX" + } + ] +} diff --git a/assets/toml-test/tests/valid/array/string-quote-comma.toml b/assets/toml-test/tests/valid/array/string-quote-comma.toml new file mode 100644 index 0000000..6b458e1 --- /dev/null +++ b/assets/toml-test/tests/valid/array/string-quote-comma.toml @@ -0,0 +1,4 @@ +title = [ +"Client: \"XXXX\", Job: XXXX", +"Code: XXXX" +] diff --git a/assets/toml-test/tests/valid/array/string-with-comma.json b/assets/toml-test/tests/valid/array/string-with-comma.json new file mode 100644 index 0000000..42b77ef --- /dev/null +++ b/assets/toml-test/tests/valid/array/string-with-comma.json @@ -0,0 +1,12 @@ +{ + "title": [ + { + "type": "string", + "value": "Client: XXXX, Job: XXXX" + }, + { + "type": "string", + "value": "Code: XXXX" + } + ] +} diff --git a/assets/toml-test/tests/valid/array/string-with-comma.toml b/assets/toml-test/tests/valid/array/string-with-comma.toml new file mode 100644 index 0000000..655c40e --- /dev/null +++ b/assets/toml-test/tests/valid/array/string-with-comma.toml @@ -0,0 +1,4 @@ +title = [ +"Client: XXXX, Job: XXXX", +"Code: XXXX" +] diff --git a/assets/toml-test/tests/valid/array/strings.json b/assets/toml-test/tests/valid/array/strings.json new file mode 100644 index 0000000..27617b4 --- /dev/null +++ b/assets/toml-test/tests/valid/array/strings.json @@ -0,0 +1,20 @@ +{ + "string_array": [ + { + "type": "string", + "value": "all" + }, + { + "type": "string", + "value": "strings" + }, + { + "type": "string", + "value": "are the same" + }, + { + "type": "string", + "value": "type" + } + ] +} diff --git a/assets/toml-test/tests/valid/array/strings.toml b/assets/toml-test/tests/valid/array/strings.toml new file mode 100644 index 0000000..51894ce --- /dev/null +++ b/assets/toml-test/tests/valid/array/strings.toml @@ -0,0 +1 @@ +string_array = [ "all", 'strings', """are the same""", '''type'''] diff --git a/assets/toml-test/tests/valid/array/table-array-string-backslash.json b/assets/toml-test/tests/valid/array/table-array-string-backslash.json new file mode 100644 index 0000000..2c0feb1 --- /dev/null +++ b/assets/toml-test/tests/valid/array/table-array-string-backslash.json @@ -0,0 +1,10 @@ +{ + "foo": [ + { + "bar": { + "type": "string", + "value": "\"{{baz}}\"" + } + } + ] +} diff --git a/assets/toml-test/tests/valid/array/table-array-string-backslash.toml b/assets/toml-test/tests/valid/array/table-array-string-backslash.toml new file mode 100644 index 0000000..f0de81e --- /dev/null +++ b/assets/toml-test/tests/valid/array/table-array-string-backslash.toml @@ -0,0 +1 @@ +foo = [ { bar="\"{{baz}}\""} ] diff --git a/assets/toml-test/tests/valid/bool/bool.json b/assets/toml-test/tests/valid/bool/bool.json new file mode 100644 index 0000000..be47d6d --- /dev/null +++ b/assets/toml-test/tests/valid/bool/bool.json @@ -0,0 +1,10 @@ +{ + "f": { + "type": "bool", + "value": "false" + }, + "t": { + "type": "bool", + "value": "true" + } +} diff --git a/assets/toml-test/tests/valid/bool/bool.toml b/assets/toml-test/tests/valid/bool/bool.toml new file mode 100644 index 0000000..a8a829b --- /dev/null +++ b/assets/toml-test/tests/valid/bool/bool.toml @@ -0,0 +1,2 @@ +t = true +f = false diff --git a/assets/toml-test/tests/valid/comment/at-eof.json b/assets/toml-test/tests/valid/comment/at-eof.json new file mode 100644 index 0000000..af3154a --- /dev/null +++ b/assets/toml-test/tests/valid/comment/at-eof.json @@ -0,0 +1,6 @@ +{ + "key": { + "type": "string", + "value": "value" + } +} diff --git a/assets/toml-test/tests/valid/comment/at-eof.toml b/assets/toml-test/tests/valid/comment/at-eof.toml new file mode 100644 index 0000000..090b474 --- /dev/null +++ b/assets/toml-test/tests/valid/comment/at-eof.toml @@ -0,0 +1,2 @@ +# This is a full-line comment +key = "value" # This is a comment at the end of a line diff --git a/assets/toml-test/tests/valid/comment/at-eof2.json b/assets/toml-test/tests/valid/comment/at-eof2.json new file mode 100644 index 0000000..af3154a --- /dev/null +++ b/assets/toml-test/tests/valid/comment/at-eof2.json @@ -0,0 +1,6 @@ +{ + "key": { + "type": "string", + "value": "value" + } +} diff --git a/assets/toml-test/tests/valid/comment/at-eof2.toml b/assets/toml-test/tests/valid/comment/at-eof2.toml new file mode 100644 index 0000000..090b474 --- /dev/null +++ b/assets/toml-test/tests/valid/comment/at-eof2.toml @@ -0,0 +1,2 @@ +# This is a full-line comment +key = "value" # This is a comment at the end of a line diff --git a/assets/toml-test/tests/valid/comment/everywhere.json b/assets/toml-test/tests/valid/comment/everywhere.json new file mode 100644 index 0000000..6e714d1 --- /dev/null +++ b/assets/toml-test/tests/valid/comment/everywhere.json @@ -0,0 +1,26 @@ +{ + "group": { + "answer": { + "type": "integer", + "value": "42" + }, + "dt": { + "type": "datetime", + "value": "1979-05-27T07:32:12-07:00" + }, + "d": { + "type": "date-local", + "value": "1979-05-27" + }, + "more": [ + { + "type": "integer", + "value": "42" + }, + { + "type": "integer", + "value": "42" + } + ] + } +} diff --git a/assets/toml-test/tests/valid/comment/everywhere.toml b/assets/toml-test/tests/valid/comment/everywhere.toml new file mode 100644 index 0000000..a5da1d7 --- /dev/null +++ b/assets/toml-test/tests/valid/comment/everywhere.toml @@ -0,0 +1,28 @@ +# Top comment. + # Top comment. +# Top comment. + +# [no-extraneous-groups-please] + +[group] # Comment +answer = 42 # Comment +# no-extraneous-keys-please = 999 +# Inbetween comment. +more = [ # Comment + # What about multiple # comments? + # Can you handle it? + # + # Evil. +# Evil. + 42, 42, # Comments within arrays are fun. + # What about multiple # comments? + # Can you handle it? + # + # Evil. +# Evil. +# ] Did I fool you? +] # Hopefully not. + +# Make sure the space between the datetime and "#" isn't lexed. +dt = 1979-05-27T07:32:12-07:00 # c +d = 1979-05-27 # Comment diff --git a/assets/toml-test/tests/valid/comment/noeol.json b/assets/toml-test/tests/valid/comment/noeol.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/assets/toml-test/tests/valid/comment/noeol.json @@ -0,0 +1 @@ +{} diff --git a/assets/toml-test/tests/valid/comment/noeol.toml b/assets/toml-test/tests/valid/comment/noeol.toml new file mode 100644 index 0000000..7662df8 --- /dev/null +++ b/assets/toml-test/tests/valid/comment/noeol.toml @@ -0,0 +1 @@ +# single comment without any eol characters \ No newline at end of file diff --git a/assets/toml-test/tests/valid/comment/tricky.json b/assets/toml-test/tests/valid/comment/tricky.json new file mode 100644 index 0000000..0994864 --- /dev/null +++ b/assets/toml-test/tests/valid/comment/tricky.json @@ -0,0 +1,98 @@ +{ + "hash#tag": { + "#!": { + "type": "string", + "value": "hash bang" + }, + "arr3": [ + { + "type": "string", + "value": "#" + }, + { + "type": "string", + "value": "#" + }, + { + "type": "string", + "value": "###" + } + ], + "arr4": [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + }, + { + "type": "integer", + "value": "3" + }, + { + "type": "integer", + "value": "4" + } + ], + "arr5": [ + [ + [ + [ + [ + { + "type": "string", + "value": "#" + } + ] + ] + ] + ] + ], + "tbl1": { + "#": { + "type": "string", + "value": "}#" + } + } + }, + "section": { + "8": { + "type": "string", + "value": "eight" + }, + "eleven": { + "type": "float", + "value": "11.1" + }, + "five": { + "type": "float", + "value": "5.5" + }, + "four": { + "type": "string", + "value": "# no comment\n# nor this\n#also not comment" + }, + "one": { + "type": "string", + "value": "11" + }, + "six": { + "type": "integer", + "value": "6" + }, + "ten": { + "type": "float", + "value": "1000.0" + }, + "three": { + "type": "string", + "value": "#" + }, + "two": { + "type": "string", + "value": "22#" + } + } +} diff --git a/assets/toml-test/tests/valid/comment/tricky.toml b/assets/toml-test/tests/valid/comment/tricky.toml new file mode 100644 index 0000000..c95f94d --- /dev/null +++ b/assets/toml-test/tests/valid/comment/tricky.toml @@ -0,0 +1,31 @@ +[section]#attached comment +#[notsection] +one = "11"#cmt +two = "22#" +three = '#' + +four = """# no comment +# nor this +#also not comment"""#is_comment + +five = 5.5#66 +six = 6#7 +8 = "eight" +#nine = 99 +ten = 10e2#1 +eleven = 1.11e1#23 + +["hash#tag"] +"#!" = "hash bang" +arr3 = [ "#", '#', """###""" ] +arr4 = [ 1,# 9, 9, +2#,9 +,#9 +3#] +,4] +arr5 = [[[[#["#"], +["#"]]]]#] +] +tbl1 = { "#" = '}#'}#}} + + diff --git a/assets/toml-test/tests/valid/datetime/datetime.json b/assets/toml-test/tests/valid/datetime/datetime.json new file mode 100644 index 0000000..5146335 --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/datetime.json @@ -0,0 +1,10 @@ +{ + "lower": { + "type": "datetime", + "value": "1987-07-05T17:45:00Z" + }, + "space": { + "type": "datetime", + "value": "1987-07-05T17:45:00Z" + } +} diff --git a/assets/toml-test/tests/valid/datetime/datetime.toml b/assets/toml-test/tests/valid/datetime/datetime.toml new file mode 100644 index 0000000..653d521 --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/datetime.toml @@ -0,0 +1,2 @@ +space = 1987-07-05 17:45:00Z +lower = 1987-07-05t17:45:00z diff --git a/assets/toml-test/tests/valid/datetime/local-date.json b/assets/toml-test/tests/valid/datetime/local-date.json new file mode 100644 index 0000000..8fea2fe --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/local-date.json @@ -0,0 +1,6 @@ +{ + "bestdayever": { + "type": "date-local", + "value": "1987-07-05" + } +} diff --git a/assets/toml-test/tests/valid/datetime/local-date.toml b/assets/toml-test/tests/valid/datetime/local-date.toml new file mode 100644 index 0000000..1be4a5f --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/local-date.toml @@ -0,0 +1 @@ +bestdayever = 1987-07-05 diff --git a/assets/toml-test/tests/valid/datetime/local-time.json b/assets/toml-test/tests/valid/datetime/local-time.json new file mode 100644 index 0000000..5e527e9 --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/local-time.json @@ -0,0 +1,10 @@ +{ + "besttimeever": { + "type": "time-local", + "value": "17:45:00" + }, + "milliseconds": { + "type": "time-local", + "value": "10:32:00.555" + } +} diff --git a/assets/toml-test/tests/valid/datetime/local-time.toml b/assets/toml-test/tests/valid/datetime/local-time.toml new file mode 100644 index 0000000..6b07f6f --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/local-time.toml @@ -0,0 +1,2 @@ +besttimeever = 17:45:00 +milliseconds = 10:32:00.555 diff --git a/assets/toml-test/tests/valid/datetime/local.json b/assets/toml-test/tests/valid/datetime/local.json new file mode 100644 index 0000000..12f8df5 --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/local.json @@ -0,0 +1,14 @@ +{ + "local": { + "type": "datetime-local", + "value": "1987-07-05T17:45:00" + }, + "milli": { + "type": "datetime-local", + "value": "1977-12-21T10:32:00.555" + }, + "space": { + "type": "datetime-local", + "value": "1987-07-05T17:45:00" + } +} diff --git a/assets/toml-test/tests/valid/datetime/local.toml b/assets/toml-test/tests/valid/datetime/local.toml new file mode 100644 index 0000000..ab425ec --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/local.toml @@ -0,0 +1,3 @@ +local = 1987-07-05T17:45:00 +milli = 1977-12-21T10:32:00.555 +space = 1987-07-05 17:45:00 diff --git a/assets/toml-test/tests/valid/datetime/milliseconds.json b/assets/toml-test/tests/valid/datetime/milliseconds.json new file mode 100644 index 0000000..c49e400 --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/milliseconds.json @@ -0,0 +1,18 @@ +{ + "utc1": { + "type": "datetime", + "value": "1987-07-05T17:45:56.1234Z" + }, + "utc2": { + "type": "datetime", + "value": "1987-07-05T17:45:56.6000Z" + }, + "wita1": { + "type": "datetime", + "value": "1987-07-05T17:45:56.1234+08:00" + }, + "wita2": { + "type": "datetime", + "value": "1987-07-05T17:45:56.6000+08:00" + } +} diff --git a/assets/toml-test/tests/valid/datetime/milliseconds.toml b/assets/toml-test/tests/valid/datetime/milliseconds.toml new file mode 100644 index 0000000..24b81f8 --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/milliseconds.toml @@ -0,0 +1,4 @@ +utc1 = 1987-07-05T17:45:56.1234Z +utc2 = 1987-07-05T17:45:56.6Z +wita1 = 1987-07-05T17:45:56.1234+08:00 +wita2 = 1987-07-05T17:45:56.6+08:00 diff --git a/assets/toml-test/tests/valid/datetime/no-seconds.json b/assets/toml-test/tests/valid/datetime/no-seconds.json new file mode 100644 index 0000000..ba3652e --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/no-seconds.json @@ -0,0 +1,18 @@ +{ + "without-seconds-1": { + "type": "time-local", + "value": "13:37:00" + }, + "without-seconds-2": { + "type": "datetime", + "value": "1979-05-27T07:32:00Z" + }, + "without-seconds-3": { + "type": "datetime", + "value": "1979-05-27T07:32:00-07:00" + }, + "without-seconds-4": { + "type": "datetime-local", + "value": "1979-05-27T07:32:00" + } +} diff --git a/assets/toml-test/tests/valid/datetime/no-seconds.toml b/assets/toml-test/tests/valid/datetime/no-seconds.toml new file mode 100644 index 0000000..a0fd260 --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/no-seconds.toml @@ -0,0 +1,5 @@ +# Seconds are optional in date-time and time. +without-seconds-1 = 13:37 +without-seconds-2 = 1979-05-27 07:32Z +without-seconds-3 = 1979-05-27 07:32-07:00 +without-seconds-4 = 1979-05-27T07:32 diff --git a/assets/toml-test/tests/valid/datetime/timezone.json b/assets/toml-test/tests/valid/datetime/timezone.json new file mode 100644 index 0000000..8dc8328 --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/timezone.json @@ -0,0 +1,18 @@ +{ + "nzdt": { + "type": "datetime", + "value": "1987-07-05T17:45:56+13:00" + }, + "nzst": { + "type": "datetime", + "value": "1987-07-05T17:45:56+12:00" + }, + "pdt": { + "type": "datetime", + "value": "1987-07-05T17:45:56-05:00" + }, + "utc": { + "type": "datetime", + "value": "1987-07-05T17:45:56Z" + } +} diff --git a/assets/toml-test/tests/valid/datetime/timezone.toml b/assets/toml-test/tests/valid/datetime/timezone.toml new file mode 100644 index 0000000..20f3835 --- /dev/null +++ b/assets/toml-test/tests/valid/datetime/timezone.toml @@ -0,0 +1,4 @@ +utc = 1987-07-05T17:45:56Z +pdt = 1987-07-05T17:45:56-05:00 +nzst = 1987-07-05T17:45:56+12:00 +nzdt = 1987-07-05T17:45:56+13:00 # DST diff --git a/assets/toml-test/tests/valid/empty-file.json b/assets/toml-test/tests/valid/empty-file.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/assets/toml-test/tests/valid/empty-file.json @@ -0,0 +1 @@ +{} diff --git a/assets/toml-test/tests/valid/empty-file.toml b/assets/toml-test/tests/valid/empty-file.toml new file mode 100644 index 0000000..e69de29 diff --git a/assets/toml-test/tests/valid/example.json b/assets/toml-test/tests/valid/example.json new file mode 100644 index 0000000..2ea95a2 --- /dev/null +++ b/assets/toml-test/tests/valid/example.json @@ -0,0 +1,26 @@ +{ + "best-day-ever": { + "type": "datetime", + "value": "1987-07-05T17:45:00Z" + }, + "numtheory": { + "boring": { + "type": "bool", + "value": "false" + }, + "perfection": [ + { + "type": "integer", + "value": "6" + }, + { + "type": "integer", + "value": "28" + }, + { + "type": "integer", + "value": "496" + } + ] + } +} diff --git a/assets/toml-test/tests/valid/example.toml b/assets/toml-test/tests/valid/example.toml new file mode 100644 index 0000000..8cb02e0 --- /dev/null +++ b/assets/toml-test/tests/valid/example.toml @@ -0,0 +1,5 @@ +best-day-ever = 1987-07-05T17:45:00Z + +[numtheory] +boring = false +perfection = [6, 28, 496] diff --git a/assets/toml-test/tests/valid/float/exponent.json b/assets/toml-test/tests/valid/float/exponent.json new file mode 100644 index 0000000..e79a6e1 --- /dev/null +++ b/assets/toml-test/tests/valid/float/exponent.json @@ -0,0 +1,34 @@ +{ + "lower": { + "type": "float", + "value": "300.0" + }, + "minustenth": { + "type": "float", + "value": "-0.1" + }, + "neg": { + "type": "float", + "value": "0.03" + }, + "pointlower": { + "type": "float", + "value": "310.0" + }, + "pointupper": { + "type": "float", + "value": "310.0" + }, + "pos": { + "type": "float", + "value": "300.0" + }, + "upper": { + "type": "float", + "value": "300.0" + }, + "zero": { + "type": "float", + "value": "3.0" + } +} diff --git a/assets/toml-test/tests/valid/float/exponent.toml b/assets/toml-test/tests/valid/float/exponent.toml new file mode 100644 index 0000000..573e0a8 --- /dev/null +++ b/assets/toml-test/tests/valid/float/exponent.toml @@ -0,0 +1,8 @@ +lower = 3e2 +upper = 3E2 +neg = 3e-2 +pos = 3E+2 +zero = 3e0 +pointlower = 3.1e2 +pointupper = 3.1E2 +minustenth = -1E-1 diff --git a/assets/toml-test/tests/valid/float/float.json b/assets/toml-test/tests/valid/float/float.json new file mode 100644 index 0000000..f92d8d8 --- /dev/null +++ b/assets/toml-test/tests/valid/float/float.json @@ -0,0 +1,18 @@ +{ + "negpi": { + "type": "float", + "value": "-3.14" + }, + "pi": { + "type": "float", + "value": "3.14" + }, + "pospi": { + "type": "float", + "value": "3.14" + }, + "zero-intpart": { + "type": "float", + "value": "0.123" + } +} diff --git a/assets/toml-test/tests/valid/float/float.toml b/assets/toml-test/tests/valid/float/float.toml new file mode 100644 index 0000000..5f02322 --- /dev/null +++ b/assets/toml-test/tests/valid/float/float.toml @@ -0,0 +1,4 @@ +pi = 3.14 +pospi = +3.14 +negpi = -3.14 +zero-intpart = 0.123 diff --git a/assets/toml-test/tests/valid/float/inf-and-nan.json b/assets/toml-test/tests/valid/float/inf-and-nan.json new file mode 100644 index 0000000..e3f1ba3 --- /dev/null +++ b/assets/toml-test/tests/valid/float/inf-and-nan.json @@ -0,0 +1,26 @@ +{ + "infinity": { + "type": "float", + "value": "inf" + }, + "infinity_neg": { + "type": "float", + "value": "-inf" + }, + "infinity_plus": { + "type": "float", + "value": "+inf" + }, + "nan": { + "type": "float", + "value": "nan" + }, + "nan_neg": { + "type": "float", + "value": "nan" + }, + "nan_plus": { + "type": "float", + "value": "nan" + } +} diff --git a/assets/toml-test/tests/valid/float/inf-and-nan.toml b/assets/toml-test/tests/valid/float/inf-and-nan.toml new file mode 100644 index 0000000..c8f8459 --- /dev/null +++ b/assets/toml-test/tests/valid/float/inf-and-nan.toml @@ -0,0 +1,8 @@ +# We don't encode +nan and -nan back with the signs; many languages don't +# support a sign on NaN (it doesn't really make much sense). +nan = nan +nan_neg = -nan +nan_plus = +nan +infinity = inf +infinity_neg = -inf +infinity_plus = +inf diff --git a/assets/toml-test/tests/valid/float/long.json b/assets/toml-test/tests/valid/float/long.json new file mode 100644 index 0000000..73d7505 --- /dev/null +++ b/assets/toml-test/tests/valid/float/long.json @@ -0,0 +1,10 @@ +{ + "longpi": { + "type": "float", + "value": "3.141592653589793" + }, + "neglongpi": { + "type": "float", + "value": "-3.141592653589793" + } +} diff --git a/assets/toml-test/tests/valid/float/long.toml b/assets/toml-test/tests/valid/float/long.toml new file mode 100644 index 0000000..9558ae4 --- /dev/null +++ b/assets/toml-test/tests/valid/float/long.toml @@ -0,0 +1,2 @@ +longpi = 3.141592653589793 +neglongpi = -3.141592653589793 diff --git a/assets/toml-test/tests/valid/float/underscore.json b/assets/toml-test/tests/valid/float/underscore.json new file mode 100644 index 0000000..f54f7b5 --- /dev/null +++ b/assets/toml-test/tests/valid/float/underscore.json @@ -0,0 +1,14 @@ +{ + "after": { + "type": "float", + "value": "3141.5927" + }, + "before": { + "type": "float", + "value": "3141.5927" + }, + "exponent": { + "type": "float", + "value": "3.0e14" + } +} diff --git a/assets/toml-test/tests/valid/float/underscore.toml b/assets/toml-test/tests/valid/float/underscore.toml new file mode 100644 index 0000000..343353a --- /dev/null +++ b/assets/toml-test/tests/valid/float/underscore.toml @@ -0,0 +1,3 @@ +before = 3_141.5927 +after = 3141.592_7 +exponent = 3e1_4 diff --git a/assets/toml-test/tests/valid/float/zero.json b/assets/toml-test/tests/valid/float/zero.json new file mode 100644 index 0000000..61551e8 --- /dev/null +++ b/assets/toml-test/tests/valid/float/zero.json @@ -0,0 +1,30 @@ +{ + "zero": { + "type": "float", + "value": "0" + }, + "signed-pos": { + "type": "float", + "value": "0" + }, + "signed-neg": { + "type": "float", + "value": "0" + }, + "exponent": { + "type": "float", + "value": "0" + }, + "exponent-two-0": { + "type": "float", + "value": "0" + }, + "exponent-signed-pos": { + "type": "float", + "value": "0" + }, + "exponent-signed-neg": { + "type": "float", + "value": "0" + } +} diff --git a/assets/toml-test/tests/valid/float/zero.toml b/assets/toml-test/tests/valid/float/zero.toml new file mode 100644 index 0000000..e7efb1f --- /dev/null +++ b/assets/toml-test/tests/valid/float/zero.toml @@ -0,0 +1,7 @@ +zero = 0.0 +signed-pos = +0.0 +signed-neg = -0.0 +exponent = 0e0 +exponent-two-0 = 0e00 +exponent-signed-pos = +0e0 +exponent-signed-neg = -0e0 diff --git a/assets/toml-test/tests/valid/implicit-and-explicit-after.json b/assets/toml-test/tests/valid/implicit-and-explicit-after.json new file mode 100644 index 0000000..663a34e --- /dev/null +++ b/assets/toml-test/tests/valid/implicit-and-explicit-after.json @@ -0,0 +1,16 @@ +{ + "a": { + "b": { + "c": { + "answer": { + "type": "integer", + "value": "42" + } + } + }, + "better": { + "type": "integer", + "value": "43" + } + } +} diff --git a/assets/toml-test/tests/valid/implicit-and-explicit-after.toml b/assets/toml-test/tests/valid/implicit-and-explicit-after.toml new file mode 100644 index 0000000..c0e8865 --- /dev/null +++ b/assets/toml-test/tests/valid/implicit-and-explicit-after.toml @@ -0,0 +1,5 @@ +[a.b.c] +answer = 42 + +[a] +better = 43 diff --git a/assets/toml-test/tests/valid/implicit-and-explicit-before.json b/assets/toml-test/tests/valid/implicit-and-explicit-before.json new file mode 100644 index 0000000..663a34e --- /dev/null +++ b/assets/toml-test/tests/valid/implicit-and-explicit-before.json @@ -0,0 +1,16 @@ +{ + "a": { + "b": { + "c": { + "answer": { + "type": "integer", + "value": "42" + } + } + }, + "better": { + "type": "integer", + "value": "43" + } + } +} diff --git a/assets/toml-test/tests/valid/implicit-and-explicit-before.toml b/assets/toml-test/tests/valid/implicit-and-explicit-before.toml new file mode 100644 index 0000000..eee68ff --- /dev/null +++ b/assets/toml-test/tests/valid/implicit-and-explicit-before.toml @@ -0,0 +1,5 @@ +[a] +better = 43 + +[a.b.c] +answer = 42 diff --git a/assets/toml-test/tests/valid/implicit-groups.json b/assets/toml-test/tests/valid/implicit-groups.json new file mode 100644 index 0000000..347c693 --- /dev/null +++ b/assets/toml-test/tests/valid/implicit-groups.json @@ -0,0 +1,12 @@ +{ + "a": { + "b": { + "c": { + "answer": { + "type": "integer", + "value": "42" + } + } + } + } +} diff --git a/assets/toml-test/tests/valid/implicit-groups.toml b/assets/toml-test/tests/valid/implicit-groups.toml new file mode 100644 index 0000000..b6333e4 --- /dev/null +++ b/assets/toml-test/tests/valid/implicit-groups.toml @@ -0,0 +1,2 @@ +[a.b.c] +answer = 42 diff --git a/assets/toml-test/tests/valid/inline-table/array.json b/assets/toml-test/tests/valid/inline-table/array.json new file mode 100644 index 0000000..fe78bf6 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/array.json @@ -0,0 +1,34 @@ +{ + "people": [ + { + "first_name": { + "type": "string", + "value": "Bruce" + }, + "last_name": { + "type": "string", + "value": "Springsteen" + } + }, + { + "first_name": { + "type": "string", + "value": "Eric" + }, + "last_name": { + "type": "string", + "value": "Clapton" + } + }, + { + "first_name": { + "type": "string", + "value": "Bob" + }, + "last_name": { + "type": "string", + "value": "Seger" + } + } + ] +} diff --git a/assets/toml-test/tests/valid/inline-table/array.toml b/assets/toml-test/tests/valid/inline-table/array.toml new file mode 100644 index 0000000..3fa60d6 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/array.toml @@ -0,0 +1,3 @@ +people = [{first_name = "Bruce", last_name = "Springsteen"}, + {first_name = "Eric", last_name = "Clapton"}, + {first_name = "Bob", last_name = "Seger"}] diff --git a/assets/toml-test/tests/valid/inline-table/bool.json b/assets/toml-test/tests/valid/inline-table/bool.json new file mode 100644 index 0000000..717952f --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/bool.json @@ -0,0 +1,12 @@ +{ + "a": { + "a": { + "type": "bool", + "value": "true" + }, + "b": { + "type": "bool", + "value": "false" + } + } +} diff --git a/assets/toml-test/tests/valid/inline-table/bool.toml b/assets/toml-test/tests/valid/inline-table/bool.toml new file mode 100644 index 0000000..d228fc2 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/bool.toml @@ -0,0 +1 @@ +a = {a = true, b = false} diff --git a/assets/toml-test/tests/valid/inline-table/empty.json b/assets/toml-test/tests/valid/inline-table/empty.json new file mode 100644 index 0000000..28beacf --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/empty.json @@ -0,0 +1,30 @@ +{ + "empty1": {}, + "empty2": {}, + "empty_in_array": [ + { + "not_empty": { + "type": "integer", + "value": "1" + } + }, + {} + ], + "empty_in_array2": [ + {}, + { + "not_empty": { + "type": "integer", + "value": "1" + } + } + ], + "many_empty": [ + {}, + {}, + {} + ], + "nested_empty": { + "empty": {} + } +} diff --git a/assets/toml-test/tests/valid/inline-table/empty.toml b/assets/toml-test/tests/valid/inline-table/empty.toml new file mode 100644 index 0000000..910d458 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/empty.toml @@ -0,0 +1,6 @@ +empty1 = {} +empty2 = { } +empty_in_array = [ { not_empty = 1 }, {} ] +empty_in_array2 = [{},{not_empty=1}] +many_empty = [{},{},{}] +nested_empty = {"empty"={}} diff --git a/assets/toml-test/tests/valid/inline-table/end-in-bool.json b/assets/toml-test/tests/valid/inline-table/end-in-bool.json new file mode 100644 index 0000000..90e700a --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/end-in-bool.json @@ -0,0 +1,16 @@ +{ + "black": { + "allow_prereleases": { + "type": "bool", + "value": "true" + }, + "python": { + "type": "string", + "value": "\u003e3.6" + }, + "version": { + "type": "string", + "value": "\u003e=18.9b0" + } + } +} diff --git a/assets/toml-test/tests/valid/inline-table/end-in-bool.toml b/assets/toml-test/tests/valid/inline-table/end-in-bool.toml new file mode 100644 index 0000000..94e5651 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/end-in-bool.toml @@ -0,0 +1 @@ +black = { python=">3.6", version=">=18.9b0", allow_prereleases=true } diff --git a/assets/toml-test/tests/valid/inline-table/inline-table.json b/assets/toml-test/tests/valid/inline-table/inline-table.json new file mode 100644 index 0000000..2468f62 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/inline-table.json @@ -0,0 +1,48 @@ +{ + "name": { + "first": { + "type": "string", + "value": "Tom" + }, + "last": { + "type": "string", + "value": "Preston-Werner" + } + }, + "point": { + "x": { + "type": "integer", + "value": "1" + }, + "y": { + "type": "integer", + "value": "2" + } + }, + "simple": { + "a": { + "type": "integer", + "value": "1" + } + }, + "str-key": { + "a": { + "type": "integer", + "value": "1" + } + }, + "table-array": [ + { + "a": { + "type": "integer", + "value": "1" + } + }, + { + "b": { + "type": "integer", + "value": "2" + } + } + ] +} diff --git a/assets/toml-test/tests/valid/inline-table/inline-table.toml b/assets/toml-test/tests/valid/inline-table/inline-table.toml new file mode 100644 index 0000000..257047e --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/inline-table.toml @@ -0,0 +1,5 @@ +name = { first = "Tom", last = "Preston-Werner" } +point = { x = 1, y = 2 } +simple = { a = 1 } +str-key = { "a" = 1 } +table-array = [{ "a" = 1 }, { "b" = 2 }] diff --git a/assets/toml-test/tests/valid/inline-table/key-dotted.json b/assets/toml-test/tests/valid/inline-table/key-dotted.json new file mode 100644 index 0000000..3886803 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/key-dotted.json @@ -0,0 +1,140 @@ +{ + "a": { + "a": { + "b": { + "type": "integer", + "value": "1" + } + } + }, + "arr": [ + { + "T": { + "a": { + "b": { + "type": "integer", + "value": "1" + } + } + }, + "t": { + "a": { + "b": { + "type": "integer", + "value": "1" + } + } + } + }, + { + "T": { + "a": { + "b": { + "type": "integer", + "value": "2" + } + } + }, + "t": { + "a": { + "b": { + "type": "integer", + "value": "2" + } + } + } + } + ], + "b": { + "a": { + "b": { + "type": "integer", + "value": "1" + } + } + }, + "c": { + "a": { + "b": { + "type": "integer", + "value": "1" + } + } + }, + "d": { + "a": { + "b": { + "type": "integer", + "value": "1" + } + } + }, + "e": { + "a": { + "b": { + "type": "integer", + "value": "1" + } + } + }, + "inline": { + "a": { + "b": { + "type": "integer", + "value": "42" + } + } + }, + "many": { + "dots": { + "here": { + "dot": { + "dot": { + "dot": { + "a": { + "b": { + "c": { + "type": "integer", + "value": "1" + }, + "d": { + "type": "integer", + "value": "2" + } + } + } + } + } + } + } + } + }, + "tbl": { + "a": { + "b": { + "c": { + "d": { + "e": { + "type": "integer", + "value": "1" + } + } + } + } + }, + "x": { + "a": { + "b": { + "c": { + "d": { + "e": { + "type": "integer", + "value": "1" + } + } + } + } + } + } + } +} diff --git a/assets/toml-test/tests/valid/inline-table/key-dotted.toml b/assets/toml-test/tests/valid/inline-table/key-dotted.toml new file mode 100644 index 0000000..e812943 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/key-dotted.toml @@ -0,0 +1,23 @@ +inline = {a.b = 42} + +many.dots.here.dot.dot.dot = {a.b.c = 1, a.b.d = 2} + +a = { a.b = 1 } +b = { "a"."b" = 1 } +c = { a . b = 1 } +d = { 'a' . "b" = 1 } +e = {a.b=1} + +[tbl] +a.b.c = {d.e=1} + +[tbl.x] +a.b.c = {d.e=1} + +[[arr]] +t = {a.b=1} +T = {a.b=1} + +[[arr]] +t = {a.b=2} +T = {a.b=2} diff --git a/assets/toml-test/tests/valid/inline-table/multiline.json b/assets/toml-test/tests/valid/inline-table/multiline.json new file mode 100644 index 0000000..f946d81 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/multiline.json @@ -0,0 +1,20 @@ +{ + "tbl_multiline": { + "a": { + "type": "integer", + "value": "1" + }, + "b": { + "type": "string", + "value": "multiline\n" + }, + "c": { + "type": "string", + "value": "and yet\nanother line" + }, + "d": { + "type": "integer", + "value": "4" + } + } +} diff --git a/assets/toml-test/tests/valid/inline-table/multiline.toml b/assets/toml-test/tests/valid/inline-table/multiline.toml new file mode 100644 index 0000000..a653b18 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/multiline.toml @@ -0,0 +1,4 @@ +tbl_multiline = { a = 1, b = """ +multiline +""", c = """and yet +another line""", d = 4 } diff --git a/assets/toml-test/tests/valid/inline-table/nest.json b/assets/toml-test/tests/valid/inline-table/nest.json new file mode 100644 index 0000000..70aebb3 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/nest.json @@ -0,0 +1,64 @@ +{ + "arr_arr_tbl_empty": [ + [ + {} + ] + ], + "arr_arr_tbl_val": [ + [ + { + "one": { + "type": "integer", + "value": "1" + } + } + ] + ], + "arr_arr_tbls": [ + [ + { + "one": { + "type": "integer", + "value": "1" + } + }, + { + "two": { + "type": "integer", + "value": "2" + } + } + ] + ], + "arr_tbl_tbl": [ + { + "tbl": { + "one": { + "type": "integer", + "value": "1" + } + } + } + ], + "tbl_arr_tbl": { + "arr_tbl": [ + { + "one": { + "type": "integer", + "value": "1" + } + } + ] + }, + "tbl_tbl_empty": { + "tbl_0": {} + }, + "tbl_tbl_val": { + "tbl_1": { + "one": { + "type": "integer", + "value": "1" + } + } + } +} diff --git a/assets/toml-test/tests/valid/inline-table/nest.toml b/assets/toml-test/tests/valid/inline-table/nest.toml new file mode 100644 index 0000000..2624c1d --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/nest.toml @@ -0,0 +1,10 @@ +tbl_tbl_empty = { tbl_0 = {} } +tbl_tbl_val = { tbl_1 = { one = 1 } } +tbl_arr_tbl = { arr_tbl = [ { one = 1 } ] } +arr_tbl_tbl = [ { tbl = { one = 1 } } ] + +# Array-of-array-of-table is interesting because it can only +# be represented in inline form. +arr_arr_tbl_empty = [ [ {} ] ] +arr_arr_tbl_val = [ [ { one = 1 } ] ] +arr_arr_tbls = [ [ { one = 1 }, { two = 2 } ] ] diff --git a/assets/toml-test/tests/valid/inline-table/newline.json b/assets/toml-test/tests/valid/inline-table/newline.json new file mode 100644 index 0000000..c19e588 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/newline.json @@ -0,0 +1,50 @@ +{ + "tbl-1": { + "1": { + "type": "integer", + "value": "2" + }, + "arr": [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + }, + { + "type": "integer", + "value": "3" + } + ], + "hello": { + "type": "string", + "value": "world" + }, + "tbl": { + "k": { + "type": "integer", + "value": "1" + } + } + }, + "tbl-2": { + "k": { + "type": "string", + "value": "\tHello\n\t" + } + }, + "trailing-comma-1": { + "c": { + "type": "integer", + "value": "1" + } + }, + "trailing-comma-2": { + "c": { + "type": "integer", + "value": "1" + } + } +} diff --git a/assets/toml-test/tests/valid/inline-table/newline.toml b/assets/toml-test/tests/valid/inline-table/newline.toml new file mode 100644 index 0000000..914afe9 --- /dev/null +++ b/assets/toml-test/tests/valid/inline-table/newline.toml @@ -0,0 +1,24 @@ +# TOML 1.1 supports newlines in inline tables and trailing commas. + +trailing-comma-1 = { + c = 1, +} +trailing-comma-2 = { c = 1, } + +tbl-1 = { + hello = "world", + 1 = 2, + arr = [1, + 2, + 3, + ], + tbl = { + k = 1, + } +} + +tbl-2 = { + k = """ + Hello + """ +} diff --git a/assets/toml-test/tests/valid/integer/integer.json b/assets/toml-test/tests/valid/integer/integer.json new file mode 100644 index 0000000..eee9758 --- /dev/null +++ b/assets/toml-test/tests/valid/integer/integer.json @@ -0,0 +1,18 @@ +{ + "answer": { + "type": "integer", + "value": "42" + }, + "neganswer": { + "type": "integer", + "value": "-42" + }, + "posanswer": { + "type": "integer", + "value": "42" + }, + "zero": { + "type": "integer", + "value": "0" + } +} diff --git a/assets/toml-test/tests/valid/integer/integer.toml b/assets/toml-test/tests/valid/integer/integer.toml new file mode 100644 index 0000000..b62de30 --- /dev/null +++ b/assets/toml-test/tests/valid/integer/integer.toml @@ -0,0 +1,4 @@ +answer = 42 +posanswer = +42 +neganswer = -42 +zero = 0 diff --git a/assets/toml-test/tests/valid/integer/literals.json b/assets/toml-test/tests/valid/integer/literals.json new file mode 100644 index 0000000..1a8555b --- /dev/null +++ b/assets/toml-test/tests/valid/integer/literals.json @@ -0,0 +1,38 @@ +{ + "bin1": { + "type": "integer", + "value": "214" + }, + "bin2": { + "type": "integer", + "value": "5" + }, + "hex1": { + "type": "integer", + "value": "3735928559" + }, + "hex2": { + "type": "integer", + "value": "3735928559" + }, + "hex3": { + "type": "integer", + "value": "3735928559" + }, + "hex4": { + "type": "integer", + "value": "2439" + }, + "oct1": { + "type": "integer", + "value": "342391" + }, + "oct2": { + "type": "integer", + "value": "493" + }, + "oct3": { + "type": "integer", + "value": "501" + } +} diff --git a/assets/toml-test/tests/valid/integer/literals.toml b/assets/toml-test/tests/valid/integer/literals.toml new file mode 100644 index 0000000..a078590 --- /dev/null +++ b/assets/toml-test/tests/valid/integer/literals.toml @@ -0,0 +1,11 @@ +bin1 = 0b11010110 +bin2 = 0b1_0_1 + +oct1 = 0o01234567 +oct2 = 0o755 +oct3 = 0o7_6_5 + +hex1 = 0xDEADBEEF +hex2 = 0xdeadbeef +hex3 = 0xdead_beef +hex4 = 0x00987 diff --git a/assets/toml-test/tests/valid/integer/long.json b/assets/toml-test/tests/valid/integer/long.json new file mode 100644 index 0000000..6f4f0a7 --- /dev/null +++ b/assets/toml-test/tests/valid/integer/long.json @@ -0,0 +1,10 @@ +{ + "int64-max": { + "type": "integer", + "value": "9223372036854775807" + }, + "int64-max-neg": { + "type": "integer", + "value": "-9223372036854775808" + } +} diff --git a/assets/toml-test/tests/valid/integer/long.toml b/assets/toml-test/tests/valid/integer/long.toml new file mode 100644 index 0000000..5db5ed7 --- /dev/null +++ b/assets/toml-test/tests/valid/integer/long.toml @@ -0,0 +1,2 @@ +int64-max = 9223372036854775807 +int64-max-neg = -9223372036854775808 diff --git a/assets/toml-test/tests/valid/integer/underscore.json b/assets/toml-test/tests/valid/integer/underscore.json new file mode 100644 index 0000000..10b9b59 --- /dev/null +++ b/assets/toml-test/tests/valid/integer/underscore.json @@ -0,0 +1,10 @@ +{ + "kilo": { + "type": "integer", + "value": "1000" + }, + "x": { + "type": "integer", + "value": "1111" + } +} diff --git a/assets/toml-test/tests/valid/integer/underscore.toml b/assets/toml-test/tests/valid/integer/underscore.toml new file mode 100644 index 0000000..7c2da5f --- /dev/null +++ b/assets/toml-test/tests/valid/integer/underscore.toml @@ -0,0 +1,2 @@ +kilo = 1_000 +x = 1_1_1_1 diff --git a/assets/toml-test/tests/valid/integer/zero.json b/assets/toml-test/tests/valid/integer/zero.json new file mode 100644 index 0000000..9d5c707 --- /dev/null +++ b/assets/toml-test/tests/valid/integer/zero.json @@ -0,0 +1,50 @@ +{ + "a2": { + "type": "integer", + "value": "0" + }, + "a3": { + "type": "integer", + "value": "0" + }, + "b1": { + "type": "integer", + "value": "0" + }, + "b2": { + "type": "integer", + "value": "0" + }, + "b3": { + "type": "integer", + "value": "0" + }, + "d1": { + "type": "integer", + "value": "0" + }, + "d2": { + "type": "integer", + "value": "0" + }, + "d3": { + "type": "integer", + "value": "0" + }, + "h1": { + "type": "integer", + "value": "0" + }, + "h2": { + "type": "integer", + "value": "0" + }, + "h3": { + "type": "integer", + "value": "0" + }, + "o1": { + "type": "integer", + "value": "0" + } +} diff --git a/assets/toml-test/tests/valid/integer/zero.toml b/assets/toml-test/tests/valid/integer/zero.toml new file mode 100644 index 0000000..4687c28 --- /dev/null +++ b/assets/toml-test/tests/valid/integer/zero.toml @@ -0,0 +1,15 @@ +d1 = 0 +d2 = +0 +d3 = -0 + +h1 = 0x0 +h2 = 0x00 +h3 = 0x00000 + +o1 = 0o0 +a2 = 0o00 +a3 = 0o00000 + +b1 = 0b0 +b2 = 0b00 +b3 = 0b00000 diff --git a/assets/toml-test/tests/valid/key/alphanum.json b/assets/toml-test/tests/valid/key/alphanum.json new file mode 100644 index 0000000..a54e1d3 --- /dev/null +++ b/assets/toml-test/tests/valid/key/alphanum.json @@ -0,0 +1,46 @@ +{ + "000111": { + "type": "string", + "value": "leading" + }, + "10e3": { + "type": "string", + "value": "false float" + }, + "123": { + "type": "string", + "value": "num" + }, + "2018_10": { + "001": { + "type": "integer", + "value": "1" + } + }, + "34-11": { + "type": "integer", + "value": "23" + }, + "a-a-a": { + "_": { + "type": "bool", + "value": "false" + } + }, + "alpha": { + "type": "string", + "value": "a" + }, + "one1two2": { + "type": "string", + "value": "mixed" + }, + "under_score": { + "type": "string", + "value": "___" + }, + "with-dash": { + "type": "string", + "value": "dashed" + } +} diff --git a/assets/toml-test/tests/valid/key/alphanum.toml b/assets/toml-test/tests/valid/key/alphanum.toml new file mode 100644 index 0000000..0632e9c --- /dev/null +++ b/assets/toml-test/tests/valid/key/alphanum.toml @@ -0,0 +1,14 @@ +alpha = "a" +123 = "num" +000111 = "leading" +10e3 = "false float" +one1two2 = "mixed" +with-dash = "dashed" +under_score = "___" +34-11 = 23 + +[2018_10] +001 = 1 + +[a-a-a] +_ = false diff --git a/assets/toml-test/tests/valid/key/case-sensitive.json b/assets/toml-test/tests/valid/key/case-sensitive.json new file mode 100644 index 0000000..1f205d2 --- /dev/null +++ b/assets/toml-test/tests/valid/key/case-sensitive.json @@ -0,0 +1,38 @@ +{ + "Section": { + "M": { + "type": "string", + "value": "latin letter M" + }, + "name": { + "type": "string", + "value": "different section!!" + }, + "Μ": { + "type": "string", + "value": "greek capital letter MU" + }, + "μ": { + "type": "string", + "value": "greek small letter mu" + } + }, + "sectioN": { + "type": "string", + "value": "NN" + }, + "section": { + "NAME": { + "type": "string", + "value": "upper" + }, + "Name": { + "type": "string", + "value": "capitalized" + }, + "name": { + "type": "string", + "value": "lower" + } + } +} diff --git a/assets/toml-test/tests/valid/key/case-sensitive.toml b/assets/toml-test/tests/valid/key/case-sensitive.toml new file mode 100644 index 0000000..e02b3a5 --- /dev/null +++ b/assets/toml-test/tests/valid/key/case-sensitive.toml @@ -0,0 +1,13 @@ +sectioN = "NN" + +[section] +name = "lower" +NAME = "upper" +Name = "capitalized" + +[Section] +name = "different section!!" +"μ" = "greek small letter mu" +"Μ" = "greek capital letter MU" +M = "latin letter M" + diff --git a/assets/toml-test/tests/valid/key/dotted.json b/assets/toml-test/tests/valid/key/dotted.json new file mode 100644 index 0000000..a527a72 --- /dev/null +++ b/assets/toml-test/tests/valid/key/dotted.json @@ -0,0 +1,132 @@ +{ + "a": { + "few": { + "dots": { + "polka": { + "dance-with": { + "type": "string", + "value": "Dot" + }, + "dot": { + "type": "string", + "value": "again?" + } + } + } + } + }, + "arr": [ + { + "a": { + "b": { + "c": { + "type": "integer", + "value": "1" + }, + "d": { + "type": "integer", + "value": "2" + } + } + } + }, + { + "a": { + "b": { + "c": { + "type": "integer", + "value": "3" + }, + "d": { + "type": "integer", + "value": "4" + } + } + } + } + ], + "count": { + "a": { + "type": "integer", + "value": "1" + }, + "b": { + "type": "integer", + "value": "2" + }, + "c": { + "type": "integer", + "value": "3" + }, + "d": { + "type": "integer", + "value": "4" + }, + "e": { + "type": "integer", + "value": "5" + }, + "f": { + "type": "integer", + "value": "6" + }, + "g": { + "type": "integer", + "value": "7" + }, + "h": { + "type": "integer", + "value": "8" + }, + "i": { + "type": "integer", + "value": "9" + }, + "j": { + "type": "integer", + "value": "10" + }, + "k": { + "type": "integer", + "value": "11" + }, + "l": { + "type": "integer", + "value": "12" + } + }, + "many": { + "dots": { + "here": { + "dot": { + "dot": { + "dot": { + "type": "integer", + "value": "42" + } + } + } + } + } + }, + "name": { + "first": { + "type": "string", + "value": "Arthur" + }, + "last": { + "type": "string", + "value": "Dent" + } + }, + "tbl": { + "a": { + "b": { + "c": { + "type": "float", + "value": "42.666" + } + } + } + } +} diff --git a/assets/toml-test/tests/valid/key/dotted.toml b/assets/toml-test/tests/valid/key/dotted.toml new file mode 100644 index 0000000..52d62d7 --- /dev/null +++ b/assets/toml-test/tests/valid/key/dotted.toml @@ -0,0 +1,35 @@ +# Note: this file contains literal tab characters. + +name.first = "Arthur" +"name".'last' = "Dent" + +many.dots.here.dot.dot.dot = 42 + +# Space are ignored, and key parts can be quoted. +count.a = 1 +count . b = 2 +"count"."c" = 3 +"count" . "d" = 4 +'count'.'e' = 5 +'count' . 'f' = 6 +"count".'g' = 7 +"count" . 'h' = 8 +count.'i' = 9 +count . 'j' = 10 +"count".k = 11 +"count" . l = 12 + +[tbl] +a.b.c = 42.666 + +[a.few.dots] +polka.dot = "again?" +polka.dance-with = "Dot" + +[[arr]] +a.b.c=1 +a.b.d=2 + +[[arr]] +a.b.c=3 +a.b.d=4 diff --git a/assets/toml-test/tests/valid/key/empty.json b/assets/toml-test/tests/valid/key/empty.json new file mode 100644 index 0000000..44948a9 --- /dev/null +++ b/assets/toml-test/tests/valid/key/empty.json @@ -0,0 +1,6 @@ +{ + "": { + "type": "string", + "value": "blank" + } +} diff --git a/assets/toml-test/tests/valid/key/empty.toml b/assets/toml-test/tests/valid/key/empty.toml new file mode 100644 index 0000000..0a1640d --- /dev/null +++ b/assets/toml-test/tests/valid/key/empty.toml @@ -0,0 +1 @@ +"" = "blank" diff --git a/assets/toml-test/tests/valid/key/equals-nospace.json b/assets/toml-test/tests/valid/key/equals-nospace.json new file mode 100644 index 0000000..9394e56 --- /dev/null +++ b/assets/toml-test/tests/valid/key/equals-nospace.json @@ -0,0 +1,6 @@ +{ + "answer": { + "type": "integer", + "value": "42" + } +} diff --git a/assets/toml-test/tests/valid/key/equals-nospace.toml b/assets/toml-test/tests/valid/key/equals-nospace.toml new file mode 100644 index 0000000..560901c --- /dev/null +++ b/assets/toml-test/tests/valid/key/equals-nospace.toml @@ -0,0 +1 @@ +answer=42 diff --git a/assets/toml-test/tests/valid/key/escapes.json b/assets/toml-test/tests/valid/key/escapes.json new file mode 100644 index 0000000..e62b3a1 --- /dev/null +++ b/assets/toml-test/tests/valid/key/escapes.json @@ -0,0 +1,24 @@ +{ + "\n": { + "type": "string", + "value": "newline" + }, + "\"": { + "type": "string", + "value": "just a quote" + }, + "\"quoted\"": { + "quote": { + "type": "bool", + "value": "true" + } + }, + "a.b": { + "À": {} + }, + "backsp\u0008\u0008": {}, + "À": { + "type": "string", + "value": "latin capital letter A with grave" + } +} diff --git a/assets/toml-test/tests/valid/key/escapes.toml b/assets/toml-test/tests/valid/key/escapes.toml new file mode 100644 index 0000000..aac3c0a --- /dev/null +++ b/assets/toml-test/tests/valid/key/escapes.toml @@ -0,0 +1,10 @@ +"\n" = "newline" +"\u00c0" = "latin capital letter A with grave" +"\"" = "just a quote" + +["backsp\b\b"] + +["\"quoted\""] +quote = true + +["a.b"."\u00c0"] diff --git a/assets/toml-test/tests/valid/key/numeric-dotted.json b/assets/toml-test/tests/valid/key/numeric-dotted.json new file mode 100644 index 0000000..43dd4d1 --- /dev/null +++ b/assets/toml-test/tests/valid/key/numeric-dotted.json @@ -0,0 +1,8 @@ +{ + "1": { + "2": { + "type": "integer", + "value": "3" + } + } +} diff --git a/assets/toml-test/tests/valid/key/numeric-dotted.toml b/assets/toml-test/tests/valid/key/numeric-dotted.toml new file mode 100644 index 0000000..538204c --- /dev/null +++ b/assets/toml-test/tests/valid/key/numeric-dotted.toml @@ -0,0 +1 @@ +1.2 = 3 diff --git a/assets/toml-test/tests/valid/key/numeric.json b/assets/toml-test/tests/valid/key/numeric.json new file mode 100644 index 0000000..eddb88b --- /dev/null +++ b/assets/toml-test/tests/valid/key/numeric.json @@ -0,0 +1,6 @@ +{ + "1": { + "type": "integer", + "value": "1" + } +} diff --git a/assets/toml-test/tests/valid/key/numeric.toml b/assets/toml-test/tests/valid/key/numeric.toml new file mode 100644 index 0000000..532356f --- /dev/null +++ b/assets/toml-test/tests/valid/key/numeric.toml @@ -0,0 +1 @@ +1 = 1 diff --git a/assets/toml-test/tests/valid/key/quoted-dots.json b/assets/toml-test/tests/valid/key/quoted-dots.json new file mode 100644 index 0000000..1582c5b --- /dev/null +++ b/assets/toml-test/tests/valid/key/quoted-dots.json @@ -0,0 +1,32 @@ +{ + "plain": { + "type": "integer", + "value": "1" + }, + "plain_table": { + "plain": { + "type": "integer", + "value": "3" + }, + "with.dot": { + "type": "integer", + "value": "4" + } + }, + "table": { + "withdot": { + "key.with.dots": { + "type": "integer", + "value": "6" + }, + "plain": { + "type": "integer", + "value": "5" + } + } + }, + "with.dot": { + "type": "integer", + "value": "2" + } +} diff --git a/assets/toml-test/tests/valid/key/quoted-dots.toml b/assets/toml-test/tests/valid/key/quoted-dots.toml new file mode 100644 index 0000000..65fcddf --- /dev/null +++ b/assets/toml-test/tests/valid/key/quoted-dots.toml @@ -0,0 +1,10 @@ +plain = 1 +"with.dot" = 2 + +[plain_table] +plain = 3 +"with.dot" = 4 + +[table.withdot] +plain = 5 +"key.with.dots" = 6 diff --git a/assets/toml-test/tests/valid/key/space.json b/assets/toml-test/tests/valid/key/space.json new file mode 100644 index 0000000..670d16a --- /dev/null +++ b/assets/toml-test/tests/valid/key/space.json @@ -0,0 +1,16 @@ +{ + " c d ": { + "type": "integer", + "value": "2" + }, + " tbl ": { + "\ttab\ttab\t": { + "type": "string", + "value": "tab" + } + }, + "a b": { + "type": "integer", + "value": "1" + } +} diff --git a/assets/toml-test/tests/valid/key/space.toml b/assets/toml-test/tests/valid/key/space.toml new file mode 100644 index 0000000..4234f88 --- /dev/null +++ b/assets/toml-test/tests/valid/key/space.toml @@ -0,0 +1,6 @@ +# Keep whitespace inside quotes keys at all positions. +"a b" = 1 +" c d " = 2 + +[ " tbl " ] +"\ttab\ttab\t" = "tab" diff --git a/assets/toml-test/tests/valid/key/special-chars.json b/assets/toml-test/tests/valid/key/special-chars.json new file mode 100644 index 0000000..fa64c7d --- /dev/null +++ b/assets/toml-test/tests/valid/key/special-chars.json @@ -0,0 +1,6 @@ +{ + "=~!@$^\u0026*()_+-`1234567890[]|/?\u003e\u003c.,;:'=": { + "type": "integer", + "value": "1" + } +} diff --git a/assets/toml-test/tests/valid/key/special-chars.toml b/assets/toml-test/tests/valid/key/special-chars.toml new file mode 100644 index 0000000..0ba7168 --- /dev/null +++ b/assets/toml-test/tests/valid/key/special-chars.toml @@ -0,0 +1 @@ +"=~!@$^&*()_+-`1234567890[]|/?><.,;:'=" = 1 diff --git a/assets/toml-test/tests/valid/key/special-word.json b/assets/toml-test/tests/valid/key/special-word.json new file mode 100644 index 0000000..59ce693 --- /dev/null +++ b/assets/toml-test/tests/valid/key/special-word.json @@ -0,0 +1,18 @@ +{ + "false": { + "type": "bool", + "value": "false" + }, + "inf": { + "type": "integer", + "value": "100000000" + }, + "nan": { + "type": "string", + "value": "ceci n'est pas un nombre" + }, + "true": { + "type": "integer", + "value": "1" + } +} diff --git a/assets/toml-test/tests/valid/key/special-word.toml b/assets/toml-test/tests/valid/key/special-word.toml new file mode 100644 index 0000000..0b836f1 --- /dev/null +++ b/assets/toml-test/tests/valid/key/special-word.toml @@ -0,0 +1,5 @@ +false = false +true = 1 +inf = 100000000 +nan = "ceci n'est pas un nombre" + diff --git a/assets/toml-test/tests/valid/newline-crlf.json b/assets/toml-test/tests/valid/newline-crlf.json new file mode 100644 index 0000000..acf617e --- /dev/null +++ b/assets/toml-test/tests/valid/newline-crlf.json @@ -0,0 +1,10 @@ +{ + "newline": { + "type": "string", + "value": "crlf" + }, + "os": { + "type": "string", + "value": "DOS" + } +} diff --git a/assets/toml-test/tests/valid/newline-crlf.toml b/assets/toml-test/tests/valid/newline-crlf.toml new file mode 100644 index 0000000..0030024 --- /dev/null +++ b/assets/toml-test/tests/valid/newline-crlf.toml @@ -0,0 +1,2 @@ +os = "DOS" +newline = "crlf" diff --git a/assets/toml-test/tests/valid/newline-lf.json b/assets/toml-test/tests/valid/newline-lf.json new file mode 100644 index 0000000..66cf871 --- /dev/null +++ b/assets/toml-test/tests/valid/newline-lf.json @@ -0,0 +1,10 @@ +{ + "newline": { + "type": "string", + "value": "lf" + }, + "os": { + "type": "string", + "value": "unix" + } +} diff --git a/assets/toml-test/tests/valid/newline-lf.toml b/assets/toml-test/tests/valid/newline-lf.toml new file mode 100644 index 0000000..0f3377c --- /dev/null +++ b/assets/toml-test/tests/valid/newline-lf.toml @@ -0,0 +1,2 @@ +os = "unix" +newline = "lf" diff --git a/assets/toml-test/tests/valid/spec-example-1-compact.json b/assets/toml-test/tests/valid/spec-example-1-compact.json new file mode 100644 index 0000000..9f4078a --- /dev/null +++ b/assets/toml-test/tests/valid/spec-example-1-compact.json @@ -0,0 +1,100 @@ +{ + "clients": { + "data": [ + [ + { + "type": "string", + "value": "gamma" + }, + { + "type": "string", + "value": "delta" + } + ], + [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + } + ] + ], + "hosts": [ + { + "type": "string", + "value": "alpha" + }, + { + "type": "string", + "value": "omega" + } + ] + }, + "database": { + "connection_max": { + "type": "integer", + "value": "5000" + }, + "enabled": { + "type": "bool", + "value": "true" + }, + "ports": [ + { + "type": "integer", + "value": "8001" + }, + { + "type": "integer", + "value": "8001" + }, + { + "type": "integer", + "value": "8002" + } + ], + "server": { + "type": "string", + "value": "192.168.1.1" + } + }, + "owner": { + "dob": { + "type": "datetime", + "value": "1979-05-27T07:32:00-08:00" + }, + "name": { + "type": "string", + "value": "Lance Uppercut" + } + }, + "servers": { + "alpha": { + "dc": { + "type": "string", + "value": "eqdc10" + }, + "ip": { + "type": "string", + "value": "10.0.0.1" + } + }, + "beta": { + "dc": { + "type": "string", + "value": "eqdc10" + }, + "ip": { + "type": "string", + "value": "10.0.0.2" + } + } + }, + "title": { + "type": "string", + "value": "TOML Example" + } +} diff --git a/assets/toml-test/tests/valid/spec-example-1-compact.toml b/assets/toml-test/tests/valid/spec-example-1-compact.toml new file mode 100644 index 0000000..15e2b84 --- /dev/null +++ b/assets/toml-test/tests/valid/spec-example-1-compact.toml @@ -0,0 +1,23 @@ +#Useless spaces eliminated. +title="TOML Example" +[owner] +name="Lance Uppercut" +dob=1979-05-27T07:32:00-08:00#First class dates +[database] +server="192.168.1.1" +ports=[8001,8001,8002] +connection_max=5000 +enabled=true +[servers] +[servers.alpha] +ip="10.0.0.1" +dc="eqdc10" +[servers.beta] +ip="10.0.0.2" +dc="eqdc10" +[clients] +data=[["gamma","delta"],[1,2]] +hosts=[ +"alpha", +"omega" +] diff --git a/assets/toml-test/tests/valid/spec-example-1.json b/assets/toml-test/tests/valid/spec-example-1.json new file mode 100644 index 0000000..9f4078a --- /dev/null +++ b/assets/toml-test/tests/valid/spec-example-1.json @@ -0,0 +1,100 @@ +{ + "clients": { + "data": [ + [ + { + "type": "string", + "value": "gamma" + }, + { + "type": "string", + "value": "delta" + } + ], + [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + } + ] + ], + "hosts": [ + { + "type": "string", + "value": "alpha" + }, + { + "type": "string", + "value": "omega" + } + ] + }, + "database": { + "connection_max": { + "type": "integer", + "value": "5000" + }, + "enabled": { + "type": "bool", + "value": "true" + }, + "ports": [ + { + "type": "integer", + "value": "8001" + }, + { + "type": "integer", + "value": "8001" + }, + { + "type": "integer", + "value": "8002" + } + ], + "server": { + "type": "string", + "value": "192.168.1.1" + } + }, + "owner": { + "dob": { + "type": "datetime", + "value": "1979-05-27T07:32:00-08:00" + }, + "name": { + "type": "string", + "value": "Lance Uppercut" + } + }, + "servers": { + "alpha": { + "dc": { + "type": "string", + "value": "eqdc10" + }, + "ip": { + "type": "string", + "value": "10.0.0.1" + } + }, + "beta": { + "dc": { + "type": "string", + "value": "eqdc10" + }, + "ip": { + "type": "string", + "value": "10.0.0.2" + } + } + }, + "title": { + "type": "string", + "value": "TOML Example" + } +} diff --git a/assets/toml-test/tests/valid/spec-example-1.toml b/assets/toml-test/tests/valid/spec-example-1.toml new file mode 100644 index 0000000..52fd1e8 --- /dev/null +++ b/assets/toml-test/tests/valid/spec-example-1.toml @@ -0,0 +1,33 @@ +# This is a TOML document. Boom. + +title = "TOML Example" + +[owner] +name = "Lance Uppercut" +dob = 1979-05-27T07:32:00-08:00 # First class dates? Why not? + +[database] +server = "192.168.1.1" +ports = [ 8001, 8001, 8002 ] +connection_max = 5000 +enabled = true + +[servers] + + # You can indent as you please. Tabs or spaces. TOML don't care. + [servers.alpha] + ip = "10.0.0.1" + dc = "eqdc10" + + [servers.beta] + ip = "10.0.0.2" + dc = "eqdc10" + +[clients] +data = [ ["gamma", "delta"], [1, 2] ] + +# Line breaks are OK when inside arrays +hosts = [ + "alpha", + "omega" +] diff --git a/assets/toml-test/tests/valid/spec/array-0.json b/assets/toml-test/tests/valid/spec/array-0.json new file mode 100644 index 0000000..f150e9d --- /dev/null +++ b/assets/toml-test/tests/valid/spec/array-0.json @@ -0,0 +1,146 @@ +{ + "colors": [ + { + "type": "string", + "value": "red" + }, + { + "type": "string", + "value": "yellow" + }, + { + "type": "string", + "value": "green" + } + ], + "contributors": [ + { + "type": "string", + "value": "Foo Bar \u003cfoo@example.com\u003e" + }, + { + "email": { + "type": "string", + "value": "bazqux@example.com" + }, + "name": { + "type": "string", + "value": "Baz Qux" + }, + "url": { + "type": "string", + "value": "https://example.com/bazqux" + } + } + ], + "integers": [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + }, + { + "type": "integer", + "value": "3" + } + ], + "nested_arrays_of_ints": [ + [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + } + ], + [ + { + "type": "integer", + "value": "3" + }, + { + "type": "integer", + "value": "4" + }, + { + "type": "integer", + "value": "5" + } + ] + ], + "nested_mixed_array": [ + [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + } + ], + [ + { + "type": "string", + "value": "a" + }, + { + "type": "string", + "value": "b" + }, + { + "type": "string", + "value": "c" + } + ] + ], + "numbers": [ + { + "type": "float", + "value": "0.1" + }, + { + "type": "float", + "value": "0.2" + }, + { + "type": "float", + "value": "0.5" + }, + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + }, + { + "type": "integer", + "value": "5" + } + ], + "string_array": [ + { + "type": "string", + "value": "all" + }, + { + "type": "string", + "value": "strings" + }, + { + "type": "string", + "value": "are the same" + }, + { + "type": "string", + "value": "type" + } + ] +} diff --git a/assets/toml-test/tests/valid/spec/array-0.toml b/assets/toml-test/tests/valid/spec/array-0.toml new file mode 100644 index 0000000..467a8bc --- /dev/null +++ b/assets/toml-test/tests/valid/spec/array-0.toml @@ -0,0 +1,12 @@ +integers = [ 1, 2, 3 ] +colors = [ "red", "yellow", "green" ] +nested_arrays_of_ints = [ [ 1, 2 ], [3, 4, 5] ] +nested_mixed_array = [ [ 1, 2 ], ["a", "b", "c"] ] +string_array = [ "all", 'strings', """are the same""", '''type''' ] + +# Mixed-type arrays are allowed +numbers = [ 0.1, 0.2, 0.5, 1, 2, 5 ] +contributors = [ + "Foo Bar ", + { name = "Baz Qux", email = "bazqux@example.com", url = "https://example.com/bazqux" } +] diff --git a/assets/toml-test/tests/valid/spec/array-1.json b/assets/toml-test/tests/valid/spec/array-1.json new file mode 100644 index 0000000..334c333 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/array-1.json @@ -0,0 +1,26 @@ +{ + "integers2": [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + }, + { + "type": "integer", + "value": "3" + } + ], + "integers3": [ + { + "type": "integer", + "value": "1" + }, + { + "type": "integer", + "value": "2" + } + ] +} diff --git a/assets/toml-test/tests/valid/spec/array-1.toml b/assets/toml-test/tests/valid/spec/array-1.toml new file mode 100644 index 0000000..6acd9ca --- /dev/null +++ b/assets/toml-test/tests/valid/spec/array-1.toml @@ -0,0 +1,8 @@ +integers2 = [ + 1, 2, 3 +] + +integers3 = [ + 1, + 2, # this is ok +] diff --git a/assets/toml-test/tests/valid/spec/array-of-tables-0.json b/assets/toml-test/tests/valid/spec/array-of-tables-0.json new file mode 100644 index 0000000..2328757 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/array-of-tables-0.json @@ -0,0 +1,29 @@ +{ + "products": [ + { + "name": { + "type": "string", + "value": "Hammer" + }, + "sku": { + "type": "integer", + "value": "738594937" + } + }, + {}, + { + "color": { + "type": "string", + "value": "gray" + }, + "name": { + "type": "string", + "value": "Nail" + }, + "sku": { + "type": "integer", + "value": "284758393" + } + } + ] +} diff --git a/assets/toml-test/tests/valid/spec/array-of-tables-0.toml b/assets/toml-test/tests/valid/spec/array-of-tables-0.toml new file mode 100644 index 0000000..544d142 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/array-of-tables-0.toml @@ -0,0 +1,11 @@ +[[products]] +name = "Hammer" +sku = 738594937 + +[[products]] # empty table within the array + +[[products]] +name = "Nail" +sku = 284758393 + +color = "gray" diff --git a/assets/toml-test/tests/valid/spec/array-of-tables-1.json b/assets/toml-test/tests/valid/spec/array-of-tables-1.json new file mode 100644 index 0000000..17d4918 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/array-of-tables-1.json @@ -0,0 +1,48 @@ +{ + "fruits": [ + { + "name": { + "type": "string", + "value": "apple" + }, + "physical": { + "color": { + "type": "string", + "value": "red" + }, + "shape": { + "type": "string", + "value": "round" + } + }, + "varieties": [ + { + "name": { + "type": "string", + "value": "red delicious" + } + }, + { + "name": { + "type": "string", + "value": "granny smith" + } + } + ] + }, + { + "name": { + "type": "string", + "value": "banana" + }, + "varieties": [ + { + "name": { + "type": "string", + "value": "plantain" + } + } + ] + } + ] +} diff --git a/assets/toml-test/tests/valid/spec/array-of-tables-1.toml b/assets/toml-test/tests/valid/spec/array-of-tables-1.toml new file mode 100644 index 0000000..7a3971f --- /dev/null +++ b/assets/toml-test/tests/valid/spec/array-of-tables-1.toml @@ -0,0 +1,19 @@ +[[fruits]] +name = "apple" + +[fruits.physical] # subtable +color = "red" +shape = "round" + +[[fruits.varieties]] # nested array of tables +name = "red delicious" + +[[fruits.varieties]] +name = "granny smith" + + +[[fruits]] +name = "banana" + +[[fruits.varieties]] +name = "plantain" diff --git a/assets/toml-test/tests/valid/spec/array-of-tables-2.json b/assets/toml-test/tests/valid/spec/array-of-tables-2.json new file mode 100644 index 0000000..f2e3f36 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/array-of-tables-2.json @@ -0,0 +1,46 @@ +{ + "points": [ + { + "x": { + "type": "integer", + "value": "1" + }, + "y": { + "type": "integer", + "value": "2" + }, + "z": { + "type": "integer", + "value": "3" + } + }, + { + "x": { + "type": "integer", + "value": "7" + }, + "y": { + "type": "integer", + "value": "8" + }, + "z": { + "type": "integer", + "value": "9" + } + }, + { + "x": { + "type": "integer", + "value": "2" + }, + "y": { + "type": "integer", + "value": "4" + }, + "z": { + "type": "integer", + "value": "8" + } + } + ] +} diff --git a/assets/toml-test/tests/valid/spec/array-of-tables-2.toml b/assets/toml-test/tests/valid/spec/array-of-tables-2.toml new file mode 100644 index 0000000..ba5584a --- /dev/null +++ b/assets/toml-test/tests/valid/spec/array-of-tables-2.toml @@ -0,0 +1,3 @@ +points = [ { x = 1, y = 2, z = 3 }, + { x = 7, y = 8, z = 9 }, + { x = 2, y = 4, z = 8 } ] diff --git a/assets/toml-test/tests/valid/spec/boolean-0.json b/assets/toml-test/tests/valid/spec/boolean-0.json new file mode 100644 index 0000000..f956ec0 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/boolean-0.json @@ -0,0 +1,10 @@ +{ + "bool1": { + "type": "bool", + "value": "true" + }, + "bool2": { + "type": "bool", + "value": "false" + } +} diff --git a/assets/toml-test/tests/valid/spec/boolean-0.toml b/assets/toml-test/tests/valid/spec/boolean-0.toml new file mode 100644 index 0000000..1f80fbd --- /dev/null +++ b/assets/toml-test/tests/valid/spec/boolean-0.toml @@ -0,0 +1,2 @@ +bool1 = true +bool2 = false diff --git a/assets/toml-test/tests/valid/spec/comment-0.json b/assets/toml-test/tests/valid/spec/comment-0.json new file mode 100644 index 0000000..d979607 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/comment-0.json @@ -0,0 +1,10 @@ +{ + "another": { + "type": "string", + "value": "# This is not a comment" + }, + "key": { + "type": "string", + "value": "value" + } +} diff --git a/assets/toml-test/tests/valid/spec/comment-0.toml b/assets/toml-test/tests/valid/spec/comment-0.toml new file mode 100644 index 0000000..fae57c6 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/comment-0.toml @@ -0,0 +1,3 @@ +# This is a full-line comment +key = "value" # This is a comment at the end of a line +another = "# This is not a comment" diff --git a/assets/toml-test/tests/valid/spec/float-0.json b/assets/toml-test/tests/valid/spec/float-0.json new file mode 100644 index 0000000..ae7d5a5 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/float-0.json @@ -0,0 +1,30 @@ +{ + "flt1": { + "type": "float", + "value": "1" + }, + "flt2": { + "type": "float", + "value": "3.1415" + }, + "flt3": { + "type": "float", + "value": "-0.01" + }, + "flt4": { + "type": "float", + "value": "5e+22" + }, + "flt5": { + "type": "float", + "value": "1e+06" + }, + "flt6": { + "type": "float", + "value": "-0.02" + }, + "flt7": { + "type": "float", + "value": "6.626e-34" + } +} diff --git a/assets/toml-test/tests/valid/spec/float-0.toml b/assets/toml-test/tests/valid/spec/float-0.toml new file mode 100644 index 0000000..7b29c65 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/float-0.toml @@ -0,0 +1,12 @@ +# fractional +flt1 = +1.0 +flt2 = 3.1415 +flt3 = -0.01 + +# exponent +flt4 = 5e+22 +flt5 = 1e06 +flt6 = -2E-2 + +# both +flt7 = 6.626e-34 diff --git a/assets/toml-test/tests/valid/spec/float-1.json b/assets/toml-test/tests/valid/spec/float-1.json new file mode 100644 index 0000000..592a4d2 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/float-1.json @@ -0,0 +1,6 @@ +{ + "flt8": { + "type": "float", + "value": "224617.445991228" + } +} diff --git a/assets/toml-test/tests/valid/spec/float-1.toml b/assets/toml-test/tests/valid/spec/float-1.toml new file mode 100644 index 0000000..3c8f0aa --- /dev/null +++ b/assets/toml-test/tests/valid/spec/float-1.toml @@ -0,0 +1 @@ +flt8 = 224_617.445_991_228 diff --git a/assets/toml-test/tests/valid/spec/float-2.json b/assets/toml-test/tests/valid/spec/float-2.json new file mode 100644 index 0000000..9507720 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/float-2.json @@ -0,0 +1,26 @@ +{ + "sf1": { + "type": "float", + "value": "+Inf" + }, + "sf2": { + "type": "float", + "value": "+Inf" + }, + "sf3": { + "type": "float", + "value": "-Inf" + }, + "sf4": { + "type": "float", + "value": "nan" + }, + "sf5": { + "type": "float", + "value": "nan" + }, + "sf6": { + "type": "float", + "value": "nan" + } +} diff --git a/assets/toml-test/tests/valid/spec/float-2.toml b/assets/toml-test/tests/valid/spec/float-2.toml new file mode 100644 index 0000000..4cede55 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/float-2.toml @@ -0,0 +1,9 @@ +# infinity +sf1 = inf # positive infinity +sf2 = +inf # positive infinity +sf3 = -inf # negative infinity + +# not a number +sf4 = nan # actual sNaN/qNaN encoding is implementation-specific +sf5 = +nan # same as `nan` +sf6 = -nan # valid, actual encoding is implementation-specific diff --git a/assets/toml-test/tests/valid/spec/inline-table-0.json b/assets/toml-test/tests/valid/spec/inline-table-0.json new file mode 100644 index 0000000..8c0d315 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/inline-table-0.json @@ -0,0 +1,30 @@ +{ + "animal": { + "type": { + "name": { + "type": "string", + "value": "pug" + } + } + }, + "name": { + "first": { + "type": "string", + "value": "Tom" + }, + "last": { + "type": "string", + "value": "Preston-Werner" + } + }, + "point": { + "x": { + "type": "integer", + "value": "1" + }, + "y": { + "type": "integer", + "value": "2" + } + } +} diff --git a/assets/toml-test/tests/valid/spec/inline-table-0.toml b/assets/toml-test/tests/valid/spec/inline-table-0.toml new file mode 100644 index 0000000..26062b5 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/inline-table-0.toml @@ -0,0 +1,3 @@ +name = { first = "Tom", last = "Preston-Werner" } +point = { x = 1, y = 2 } +animal = { type.name = "pug" } diff --git a/assets/toml-test/tests/valid/spec/inline-table-1.json b/assets/toml-test/tests/valid/spec/inline-table-1.json new file mode 100644 index 0000000..8c0d315 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/inline-table-1.json @@ -0,0 +1,30 @@ +{ + "animal": { + "type": { + "name": { + "type": "string", + "value": "pug" + } + } + }, + "name": { + "first": { + "type": "string", + "value": "Tom" + }, + "last": { + "type": "string", + "value": "Preston-Werner" + } + }, + "point": { + "x": { + "type": "integer", + "value": "1" + }, + "y": { + "type": "integer", + "value": "2" + } + } +} diff --git a/assets/toml-test/tests/valid/spec/inline-table-1.toml b/assets/toml-test/tests/valid/spec/inline-table-1.toml new file mode 100644 index 0000000..6f72155 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/inline-table-1.toml @@ -0,0 +1,10 @@ +[name] +first = "Tom" +last = "Preston-Werner" + +[point] +x = 1 +y = 2 + +[animal] +type.name = "pug" diff --git a/assets/toml-test/tests/valid/spec/inline-table-2.json b/assets/toml-test/tests/valid/spec/inline-table-2.json new file mode 100644 index 0000000..406691d --- /dev/null +++ b/assets/toml-test/tests/valid/spec/inline-table-2.json @@ -0,0 +1,10 @@ +{ + "product": { + "type": { + "name": { + "type": "string", + "value": "Nail" + } + } + } +} diff --git a/assets/toml-test/tests/valid/spec/inline-table-2.toml b/assets/toml-test/tests/valid/spec/inline-table-2.toml new file mode 100644 index 0000000..aabb500 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/inline-table-2.toml @@ -0,0 +1,3 @@ +[product] +type = { name = "Nail" } +# type.edible = false # INVALID diff --git a/assets/toml-test/tests/valid/spec/inline-table-3.json b/assets/toml-test/tests/valid/spec/inline-table-3.json new file mode 100644 index 0000000..406691d --- /dev/null +++ b/assets/toml-test/tests/valid/spec/inline-table-3.json @@ -0,0 +1,10 @@ +{ + "product": { + "type": { + "name": { + "type": "string", + "value": "Nail" + } + } + } +} diff --git a/assets/toml-test/tests/valid/spec/inline-table-3.toml b/assets/toml-test/tests/valid/spec/inline-table-3.toml new file mode 100644 index 0000000..970949c --- /dev/null +++ b/assets/toml-test/tests/valid/spec/inline-table-3.toml @@ -0,0 +1,3 @@ +[product] +type.name = "Nail" +# type = { edible = false } # INVALID diff --git a/assets/toml-test/tests/valid/spec/integer-0.json b/assets/toml-test/tests/valid/spec/integer-0.json new file mode 100644 index 0000000..72cbbbb --- /dev/null +++ b/assets/toml-test/tests/valid/spec/integer-0.json @@ -0,0 +1,18 @@ +{ + "int1": { + "type": "integer", + "value": "99" + }, + "int2": { + "type": "integer", + "value": "42" + }, + "int3": { + "type": "integer", + "value": "0" + }, + "int4": { + "type": "integer", + "value": "-17" + } +} diff --git a/assets/toml-test/tests/valid/spec/integer-0.toml b/assets/toml-test/tests/valid/spec/integer-0.toml new file mode 100644 index 0000000..da14ea2 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/integer-0.toml @@ -0,0 +1,4 @@ +int1 = +99 +int2 = 42 +int3 = 0 +int4 = -17 diff --git a/assets/toml-test/tests/valid/spec/integer-1.json b/assets/toml-test/tests/valid/spec/integer-1.json new file mode 100644 index 0000000..f431f47 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/integer-1.json @@ -0,0 +1,18 @@ +{ + "int5": { + "type": "integer", + "value": "1000" + }, + "int6": { + "type": "integer", + "value": "5349221" + }, + "int7": { + "type": "integer", + "value": "5349221" + }, + "int8": { + "type": "integer", + "value": "12345" + } +} diff --git a/assets/toml-test/tests/valid/spec/integer-1.toml b/assets/toml-test/tests/valid/spec/integer-1.toml new file mode 100644 index 0000000..0c4b619 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/integer-1.toml @@ -0,0 +1,4 @@ +int5 = 1_000 +int6 = 5_349_221 +int7 = 53_49_221 # Indian number system grouping +int8 = 1_2_3_4_5 # VALID but discouraged diff --git a/assets/toml-test/tests/valid/spec/integer-2.json b/assets/toml-test/tests/valid/spec/integer-2.json new file mode 100644 index 0000000..b937b2b --- /dev/null +++ b/assets/toml-test/tests/valid/spec/integer-2.json @@ -0,0 +1,26 @@ +{ + "bin1": { + "type": "integer", + "value": "214" + }, + "hex1": { + "type": "integer", + "value": "3735928559" + }, + "hex2": { + "type": "integer", + "value": "3735928559" + }, + "hex3": { + "type": "integer", + "value": "3735928559" + }, + "oct1": { + "type": "integer", + "value": "342391" + }, + "oct2": { + "type": "integer", + "value": "493" + } +} diff --git a/assets/toml-test/tests/valid/spec/integer-2.toml b/assets/toml-test/tests/valid/spec/integer-2.toml new file mode 100644 index 0000000..ecffca6 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/integer-2.toml @@ -0,0 +1,11 @@ +# hexadecimal with prefix `0x` +hex1 = 0xDEADBEEF +hex2 = 0xdeadbeef +hex3 = 0xdead_beef + +# octal with prefix `0o` +oct1 = 0o01234567 +oct2 = 0o755 # useful for Unix file permissions + +# binary with prefix `0b` +bin1 = 0b11010110 diff --git a/assets/toml-test/tests/valid/spec/key-value-pair-0.json b/assets/toml-test/tests/valid/spec/key-value-pair-0.json new file mode 100644 index 0000000..af3154a --- /dev/null +++ b/assets/toml-test/tests/valid/spec/key-value-pair-0.json @@ -0,0 +1,6 @@ +{ + "key": { + "type": "string", + "value": "value" + } +} diff --git a/assets/toml-test/tests/valid/spec/key-value-pair-0.toml b/assets/toml-test/tests/valid/spec/key-value-pair-0.toml new file mode 100644 index 0000000..e5b34eb --- /dev/null +++ b/assets/toml-test/tests/valid/spec/key-value-pair-0.toml @@ -0,0 +1 @@ +key = "value" diff --git a/assets/toml-test/tests/valid/spec/keys-0.json b/assets/toml-test/tests/valid/spec/keys-0.json new file mode 100644 index 0000000..6130c71 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-0.json @@ -0,0 +1,18 @@ +{ + "1234": { + "type": "string", + "value": "value" + }, + "bare-key": { + "type": "string", + "value": "value" + }, + "bare_key": { + "type": "string", + "value": "value" + }, + "key": { + "type": "string", + "value": "value" + } +} diff --git a/assets/toml-test/tests/valid/spec/keys-0.toml b/assets/toml-test/tests/valid/spec/keys-0.toml new file mode 100644 index 0000000..657ff24 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-0.toml @@ -0,0 +1,4 @@ +key = "value" +bare_key = "value" +bare-key = "value" +1234 = "value" diff --git a/assets/toml-test/tests/valid/spec/keys-1.json b/assets/toml-test/tests/valid/spec/keys-1.json new file mode 100644 index 0000000..fb75603 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-1.json @@ -0,0 +1,22 @@ +{ + "127.0.0.1": { + "type": "string", + "value": "value" + }, + "character encoding": { + "type": "string", + "value": "value" + }, + "key2": { + "type": "string", + "value": "value" + }, + "quoted \"value\"": { + "type": "string", + "value": "value" + }, + "ʎǝʞ": { + "type": "string", + "value": "value" + } +} diff --git a/assets/toml-test/tests/valid/spec/keys-1.toml b/assets/toml-test/tests/valid/spec/keys-1.toml new file mode 100644 index 0000000..cc2d1d0 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-1.toml @@ -0,0 +1,5 @@ +"127.0.0.1" = "value" +"character encoding" = "value" +"ʎǝʞ" = "value" +'key2' = "value" +'quoted "value"' = "value" diff --git a/assets/toml-test/tests/valid/spec/keys-3.json b/assets/toml-test/tests/valid/spec/keys-3.json new file mode 100644 index 0000000..b8ee719 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-3.json @@ -0,0 +1,22 @@ +{ + "name": { + "type": "string", + "value": "Orange" + }, + "physical": { + "color": { + "type": "string", + "value": "orange" + }, + "shape": { + "type": "string", + "value": "round" + } + }, + "site": { + "google.com": { + "type": "bool", + "value": "true" + } + } +} diff --git a/assets/toml-test/tests/valid/spec/keys-3.toml b/assets/toml-test/tests/valid/spec/keys-3.toml new file mode 100644 index 0000000..8f83571 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-3.toml @@ -0,0 +1,4 @@ +name = "Orange" +physical.color = "orange" +physical.shape = "round" +site."google.com" = true diff --git a/assets/toml-test/tests/valid/spec/keys-4.json b/assets/toml-test/tests/valid/spec/keys-4.json new file mode 100644 index 0000000..c33966a --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-4.json @@ -0,0 +1,16 @@ +{ + "fruit": { + "color": { + "type": "string", + "value": "yellow" + }, + "flavor": { + "type": "string", + "value": "banana" + }, + "name": { + "type": "string", + "value": "banana" + } + } +} diff --git a/assets/toml-test/tests/valid/spec/keys-4.toml b/assets/toml-test/tests/valid/spec/keys-4.toml new file mode 100644 index 0000000..75bf90b --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-4.toml @@ -0,0 +1,3 @@ +fruit.name = "banana" # this is best practice +fruit. color = "yellow" # same as fruit.color +fruit . flavor = "banana" # same as fruit.flavor diff --git a/assets/toml-test/tests/valid/spec/keys-5.json b/assets/toml-test/tests/valid/spec/keys-5.json new file mode 100644 index 0000000..482b362 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-5.json @@ -0,0 +1,30 @@ +{ + "apple": { + "color": { + "type": "string", + "value": "red" + }, + "skin": { + "type": "string", + "value": "thin" + }, + "type": { + "type": "string", + "value": "fruit" + } + }, + "orange": { + "color": { + "type": "string", + "value": "orange" + }, + "skin": { + "type": "string", + "value": "thick" + }, + "type": { + "type": "string", + "value": "fruit" + } + } +} diff --git a/assets/toml-test/tests/valid/spec/keys-5.toml b/assets/toml-test/tests/valid/spec/keys-5.toml new file mode 100644 index 0000000..dc94a8c --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-5.toml @@ -0,0 +1,10 @@ +# VALID BUT DISCOURAGED + +apple.type = "fruit" +orange.type = "fruit" + +apple.skin = "thin" +orange.skin = "thick" + +apple.color = "red" +orange.color = "orange" diff --git a/assets/toml-test/tests/valid/spec/keys-6.json b/assets/toml-test/tests/valid/spec/keys-6.json new file mode 100644 index 0000000..482b362 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-6.json @@ -0,0 +1,30 @@ +{ + "apple": { + "color": { + "type": "string", + "value": "red" + }, + "skin": { + "type": "string", + "value": "thin" + }, + "type": { + "type": "string", + "value": "fruit" + } + }, + "orange": { + "color": { + "type": "string", + "value": "orange" + }, + "skin": { + "type": "string", + "value": "thick" + }, + "type": { + "type": "string", + "value": "fruit" + } + } +} diff --git a/assets/toml-test/tests/valid/spec/keys-6.toml b/assets/toml-test/tests/valid/spec/keys-6.toml new file mode 100644 index 0000000..705686c --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-6.toml @@ -0,0 +1,9 @@ +# RECOMMENDED + +apple.type = "fruit" +apple.skin = "thin" +apple.color = "red" + +orange.type = "fruit" +orange.skin = "thick" +orange.color = "orange" diff --git a/assets/toml-test/tests/valid/spec/keys-7.json b/assets/toml-test/tests/valid/spec/keys-7.json new file mode 100644 index 0000000..5ab0e06 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-7.json @@ -0,0 +1,8 @@ +{ + "3": { + "14159": { + "type": "string", + "value": "pi" + } + } +} diff --git a/assets/toml-test/tests/valid/spec/keys-7.toml b/assets/toml-test/tests/valid/spec/keys-7.toml new file mode 100644 index 0000000..2efd659 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/keys-7.toml @@ -0,0 +1 @@ +3.14159 = "pi" diff --git a/assets/toml-test/tests/valid/spec/local-date-0.json b/assets/toml-test/tests/valid/spec/local-date-0.json new file mode 100644 index 0000000..9e281f5 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/local-date-0.json @@ -0,0 +1,6 @@ +{ + "ld1": { + "type": "date-local", + "value": "1979-05-27" + } +} diff --git a/assets/toml-test/tests/valid/spec/local-date-0.toml b/assets/toml-test/tests/valid/spec/local-date-0.toml new file mode 100644 index 0000000..6670e5d --- /dev/null +++ b/assets/toml-test/tests/valid/spec/local-date-0.toml @@ -0,0 +1 @@ +ld1 = 1979-05-27 diff --git a/assets/toml-test/tests/valid/spec/local-date-time-0.json b/assets/toml-test/tests/valid/spec/local-date-time-0.json new file mode 100644 index 0000000..d42d49d --- /dev/null +++ b/assets/toml-test/tests/valid/spec/local-date-time-0.json @@ -0,0 +1,10 @@ +{ + "ldt1": { + "type": "datetime-local", + "value": "1979-05-27T07:32:00" + }, + "ldt2": { + "type": "datetime-local", + "value": "1979-05-27T00:32:00.999999" + } +} diff --git a/assets/toml-test/tests/valid/spec/local-date-time-0.toml b/assets/toml-test/tests/valid/spec/local-date-time-0.toml new file mode 100644 index 0000000..38700d2 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/local-date-time-0.toml @@ -0,0 +1,2 @@ +ldt1 = 1979-05-27T07:32:00 +ldt2 = 1979-05-27T00:32:00.999999 diff --git a/assets/toml-test/tests/valid/spec/local-time-0.json b/assets/toml-test/tests/valid/spec/local-time-0.json new file mode 100644 index 0000000..93803fc --- /dev/null +++ b/assets/toml-test/tests/valid/spec/local-time-0.json @@ -0,0 +1,10 @@ +{ + "lt1": { + "type": "time-local", + "value": "07:32:00" + }, + "lt2": { + "type": "time-local", + "value": "00:32:00.999999" + } +} diff --git a/assets/toml-test/tests/valid/spec/local-time-0.toml b/assets/toml-test/tests/valid/spec/local-time-0.toml new file mode 100644 index 0000000..dbd058a --- /dev/null +++ b/assets/toml-test/tests/valid/spec/local-time-0.toml @@ -0,0 +1,2 @@ +lt1 = 07:32:00 +lt2 = 00:32:00.999999 diff --git a/assets/toml-test/tests/valid/spec/offset-date-time-0.json b/assets/toml-test/tests/valid/spec/offset-date-time-0.json new file mode 100644 index 0000000..26d59a8 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/offset-date-time-0.json @@ -0,0 +1,14 @@ +{ + "odt1": { + "type": "datetime", + "value": "1979-05-27T07:32:00Z" + }, + "odt2": { + "type": "datetime", + "value": "1979-05-27T00:32:00-07:00" + }, + "odt3": { + "type": "datetime", + "value": "1979-05-27T00:32:00.999999-07:00" + } +} diff --git a/assets/toml-test/tests/valid/spec/offset-date-time-0.toml b/assets/toml-test/tests/valid/spec/offset-date-time-0.toml new file mode 100644 index 0000000..52eaff2 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/offset-date-time-0.toml @@ -0,0 +1,3 @@ +odt1 = 1979-05-27T07:32:00Z +odt2 = 1979-05-27T00:32:00-07:00 +odt3 = 1979-05-27T00:32:00.999999-07:00 diff --git a/assets/toml-test/tests/valid/spec/offset-date-time-1.json b/assets/toml-test/tests/valid/spec/offset-date-time-1.json new file mode 100644 index 0000000..fa17a4e --- /dev/null +++ b/assets/toml-test/tests/valid/spec/offset-date-time-1.json @@ -0,0 +1,6 @@ +{ + "odt4": { + "type": "datetime", + "value": "1979-05-27T07:32:00Z" + } +} diff --git a/assets/toml-test/tests/valid/spec/offset-date-time-1.toml b/assets/toml-test/tests/valid/spec/offset-date-time-1.toml new file mode 100644 index 0000000..da9bd3b --- /dev/null +++ b/assets/toml-test/tests/valid/spec/offset-date-time-1.toml @@ -0,0 +1 @@ +odt4 = 1979-05-27 07:32:00Z diff --git a/assets/toml-test/tests/valid/spec/string-0.json b/assets/toml-test/tests/valid/spec/string-0.json new file mode 100644 index 0000000..3c26fa1 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-0.json @@ -0,0 +1,6 @@ +{ + "str": { + "type": "string", + "value": "I'm a string. \"You can quote me\". Name\tJosé\nLocation\tSF." + } +} diff --git a/assets/toml-test/tests/valid/spec/string-0.toml b/assets/toml-test/tests/valid/spec/string-0.toml new file mode 100644 index 0000000..b611549 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-0.toml @@ -0,0 +1 @@ +str = "I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF." diff --git a/assets/toml-test/tests/valid/spec/string-1.json b/assets/toml-test/tests/valid/spec/string-1.json new file mode 100644 index 0000000..316d0f4 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-1.json @@ -0,0 +1,6 @@ +{ + "str1": { + "type": "string", + "value": "Roses are red\nViolets are blue" + } +} diff --git a/assets/toml-test/tests/valid/spec/string-1.toml b/assets/toml-test/tests/valid/spec/string-1.toml new file mode 100644 index 0000000..337ad08 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-1.toml @@ -0,0 +1,3 @@ +str1 = """ +Roses are red +Violets are blue""" diff --git a/assets/toml-test/tests/valid/spec/string-2.json b/assets/toml-test/tests/valid/spec/string-2.json new file mode 100644 index 0000000..09faeb6 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-2.json @@ -0,0 +1,10 @@ +{ + "str2": { + "type": "string", + "value": "Roses are red\nViolets are blue" + }, + "str3": { + "type": "string", + "value": "Roses are red\r\nViolets are blue" + } +} diff --git a/assets/toml-test/tests/valid/spec/string-2.toml b/assets/toml-test/tests/valid/spec/string-2.toml new file mode 100644 index 0000000..ce5a73b --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-2.toml @@ -0,0 +1,5 @@ +# On a Unix system, the above multi-line string will most likely be the same as: +str2 = "Roses are red\nViolets are blue" + +# On a Windows system, it will most likely be equivalent to: +str3 = "Roses are red\r\nViolets are blue" diff --git a/assets/toml-test/tests/valid/spec/string-3.json b/assets/toml-test/tests/valid/spec/string-3.json new file mode 100644 index 0000000..c55424f --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-3.json @@ -0,0 +1,14 @@ +{ + "str1": { + "type": "string", + "value": "The quick brown fox jumps over the lazy dog." + }, + "str2": { + "type": "string", + "value": "The quick brown fox jumps over the lazy dog." + }, + "str3": { + "type": "string", + "value": "The quick brown fox jumps over the lazy dog." + } +} diff --git a/assets/toml-test/tests/valid/spec/string-3.toml b/assets/toml-test/tests/valid/spec/string-3.toml new file mode 100644 index 0000000..20b4aa7 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-3.toml @@ -0,0 +1,15 @@ +# The following strings are byte-for-byte equivalent: +str1 = "The quick brown fox jumps over the lazy dog." + +str2 = """ +The quick brown \ + + + fox jumps over \ + the lazy dog.""" + +str3 = """\ + The quick brown \ + fox jumps over \ + the lazy dog.\ + """ diff --git a/assets/toml-test/tests/valid/spec/string-4.json b/assets/toml-test/tests/valid/spec/string-4.json new file mode 100644 index 0000000..52ddb19 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-4.json @@ -0,0 +1,18 @@ +{ + "str4": { + "type": "string", + "value": "Here are two quotation marks: \"\". Simple enough." + }, + "str5": { + "type": "string", + "value": "Here are three quotation marks: \"\"\"." + }, + "str6": { + "type": "string", + "value": "Here are fifteen quotation marks: \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"." + }, + "str7": { + "type": "string", + "value": "\"This,\" she said, \"is just a pointless statement.\"" + } +} diff --git a/assets/toml-test/tests/valid/spec/string-4.toml b/assets/toml-test/tests/valid/spec/string-4.toml new file mode 100644 index 0000000..8f51b11 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-4.toml @@ -0,0 +1,7 @@ +str4 = """Here are two quotation marks: "". Simple enough.""" +# str5 = """Here are three quotation marks: """.""" # INVALID +str5 = """Here are three quotation marks: ""\".""" +str6 = """Here are fifteen quotation marks: ""\"""\"""\"""\"""\".""" + +# "This," she said, "is just a pointless statement." +str7 = """"This," she said, "is just a pointless statement."""" diff --git a/assets/toml-test/tests/valid/spec/string-5.json b/assets/toml-test/tests/valid/spec/string-5.json new file mode 100644 index 0000000..bce72d9 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-5.json @@ -0,0 +1,18 @@ +{ + "quoted": { + "type": "string", + "value": "Tom \"Dubs\" Preston-Werner" + }, + "regex": { + "type": "string", + "value": "\u003c\\i\\c*\\s*\u003e" + }, + "winpath": { + "type": "string", + "value": "C:\\Users\\nodejs\\templates" + }, + "winpath2": { + "type": "string", + "value": "\\\\ServerX\\admin$\\system32\\" + } +} diff --git a/assets/toml-test/tests/valid/spec/string-5.toml b/assets/toml-test/tests/valid/spec/string-5.toml new file mode 100644 index 0000000..36772bb --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-5.toml @@ -0,0 +1,5 @@ +# What you see is what you get. +winpath = 'C:\Users\nodejs\templates' +winpath2 = '\\ServerX\admin$\system32\' +quoted = 'Tom "Dubs" Preston-Werner' +regex = '<\i\c*\s*>' diff --git a/assets/toml-test/tests/valid/spec/string-6.json b/assets/toml-test/tests/valid/spec/string-6.json new file mode 100644 index 0000000..aa7663e --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-6.json @@ -0,0 +1,10 @@ +{ + "lines": { + "type": "string", + "value": "The first newline is\ntrimmed in raw strings.\n All other whitespace\n is preserved.\n" + }, + "regex2": { + "type": "string", + "value": "I [dw]on't need \\d{2} apples" + } +} diff --git a/assets/toml-test/tests/valid/spec/string-6.toml b/assets/toml-test/tests/valid/spec/string-6.toml new file mode 100644 index 0000000..bc88494 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-6.toml @@ -0,0 +1,7 @@ +regex2 = '''I [dw]on't need \d{2} apples''' +lines = ''' +The first newline is +trimmed in raw strings. + All other whitespace + is preserved. +''' diff --git a/assets/toml-test/tests/valid/spec/string-7.json b/assets/toml-test/tests/valid/spec/string-7.json new file mode 100644 index 0000000..ad0fff2 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-7.json @@ -0,0 +1,14 @@ +{ + "apos15": { + "type": "string", + "value": "Here are fifteen apostrophes: '''''''''''''''" + }, + "quot15": { + "type": "string", + "value": "Here are fifteen quotation marks: \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"" + }, + "str": { + "type": "string", + "value": "'That,' she said, 'is still pointless.'" + } +} diff --git a/assets/toml-test/tests/valid/spec/string-7.toml b/assets/toml-test/tests/valid/spec/string-7.toml new file mode 100644 index 0000000..82890b0 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/string-7.toml @@ -0,0 +1,7 @@ +quot15 = '''Here are fifteen quotation marks: """""""""""""""''' + +# apos15 = '''Here are fifteen apostrophes: '''''''''''''''''' # INVALID +apos15 = "Here are fifteen apostrophes: '''''''''''''''" + +# 'That,' she said, 'is still pointless.' +str = ''''That,' she said, 'is still pointless.'''' diff --git a/assets/toml-test/tests/valid/spec/table-0.json b/assets/toml-test/tests/valid/spec/table-0.json new file mode 100644 index 0000000..b6e7fb5 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-0.json @@ -0,0 +1,3 @@ +{ + "table": {} +} diff --git a/assets/toml-test/tests/valid/spec/table-0.toml b/assets/toml-test/tests/valid/spec/table-0.toml new file mode 100644 index 0000000..f1098fd --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-0.toml @@ -0,0 +1 @@ +[table] diff --git a/assets/toml-test/tests/valid/spec/table-1.json b/assets/toml-test/tests/valid/spec/table-1.json new file mode 100644 index 0000000..f8521e0 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-1.json @@ -0,0 +1,22 @@ +{ + "table-1": { + "key1": { + "type": "string", + "value": "some string" + }, + "key2": { + "type": "integer", + "value": "123" + } + }, + "table-2": { + "key1": { + "type": "string", + "value": "another string" + }, + "key2": { + "type": "integer", + "value": "456" + } + } +} diff --git a/assets/toml-test/tests/valid/spec/table-1.toml b/assets/toml-test/tests/valid/spec/table-1.toml new file mode 100644 index 0000000..6b4884c --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-1.toml @@ -0,0 +1,7 @@ +[table-1] +key1 = "some string" +key2 = 123 + +[table-2] +key1 = "another string" +key2 = 456 diff --git a/assets/toml-test/tests/valid/spec/table-2.json b/assets/toml-test/tests/valid/spec/table-2.json new file mode 100644 index 0000000..afb74d5 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-2.json @@ -0,0 +1,12 @@ +{ + "dog": { + "tater.man": { + "type": { + "name": { + "type": "string", + "value": "pug" + } + } + } + } +} diff --git a/assets/toml-test/tests/valid/spec/table-2.toml b/assets/toml-test/tests/valid/spec/table-2.toml new file mode 100644 index 0000000..32cbe79 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-2.toml @@ -0,0 +1,2 @@ +[dog."tater.man"] +type.name = "pug" diff --git a/assets/toml-test/tests/valid/spec/table-3.json b/assets/toml-test/tests/valid/spec/table-3.json new file mode 100644 index 0000000..0e40e3f --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-3.json @@ -0,0 +1,22 @@ +{ + "a": { + "b": { + "c": {} + } + }, + "d": { + "e": { + "f": {} + } + }, + "g": { + "h": { + "i": {} + } + }, + "j": { + "ʞ": { + "l": {} + } + } +} diff --git a/assets/toml-test/tests/valid/spec/table-3.toml b/assets/toml-test/tests/valid/spec/table-3.toml new file mode 100644 index 0000000..0b10db3 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-3.toml @@ -0,0 +1,4 @@ +[a.b.c] # this is best practice +[ d.e.f ] # same as [d.e.f] +[ g . h . i ] # same as [g.h.i] +[ j . "ʞ" . 'l' ] # same as [j."ʞ".'l'] diff --git a/assets/toml-test/tests/valid/spec/table-4.json b/assets/toml-test/tests/valid/spec/table-4.json new file mode 100644 index 0000000..3c390c6 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-4.json @@ -0,0 +1,9 @@ +{ + "x": { + "y": { + "z": { + "w": {} + } + } + } +} diff --git a/assets/toml-test/tests/valid/spec/table-4.toml b/assets/toml-test/tests/valid/spec/table-4.toml new file mode 100644 index 0000000..256e6c0 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-4.toml @@ -0,0 +1,6 @@ +# [x] you +# [x.y] don't +# [x.y.z] need these +[x.y.z.w] # for this to work + +[x] # defining a super-table afterward is ok diff --git a/assets/toml-test/tests/valid/spec/table-5.json b/assets/toml-test/tests/valid/spec/table-5.json new file mode 100644 index 0000000..2ec8407 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-5.json @@ -0,0 +1,7 @@ +{ + "animal": {}, + "fruit": { + "apple": {}, + "orange": {} + } +} diff --git a/assets/toml-test/tests/valid/spec/table-5.toml b/assets/toml-test/tests/valid/spec/table-5.toml new file mode 100644 index 0000000..03fe3a3 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-5.toml @@ -0,0 +1,4 @@ +# VALID BUT DISCOURAGED +[fruit.apple] +[animal] +[fruit.orange] diff --git a/assets/toml-test/tests/valid/spec/table-6.json b/assets/toml-test/tests/valid/spec/table-6.json new file mode 100644 index 0000000..2ec8407 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-6.json @@ -0,0 +1,7 @@ +{ + "animal": {}, + "fruit": { + "apple": {}, + "orange": {} + } +} diff --git a/assets/toml-test/tests/valid/spec/table-6.toml b/assets/toml-test/tests/valid/spec/table-6.toml new file mode 100644 index 0000000..ef330e4 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-6.toml @@ -0,0 +1,4 @@ +# RECOMMENDED +[fruit.apple] +[fruit.orange] +[animal] diff --git a/assets/toml-test/tests/valid/spec/table-7.json b/assets/toml-test/tests/valid/spec/table-7.json new file mode 100644 index 0000000..3bdfe95 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-7.json @@ -0,0 +1,20 @@ +{ + "breed": { + "type": "string", + "value": "pug" + }, + "name": { + "type": "string", + "value": "Fido" + }, + "owner": { + "member_since": { + "type": "date-local", + "value": "1999-08-04" + }, + "name": { + "type": "string", + "value": "Regina Dogman" + } + } +} diff --git a/assets/toml-test/tests/valid/spec/table-7.toml b/assets/toml-test/tests/valid/spec/table-7.toml new file mode 100644 index 0000000..c57a229 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-7.toml @@ -0,0 +1,8 @@ +# Top-level table begins. +name = "Fido" +breed = "pug" + +# Top-level table ends. +[owner] +name = "Regina Dogman" +member_since = 1999-08-04 diff --git a/assets/toml-test/tests/valid/spec/table-8.json b/assets/toml-test/tests/valid/spec/table-8.json new file mode 100644 index 0000000..dd59a51 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-8.json @@ -0,0 +1,16 @@ +{ + "fruit": { + "apple": { + "color": { + "type": "string", + "value": "red" + }, + "taste": { + "sweet": { + "type": "bool", + "value": "true" + } + } + } + } +} diff --git a/assets/toml-test/tests/valid/spec/table-8.toml b/assets/toml-test/tests/valid/spec/table-8.toml new file mode 100644 index 0000000..d5a2c11 --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-8.toml @@ -0,0 +1,7 @@ +fruit.apple.color = "red" +# Defines a table named fruit +# Defines a table named fruit.apple + +fruit.apple.taste.sweet = true +# Defines a table named fruit.apple.taste +# fruit and fruit.apple were already created diff --git a/assets/toml-test/tests/valid/spec/table-9.json b/assets/toml-test/tests/valid/spec/table-9.json new file mode 100644 index 0000000..89e8d5e --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-9.json @@ -0,0 +1,22 @@ +{ + "fruit": { + "apple": { + "color": { + "type": "string", + "value": "red" + }, + "taste": { + "sweet": { + "type": "bool", + "value": "true" + } + }, + "texture": { + "smooth": { + "type": "bool", + "value": "true" + } + } + } + } +} diff --git a/assets/toml-test/tests/valid/spec/table-9.toml b/assets/toml-test/tests/valid/spec/table-9.toml new file mode 100644 index 0000000..ae2d65b --- /dev/null +++ b/assets/toml-test/tests/valid/spec/table-9.toml @@ -0,0 +1,9 @@ +[fruit] +apple.color = "red" +apple.taste.sweet = true + +# [fruit.apple] # INVALID +# [fruit.apple.taste] # INVALID + +[fruit.apple.texture] # you can add sub-tables +smooth = true diff --git a/assets/toml-test/tests/valid/string/double-quote-escape.json b/assets/toml-test/tests/valid/string/double-quote-escape.json new file mode 100644 index 0000000..0c4ac37 --- /dev/null +++ b/assets/toml-test/tests/valid/string/double-quote-escape.json @@ -0,0 +1,6 @@ +{ + "test": { + "type": "string", + "value": "\"one\"" + } +} diff --git a/assets/toml-test/tests/valid/string/double-quote-escape.toml b/assets/toml-test/tests/valid/string/double-quote-escape.toml new file mode 100644 index 0000000..78e7e72 --- /dev/null +++ b/assets/toml-test/tests/valid/string/double-quote-escape.toml @@ -0,0 +1 @@ +test = "\"one\"" diff --git a/assets/toml-test/tests/valid/string/empty.json b/assets/toml-test/tests/valid/string/empty.json new file mode 100644 index 0000000..efe96c3 --- /dev/null +++ b/assets/toml-test/tests/valid/string/empty.json @@ -0,0 +1,6 @@ +{ + "answer": { + "type": "string", + "value": "" + } +} diff --git a/assets/toml-test/tests/valid/string/empty.toml b/assets/toml-test/tests/valid/string/empty.toml new file mode 100644 index 0000000..e37e681 --- /dev/null +++ b/assets/toml-test/tests/valid/string/empty.toml @@ -0,0 +1 @@ +answer = "" diff --git a/assets/toml-test/tests/valid/string/escape-esc.json b/assets/toml-test/tests/valid/string/escape-esc.json new file mode 100644 index 0000000..be39241 --- /dev/null +++ b/assets/toml-test/tests/valid/string/escape-esc.json @@ -0,0 +1,6 @@ +{ + "esc": { + "type": "string", + "value": "\u001b There is no escape! \u001b" + } +} diff --git a/assets/toml-test/tests/valid/string/escape-esc.toml b/assets/toml-test/tests/valid/string/escape-esc.toml new file mode 100644 index 0000000..1e158fe --- /dev/null +++ b/assets/toml-test/tests/valid/string/escape-esc.toml @@ -0,0 +1 @@ +esc = "\e There is no escape! \e" diff --git a/assets/toml-test/tests/valid/string/escape-tricky.json b/assets/toml-test/tests/valid/string/escape-tricky.json new file mode 100644 index 0000000..572e0a5 --- /dev/null +++ b/assets/toml-test/tests/valid/string/escape-tricky.json @@ -0,0 +1,30 @@ +{ + "end_esc": { + "type": "string", + "value": "String does not end here\" but ends here\\" + }, + "lit_end_esc": { + "type": "string", + "value": "String ends here\\" + }, + "lit_multiline_end": { + "type": "string", + "value": "There is no escape\\" + }, + "lit_multiline_not_unicode": { + "type": "string", + "value": "\\u007f" + }, + "multiline_end_esc": { + "type": "string", + "value": "When will it end? \"\"\"...\"\"\" should be here\"" + }, + "multiline_not_unicode": { + "type": "string", + "value": "\\u0041" + }, + "multiline_unicode": { + "type": "string", + "value": " " + } +} diff --git a/assets/toml-test/tests/valid/string/escape-tricky.toml b/assets/toml-test/tests/valid/string/escape-tricky.toml new file mode 100644 index 0000000..dc204cb --- /dev/null +++ b/assets/toml-test/tests/valid/string/escape-tricky.toml @@ -0,0 +1,15 @@ +end_esc = "String does not end here\" but ends here\\" +lit_end_esc = 'String ends here\' + +multiline_unicode = """ +\u00a0""" + +multiline_not_unicode = """ +\\u0041""" + +multiline_end_esc = """When will it end? \"""...""\" should be here\"""" + +lit_multiline_not_unicode = ''' +\u007f''' + +lit_multiline_end = '''There is no escape\''' diff --git a/assets/toml-test/tests/valid/string/escaped-escape.json b/assets/toml-test/tests/valid/string/escaped-escape.json new file mode 100644 index 0000000..112c0c9 --- /dev/null +++ b/assets/toml-test/tests/valid/string/escaped-escape.json @@ -0,0 +1,6 @@ +{ + "answer": { + "type": "string", + "value": "\\x64" + } +} diff --git a/assets/toml-test/tests/valid/string/escaped-escape.toml b/assets/toml-test/tests/valid/string/escaped-escape.toml new file mode 100644 index 0000000..d575876 --- /dev/null +++ b/assets/toml-test/tests/valid/string/escaped-escape.toml @@ -0,0 +1 @@ +answer = "\\x64" diff --git a/assets/toml-test/tests/valid/string/escapes.json b/assets/toml-test/tests/valid/string/escapes.json new file mode 100644 index 0000000..d849574 --- /dev/null +++ b/assets/toml-test/tests/valid/string/escapes.json @@ -0,0 +1,54 @@ +{ + "backslash": { + "type": "string", + "value": "This string has a \\ backslash character." + }, + "backspace": { + "type": "string", + "value": "This string has a \u0008 backspace character." + }, + "carriage": { + "type": "string", + "value": "This string has a \r carriage return character." + }, + "delete": { + "type": "string", + "value": "This string has a  delete control code." + }, + "formfeed": { + "type": "string", + "value": "This string has a \u000c form feed character." + }, + "newline": { + "type": "string", + "value": "This string has a \n new line character." + }, + "notunicode1": { + "type": "string", + "value": "This string does not have a unicode \\u escape." + }, + "notunicode2": { + "type": "string", + "value": "This string does not have a unicode \\u escape." + }, + "notunicode3": { + "type": "string", + "value": "This string does not have a unicode \\u0075 escape." + }, + "notunicode4": { + "type": "string", + "value": "This string does not have a unicode \\u escape." + }, + "quote": { + "type": "string", + "value": "This string has a \" quote character." + }, + "tab": { + "type": "string", + "value": "This string has a \t tab character." + }, + "unitseparator": { + "type": "string", + "value": "This string has a \u001f unit separator control code." + } +} diff --git a/assets/toml-test/tests/valid/string/escapes.toml b/assets/toml-test/tests/valid/string/escapes.toml new file mode 100644 index 0000000..78f7ebd --- /dev/null +++ b/assets/toml-test/tests/valid/string/escapes.toml @@ -0,0 +1,13 @@ +backspace = "This string has a \b backspace character." +tab = "This string has a \t tab character." +newline = "This string has a \n new line character." +formfeed = "This string has a \f form feed character." +carriage = "This string has a \r carriage return character." +quote = "This string has a \" quote character." +backslash = "This string has a \\ backslash character." +notunicode1 = "This string does not have a unicode \\u escape." +notunicode2 = "This string does not have a unicode \u005Cu escape." +notunicode3 = "This string does not have a unicode \\u0075 escape." +notunicode4 = "This string does not have a unicode \\\u0075 escape." +delete = "This string has a \u007F delete control code." +unitseparator = "This string has a \u001F unit separator control code." diff --git a/assets/toml-test/tests/valid/string/hex-escape.json b/assets/toml-test/tests/valid/string/hex-escape.json new file mode 100644 index 0000000..0eae986 --- /dev/null +++ b/assets/toml-test/tests/valid/string/hex-escape.json @@ -0,0 +1,34 @@ +{ + "bs": { + "type": "string", + "value": "" + }, + "hello": { + "type": "string", + "value": "hello\n" + }, + "higher-than-127": { + "type": "string", + "value": "Sørmirbæren" + }, + "literal": { + "type": "string", + "value": "\\x20 \\x09 \\x0d\\x0a" + }, + "multiline": { + "type": "string", + "value": " \t \u001b \r\n\n\n\u0000\nhello\n\nSørmirbæren\n" + }, + "multiline-literal": { + "type": "string", + "value": "\\x20 \\x09 \\x0d\\x0a\n" + }, + "nul": { + "type": "string", + "value": "\u0000" + }, + "whitespace": { + "type": "string", + "value": " \t \u001b \r\n" + } +} diff --git a/assets/toml-test/tests/valid/string/hex-escape.toml b/assets/toml-test/tests/valid/string/hex-escape.toml new file mode 100644 index 0000000..26d1668 --- /dev/null +++ b/assets/toml-test/tests/valid/string/hex-escape.toml @@ -0,0 +1,21 @@ +# \x for the first 255 codepoints + +whitespace = "\x20 \x09 \x1b \x0d\x0a" +bs = "\x7f" +nul = "\x00" +hello = "\x68\x65\x6c\x6c\x6f\x0a" +higher-than-127 = "S\xf8rmirb\xe6ren" + +multiline = """ +\x20 \x09 \x1b \x0d\x0a +\x7f +\x00 +\x68\x65\x6c\x6c\x6f\x0a +\x53\xF8\x72\x6D\x69\x72\x62\xE6\x72\x65\x6E +""" + +# Not inside literals. +literal = '\x20 \x09 \x0d\x0a' +multiline-literal = ''' +\x20 \x09 \x0d\x0a +''' diff --git a/assets/toml-test/tests/valid/string/multiline-escaped-crlf.json b/assets/toml-test/tests/valid/string/multiline-escaped-crlf.json new file mode 100644 index 0000000..aa5e3ee --- /dev/null +++ b/assets/toml-test/tests/valid/string/multiline-escaped-crlf.json @@ -0,0 +1,6 @@ +{ + "0": { + "type": "string", + "value": "" + } +} diff --git a/assets/toml-test/tests/valid/string/multiline-escaped-crlf.toml b/assets/toml-test/tests/valid/string/multiline-escaped-crlf.toml new file mode 100644 index 0000000..97d697d --- /dev/null +++ b/assets/toml-test/tests/valid/string/multiline-escaped-crlf.toml @@ -0,0 +1,4 @@ +# The following line should be an unescaped backslash followed by a Windows +# newline sequence ("\r\n") +0="""\ +""" diff --git a/assets/toml-test/tests/valid/string/multiline-quotes.json b/assets/toml-test/tests/valid/string/multiline-quotes.json new file mode 100644 index 0000000..af9c4c8 --- /dev/null +++ b/assets/toml-test/tests/valid/string/multiline-quotes.json @@ -0,0 +1,46 @@ +{ + "escaped": { + "type": "string", + "value": "lol\"\"\"" + }, + "lit_one": { + "type": "string", + "value": "'one quote'" + }, + "lit_one_space": { + "type": "string", + "value": " 'one quote' " + }, + "lit_two": { + "type": "string", + "value": "''two quotes''" + }, + "lit_two_space": { + "type": "string", + "value": " ''two quotes'' " + }, + "mismatch1": { + "type": "string", + "value": "aaa'''bbb" + }, + "mismatch2": { + "type": "string", + "value": "aaa\"\"\"bbb" + }, + "one": { + "type": "string", + "value": "\"one quote\"" + }, + "one_space": { + "type": "string", + "value": " \"one quote\" " + }, + "two": { + "type": "string", + "value": "\"\"two quotes\"\"" + }, + "two_space": { + "type": "string", + "value": " \"\"two quotes\"\" " + } +} diff --git a/assets/toml-test/tests/valid/string/multiline-quotes.toml b/assets/toml-test/tests/valid/string/multiline-quotes.toml new file mode 100644 index 0000000..085e127 --- /dev/null +++ b/assets/toml-test/tests/valid/string/multiline-quotes.toml @@ -0,0 +1,19 @@ +# Make sure that quotes inside multiline strings are allowed, including right +# after the opening '''/""" and before the closing '''/""" + +lit_one = ''''one quote'''' +lit_two = '''''two quotes''''' +lit_one_space = ''' 'one quote' ''' +lit_two_space = ''' ''two quotes'' ''' + +one = """"one quote"""" +two = """""two quotes""""" +one_space = """ "one quote" """ +two_space = """ ""two quotes"" """ + +mismatch1 = """aaa'''bbb""" +mismatch2 = '''aaa"""bbb''' + +# Three opening """, then one escaped ", then two "" (allowed), and then three +# closing """ +escaped = """lol\"""""" diff --git a/assets/toml-test/tests/valid/string/multiline.json b/assets/toml-test/tests/valid/string/multiline.json new file mode 100644 index 0000000..66e572b --- /dev/null +++ b/assets/toml-test/tests/valid/string/multiline.json @@ -0,0 +1,54 @@ +{ + "equivalent_one": { + "type": "string", + "value": "The quick brown fox jumps over the lazy dog." + }, + "equivalent_three": { + "type": "string", + "value": "The quick brown fox jumps over the lazy dog." + }, + "equivalent_two": { + "type": "string", + "value": "The quick brown fox jumps over the lazy dog." + }, + "escape-bs-1": { + "type": "string", + "value": "a \\\nb" + }, + "escape-bs-2": { + "type": "string", + "value": "a \\b" + }, + "escape-bs-3": { + "type": "string", + "value": "a \\\\\n b" + }, + "keep-ws-before": { + "type": "string", + "value": "a \tb" + }, + "multiline_empty_four": { + "type": "string", + "value": "" + }, + "multiline_empty_one": { + "type": "string", + "value": "" + }, + "multiline_empty_three": { + "type": "string", + "value": "" + }, + "multiline_empty_two": { + "type": "string", + "value": "" + }, + "no-space": { + "type": "string", + "value": "ab" + }, + "whitespace-after-bs": { + "type": "string", + "value": "The quick brown fox jumps over the lazy dog." + } +} diff --git a/assets/toml-test/tests/valid/string/multiline.toml b/assets/toml-test/tests/valid/string/multiline.toml new file mode 100644 index 0000000..f3b3c2e --- /dev/null +++ b/assets/toml-test/tests/valid/string/multiline.toml @@ -0,0 +1,52 @@ +# NOTE: this file includes some literal tab characters. + +multiline_empty_one = """""" + +# A newline immediately following the opening delimiter will be trimmed. +multiline_empty_two = """ +""" + +# \ at the end of line trims newlines as well; note that last \ is followed by +# two spaces, which are ignored. +multiline_empty_three = """\ + """ +multiline_empty_four = """\ + \ + \ + """ + +equivalent_one = "The quick brown fox jumps over the lazy dog." +equivalent_two = """ +The quick brown \ + + + fox jumps over \ + the lazy dog.""" + +equivalent_three = """\ + The quick brown \ + fox jumps over \ + the lazy dog.\ + """ + +whitespace-after-bs = """\ + The quick brown \ + fox jumps over \ + the lazy dog.\ + """ + +no-space = """a\ + b""" + +# Has tab character. +keep-ws-before = """a \ + b""" + +escape-bs-1 = """a \\ +b""" + +escape-bs-2 = """a \\\ +b""" + +escape-bs-3 = """a \\\\ + b""" diff --git a/assets/toml-test/tests/valid/string/nl.json b/assets/toml-test/tests/valid/string/nl.json new file mode 100644 index 0000000..8eae09a --- /dev/null +++ b/assets/toml-test/tests/valid/string/nl.json @@ -0,0 +1,22 @@ +{ + "lit_nl_end": { + "type": "string", + "value": "value\\n" + }, + "lit_nl_mid": { + "type": "string", + "value": "val\\nue" + }, + "lit_nl_uni": { + "type": "string", + "value": "val\\ue" + }, + "nl_end": { + "type": "string", + "value": "value\n" + }, + "nl_mid": { + "type": "string", + "value": "val\nue" + } +} diff --git a/assets/toml-test/tests/valid/string/nl.toml b/assets/toml-test/tests/valid/string/nl.toml new file mode 100644 index 0000000..1e09a8b --- /dev/null +++ b/assets/toml-test/tests/valid/string/nl.toml @@ -0,0 +1,6 @@ +nl_mid = "val\nue" +nl_end = """value\n""" + +lit_nl_end = '''value\n''' +lit_nl_mid = 'val\nue' +lit_nl_uni = 'val\ue' diff --git a/assets/toml-test/tests/valid/string/raw-multiline.json b/assets/toml-test/tests/valid/string/raw-multiline.json new file mode 100644 index 0000000..4159eb0 --- /dev/null +++ b/assets/toml-test/tests/valid/string/raw-multiline.json @@ -0,0 +1,18 @@ +{ + "firstnl": { + "type": "string", + "value": "This string has a ' quote character." + }, + "multiline": { + "type": "string", + "value": "This string\nhas ' a quote character\nand more than\none newline\nin it." + }, + "oneline": { + "type": "string", + "value": "This string has a ' quote character." + }, + "multiline_with_tab": { + "type": "string", + "value": "First line\n\t Followed by a tab" + } +} diff --git a/assets/toml-test/tests/valid/string/raw-multiline.toml b/assets/toml-test/tests/valid/string/raw-multiline.toml new file mode 100644 index 0000000..fff00d9 --- /dev/null +++ b/assets/toml-test/tests/valid/string/raw-multiline.toml @@ -0,0 +1,18 @@ +# Single ' should be allowed. +oneline = '''This string has a ' quote character.''' + +# A newline immediately following the opening delimiter will be trimmed. +firstnl = ''' +This string has a ' quote character.''' + +# All other whitespace and newline characters remain intact. +multiline = ''' +This string +has ' a quote character +and more than +one newline +in it.''' + +# Tab character in literal string does not need to be escaped +multiline_with_tab = '''First line + Followed by a tab''' diff --git a/assets/toml-test/tests/valid/string/raw.json b/assets/toml-test/tests/valid/string/raw.json new file mode 100644 index 0000000..3e1cfd1 --- /dev/null +++ b/assets/toml-test/tests/valid/string/raw.json @@ -0,0 +1,34 @@ +{ + "backslash": { + "type": "string", + "value": "This string has a \\\\ backslash character." + }, + "backspace": { + "type": "string", + "value": "This string has a \\b backspace character." + }, + "carriage": { + "type": "string", + "value": "This string has a \\r carriage return character." + }, + "formfeed": { + "type": "string", + "value": "This string has a \\f form feed character." + }, + "newline": { + "type": "string", + "value": "This string has a \\n new line character." + }, + "slash": { + "type": "string", + "value": "This string has a \\/ slash character." + }, + "tab": { + "type": "string", + "value": "This string has a \\t tab character." + }, + "unescaped_tab": { + "type": "string", + "value": "This string has an \t unescaped tab character." + } +} diff --git a/assets/toml-test/tests/valid/string/raw.toml b/assets/toml-test/tests/valid/string/raw.toml new file mode 100644 index 0000000..993307f --- /dev/null +++ b/assets/toml-test/tests/valid/string/raw.toml @@ -0,0 +1,8 @@ +backspace = 'This string has a \b backspace character.' +tab = 'This string has a \t tab character.' +unescaped_tab = 'This string has an unescaped tab character.' +newline = 'This string has a \n new line character.' +formfeed = 'This string has a \f form feed character.' +carriage = 'This string has a \r carriage return character.' +slash = 'This string has a \/ slash character.' +backslash = 'This string has a \\ backslash character.' diff --git a/assets/toml-test/tests/valid/string/simple.json b/assets/toml-test/tests/valid/string/simple.json new file mode 100644 index 0000000..2561cda --- /dev/null +++ b/assets/toml-test/tests/valid/string/simple.json @@ -0,0 +1,6 @@ +{ + "answer": { + "type": "string", + "value": "You are not drinking enough whisky." + } +} diff --git a/assets/toml-test/tests/valid/string/simple.toml b/assets/toml-test/tests/valid/string/simple.toml new file mode 100644 index 0000000..e17ade6 --- /dev/null +++ b/assets/toml-test/tests/valid/string/simple.toml @@ -0,0 +1 @@ +answer = "You are not drinking enough whisky." diff --git a/assets/toml-test/tests/valid/string/unicode-escape.json b/assets/toml-test/tests/valid/string/unicode-escape.json new file mode 100644 index 0000000..9ae728b --- /dev/null +++ b/assets/toml-test/tests/valid/string/unicode-escape.json @@ -0,0 +1,10 @@ +{ + "answer4": { + "type": "string", + "value": "δ" + }, + "answer8": { + "type": "string", + "value": "δ" + } +} diff --git a/assets/toml-test/tests/valid/string/unicode-escape.toml b/assets/toml-test/tests/valid/string/unicode-escape.toml new file mode 100644 index 0000000..82faecb --- /dev/null +++ b/assets/toml-test/tests/valid/string/unicode-escape.toml @@ -0,0 +1,2 @@ +answer4 = "\u03B4" +answer8 = "\U000003B4" diff --git a/assets/toml-test/tests/valid/string/unicode-literal.json b/assets/toml-test/tests/valid/string/unicode-literal.json new file mode 100644 index 0000000..7f15df4 --- /dev/null +++ b/assets/toml-test/tests/valid/string/unicode-literal.json @@ -0,0 +1,6 @@ +{ + "answer": { + "type": "string", + "value": "δ" + } +} diff --git a/assets/toml-test/tests/valid/string/unicode-literal.toml b/assets/toml-test/tests/valid/string/unicode-literal.toml new file mode 100644 index 0000000..c65723c --- /dev/null +++ b/assets/toml-test/tests/valid/string/unicode-literal.toml @@ -0,0 +1 @@ +answer = "δ" diff --git a/assets/toml-test/tests/valid/string/with-pound.json b/assets/toml-test/tests/valid/string/with-pound.json new file mode 100644 index 0000000..2cb8beb --- /dev/null +++ b/assets/toml-test/tests/valid/string/with-pound.json @@ -0,0 +1,10 @@ +{ + "pound": { + "type": "string", + "value": "We see no # comments here." + }, + "poundcomment": { + "type": "string", + "value": "But there are # some comments here." + } +} diff --git a/assets/toml-test/tests/valid/string/with-pound.toml b/assets/toml-test/tests/valid/string/with-pound.toml new file mode 100644 index 0000000..5fd8746 --- /dev/null +++ b/assets/toml-test/tests/valid/string/with-pound.toml @@ -0,0 +1,2 @@ +pound = "We see no # comments here." +poundcomment = "But there are # some comments here." # Did I # mess you up? diff --git a/assets/toml-test/tests/valid/table/array-implicit.json b/assets/toml-test/tests/valid/table/array-implicit.json new file mode 100644 index 0000000..ee164c5 --- /dev/null +++ b/assets/toml-test/tests/valid/table/array-implicit.json @@ -0,0 +1,12 @@ +{ + "albums": { + "songs": [ + { + "name": { + "type": "string", + "value": "Glory Days" + } + } + ] + } +} diff --git a/assets/toml-test/tests/valid/table/array-implicit.toml b/assets/toml-test/tests/valid/table/array-implicit.toml new file mode 100644 index 0000000..3157ac9 --- /dev/null +++ b/assets/toml-test/tests/valid/table/array-implicit.toml @@ -0,0 +1,2 @@ +[[albums.songs]] +name = "Glory Days" diff --git a/assets/toml-test/tests/valid/table/array-many.json b/assets/toml-test/tests/valid/table/array-many.json new file mode 100644 index 0000000..fe78bf6 --- /dev/null +++ b/assets/toml-test/tests/valid/table/array-many.json @@ -0,0 +1,34 @@ +{ + "people": [ + { + "first_name": { + "type": "string", + "value": "Bruce" + }, + "last_name": { + "type": "string", + "value": "Springsteen" + } + }, + { + "first_name": { + "type": "string", + "value": "Eric" + }, + "last_name": { + "type": "string", + "value": "Clapton" + } + }, + { + "first_name": { + "type": "string", + "value": "Bob" + }, + "last_name": { + "type": "string", + "value": "Seger" + } + } + ] +} diff --git a/assets/toml-test/tests/valid/table/array-many.toml b/assets/toml-test/tests/valid/table/array-many.toml new file mode 100644 index 0000000..46062be --- /dev/null +++ b/assets/toml-test/tests/valid/table/array-many.toml @@ -0,0 +1,11 @@ +[[people]] +first_name = "Bruce" +last_name = "Springsteen" + +[[people]] +first_name = "Eric" +last_name = "Clapton" + +[[people]] +first_name = "Bob" +last_name = "Seger" diff --git a/assets/toml-test/tests/valid/table/array-nest.json b/assets/toml-test/tests/valid/table/array-nest.json new file mode 100644 index 0000000..97f55c8 --- /dev/null +++ b/assets/toml-test/tests/valid/table/array-nest.json @@ -0,0 +1,44 @@ +{ + "albums": [ + { + "name": { + "type": "string", + "value": "Born to Run" + }, + "songs": [ + { + "name": { + "type": "string", + "value": "Jungleland" + } + }, + { + "name": { + "type": "string", + "value": "Meeting Across the River" + } + } + ] + }, + { + "name": { + "type": "string", + "value": "Born in the USA" + }, + "songs": [ + { + "name": { + "type": "string", + "value": "Glory Days" + } + }, + { + "name": { + "type": "string", + "value": "Dancing in the Dark" + } + } + ] + } + ] +} diff --git a/assets/toml-test/tests/valid/table/array-nest.toml b/assets/toml-test/tests/valid/table/array-nest.toml new file mode 100644 index 0000000..d659a3d --- /dev/null +++ b/assets/toml-test/tests/valid/table/array-nest.toml @@ -0,0 +1,17 @@ +[[albums]] +name = "Born to Run" + + [[albums.songs]] + name = "Jungleland" + + [[albums.songs]] + name = "Meeting Across the River" + +[[albums]] +name = "Born in the USA" + + [[albums.songs]] + name = "Glory Days" + + [[albums.songs]] + name = "Dancing in the Dark" diff --git a/assets/toml-test/tests/valid/table/array-one.json b/assets/toml-test/tests/valid/table/array-one.json new file mode 100644 index 0000000..5cd67de --- /dev/null +++ b/assets/toml-test/tests/valid/table/array-one.json @@ -0,0 +1,14 @@ +{ + "people": [ + { + "first_name": { + "type": "string", + "value": "Bruce" + }, + "last_name": { + "type": "string", + "value": "Springsteen" + } + } + ] +} diff --git a/assets/toml-test/tests/valid/table/array-one.toml b/assets/toml-test/tests/valid/table/array-one.toml new file mode 100644 index 0000000..cd7e1b6 --- /dev/null +++ b/assets/toml-test/tests/valid/table/array-one.toml @@ -0,0 +1,3 @@ +[[people]] +first_name = "Bruce" +last_name = "Springsteen" diff --git a/assets/toml-test/tests/valid/table/array-table-array.json b/assets/toml-test/tests/valid/table/array-table-array.json new file mode 100644 index 0000000..5c3d649 --- /dev/null +++ b/assets/toml-test/tests/valid/table/array-table-array.json @@ -0,0 +1,24 @@ +{ + "a": [ + { + "b": [ + { + "c": { + "d": { + "type": "string", + "value": "val0" + } + } + }, + { + "c": { + "d": { + "type": "string", + "value": "val1" + } + } + } + ] + } + ] +} diff --git a/assets/toml-test/tests/valid/table/array-table-array.toml b/assets/toml-test/tests/valid/table/array-table-array.toml new file mode 100644 index 0000000..a07b0c7 --- /dev/null +++ b/assets/toml-test/tests/valid/table/array-table-array.toml @@ -0,0 +1,7 @@ +[[a]] + [[a.b]] + [a.b.c] + d = "val0" + [[a.b]] + [a.b.c] + d = "val1" diff --git a/assets/toml-test/tests/valid/table/empty.json b/assets/toml-test/tests/valid/table/empty.json new file mode 100644 index 0000000..3e82cda --- /dev/null +++ b/assets/toml-test/tests/valid/table/empty.json @@ -0,0 +1,3 @@ +{ + "a": {} +} diff --git a/assets/toml-test/tests/valid/table/empty.toml b/assets/toml-test/tests/valid/table/empty.toml new file mode 100644 index 0000000..8bb6a0a --- /dev/null +++ b/assets/toml-test/tests/valid/table/empty.toml @@ -0,0 +1 @@ +[a] diff --git a/assets/toml-test/tests/valid/table/keyword.json b/assets/toml-test/tests/valid/table/keyword.json new file mode 100644 index 0000000..a15dfae --- /dev/null +++ b/assets/toml-test/tests/valid/table/keyword.json @@ -0,0 +1,6 @@ +{ + "true": {}, + "false": {}, + "inf": {}, + "nan": {} +} diff --git a/assets/toml-test/tests/valid/table/keyword.toml b/assets/toml-test/tests/valid/table/keyword.toml new file mode 100644 index 0000000..bc3d52a --- /dev/null +++ b/assets/toml-test/tests/valid/table/keyword.toml @@ -0,0 +1,9 @@ +[true] + +[false] + +[inf] + +[nan] + + diff --git a/assets/toml-test/tests/valid/table/names.json b/assets/toml-test/tests/valid/table/names.json new file mode 100644 index 0000000..66d8ea5 --- /dev/null +++ b/assets/toml-test/tests/valid/table/names.json @@ -0,0 +1,30 @@ +{ + "a": { + " x ": {}, + "b": { + "c": {} + }, + "b.c": {}, + "d.e": {} + }, + "d": { + "e": { + "f": {} + } + }, + "g": { + "h": { + "i": {} + } + }, + "j": { + "ʞ": { + "l": {} + } + }, + "x": { + "1": { + "2": {} + } + } +} diff --git a/assets/toml-test/tests/valid/table/names.toml b/assets/toml-test/tests/valid/table/names.toml new file mode 100644 index 0000000..092da2f --- /dev/null +++ b/assets/toml-test/tests/valid/table/names.toml @@ -0,0 +1,9 @@ +[a.b.c] +[a."b.c"] +[a.'d.e'] +[a.' x '] +[ d.e.f ] +[ g . h . i ] +[ j . "ʞ" . 'l' ] + +[x.1.2] diff --git a/assets/toml-test/tests/valid/table/no-eol.json b/assets/toml-test/tests/valid/table/no-eol.json new file mode 100644 index 0000000..b6e7fb5 --- /dev/null +++ b/assets/toml-test/tests/valid/table/no-eol.json @@ -0,0 +1,3 @@ +{ + "table": {} +} diff --git a/assets/toml-test/tests/valid/table/no-eol.toml b/assets/toml-test/tests/valid/table/no-eol.toml new file mode 100644 index 0000000..f1098fd --- /dev/null +++ b/assets/toml-test/tests/valid/table/no-eol.toml @@ -0,0 +1 @@ +[table] diff --git a/assets/toml-test/tests/valid/table/sub-empty.json b/assets/toml-test/tests/valid/table/sub-empty.json new file mode 100644 index 0000000..ed10cd2 --- /dev/null +++ b/assets/toml-test/tests/valid/table/sub-empty.json @@ -0,0 +1,5 @@ +{ + "a": { + "b": {} + } +} diff --git a/assets/toml-test/tests/valid/table/sub-empty.toml b/assets/toml-test/tests/valid/table/sub-empty.toml new file mode 100644 index 0000000..70b7fe1 --- /dev/null +++ b/assets/toml-test/tests/valid/table/sub-empty.toml @@ -0,0 +1,2 @@ +[a] +[a.b] diff --git a/assets/toml-test/tests/valid/table/sub.json b/assets/toml-test/tests/valid/table/sub.json new file mode 100644 index 0000000..cb81a3f --- /dev/null +++ b/assets/toml-test/tests/valid/table/sub.json @@ -0,0 +1,20 @@ +{ + "a": { + "extend": { + "key": { + "type": "integer", + "value": "2" + }, + "more": { + "key": { + "type": "integer", + "value": "3" + } + } + }, + "key": { + "type": "integer", + "value": "1" + } + } +} diff --git a/assets/toml-test/tests/valid/table/sub.toml b/assets/toml-test/tests/valid/table/sub.toml new file mode 100644 index 0000000..e8299c2 --- /dev/null +++ b/assets/toml-test/tests/valid/table/sub.toml @@ -0,0 +1,9 @@ +[a] +key = 1 + +# a.extend is a key inside the "a" table. +[a.extend] +key = 2 + +[a.extend.more] +key = 3 diff --git a/assets/toml-test/tests/valid/table/whitespace.json b/assets/toml-test/tests/valid/table/whitespace.json new file mode 100644 index 0000000..c770470 --- /dev/null +++ b/assets/toml-test/tests/valid/table/whitespace.json @@ -0,0 +1,3 @@ +{ + "valid key": {} +} diff --git a/assets/toml-test/tests/valid/table/whitespace.toml b/assets/toml-test/tests/valid/table/whitespace.toml new file mode 100644 index 0000000..daf881d --- /dev/null +++ b/assets/toml-test/tests/valid/table/whitespace.toml @@ -0,0 +1 @@ +["valid key"] diff --git a/assets/toml-test/tests/valid/table/with-literal-string.json b/assets/toml-test/tests/valid/table/with-literal-string.json new file mode 100644 index 0000000..7784695 --- /dev/null +++ b/assets/toml-test/tests/valid/table/with-literal-string.json @@ -0,0 +1,12 @@ +{ + "a": { + "\"b\"": { + "c": { + "answer": { + "type": "integer", + "value": "42" + } + } + } + } +} diff --git a/assets/toml-test/tests/valid/table/with-literal-string.toml b/assets/toml-test/tests/valid/table/with-literal-string.toml new file mode 100644 index 0000000..b81643d --- /dev/null +++ b/assets/toml-test/tests/valid/table/with-literal-string.toml @@ -0,0 +1,4 @@ +['a'] +[a.'"b"'] +[a.'"b"'.c] +answer = 42 diff --git a/assets/toml-test/tests/valid/table/with-pound.json b/assets/toml-test/tests/valid/table/with-pound.json new file mode 100644 index 0000000..f32d2f2 --- /dev/null +++ b/assets/toml-test/tests/valid/table/with-pound.json @@ -0,0 +1,8 @@ +{ + "key#group": { + "answer": { + "type": "integer", + "value": "42" + } + } +} diff --git a/assets/toml-test/tests/valid/table/with-pound.toml b/assets/toml-test/tests/valid/table/with-pound.toml new file mode 100644 index 0000000..33f2c4f --- /dev/null +++ b/assets/toml-test/tests/valid/table/with-pound.toml @@ -0,0 +1,2 @@ +["key#group"] +answer = 42 diff --git a/assets/toml-test/tests/valid/table/with-single-quotes.json b/assets/toml-test/tests/valid/table/with-single-quotes.json new file mode 100644 index 0000000..347c693 --- /dev/null +++ b/assets/toml-test/tests/valid/table/with-single-quotes.json @@ -0,0 +1,12 @@ +{ + "a": { + "b": { + "c": { + "answer": { + "type": "integer", + "value": "42" + } + } + } + } +} diff --git a/assets/toml-test/tests/valid/table/with-single-quotes.toml b/assets/toml-test/tests/valid/table/with-single-quotes.toml new file mode 100644 index 0000000..56e52cc --- /dev/null +++ b/assets/toml-test/tests/valid/table/with-single-quotes.toml @@ -0,0 +1,4 @@ +['a'] +[a.'b'] +[a.'b'.c] +answer = 42 diff --git a/assets/toml-test/tests/valid/table/without-super.json b/assets/toml-test/tests/valid/table/without-super.json new file mode 100644 index 0000000..3c390c6 --- /dev/null +++ b/assets/toml-test/tests/valid/table/without-super.json @@ -0,0 +1,9 @@ +{ + "x": { + "y": { + "z": { + "w": {} + } + } + } +} diff --git a/assets/toml-test/tests/valid/table/without-super.toml b/assets/toml-test/tests/valid/table/without-super.toml new file mode 100644 index 0000000..73ed68b --- /dev/null +++ b/assets/toml-test/tests/valid/table/without-super.toml @@ -0,0 +1,5 @@ +# [x] you +# [x.y] don't +# [x.y.z] need these +[x.y.z.w] # for this to work +[x] # defining a super-table afterwards is ok diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..52df2e9 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,63 @@ +const TESTS_DIR: include_dir::Dir = + include_dir::include_dir!("$CARGO_MANIFEST_DIR/assets/toml-test/tests"); + +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +pub struct Valid<'a> { + pub name: &'a std::path::Path, + pub fixture: &'a [u8], + pub expected: &'a [u8], +} + +pub fn valid() -> impl Iterator> { + let valid_dir = TESTS_DIR.get_dir("valid").unwrap(); + valid_files(valid_dir).chain(valid_dir.dirs().flat_map(|d| { + assert_eq!(d.dirs().count(), 0); + valid_files(d) + })) +} + +fn valid_files<'d>( + dir: &'d include_dir::Dir<'static>, +) -> impl Iterator> + 'd { + dir.files() + .filter(|f| f.path().extension().unwrap_or_default() == "toml") + .map(move |f| { + let t = f; + let j = dir + .files() + .find(|f| { + f.path().parent() == t.path().parent() + && f.path().file_stem() == t.path().file_stem() + && f.path().extension().unwrap() == "json" + }) + .unwrap(); + let name = t.path(); + let fixture = t.contents(); + let expected = j.contents(); + Valid { + name, + fixture, + expected, + } + }) +} + +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +pub struct Invalid<'a> { + pub name: &'a std::path::Path, + pub fixture: &'a [u8], +} + +pub fn invalid() -> impl Iterator> { + let invalid_dir = TESTS_DIR.get_dir("invalid").unwrap(); + assert_eq!(invalid_dir.files().count(), 0); + invalid_dir.dirs().flat_map(|d| { + assert_eq!(d.dirs().count(), 0); + d.files().map(|f| { + let t = f; + let name = f.path(); + let fixture = t.contents(); + Invalid { name, fixture } + }) + }) +} -- 2.7.4