tomlc99 version 5221b3d
FAIL valid/key/escapes
     ERROR: line 1: bad key
 
     Exit 1

     input sent to parser-cmd (PID 13107):
       "\n" = "newline"
       "\b" = "bell"
       "\u00c0" = "latin capital letter A with grave"
       "\"" = "just a quote"

       ["backsp\b\b"]

       ["\"quoted\""]
       quote = true

       ["a.b"."\u00c0"]

     output from parser-cmd (PID 13107) (stderr):
       ERROR: line 1: bad key

       Exit 1

     want:
          

FAIL valid/key/like-date
     ERROR: line 14: bad key
 
     Exit 1

     input sent to parser-cmd (PID 13108):
       # '-' is a valid character in keys: make a key that looks like a date.
       2001-02-03   = 1
       "2001-02-04" = 2
       '2001-02-05' = 3

       # Also include datetime and time for good measure; these need to be quoted as
       # ':' isn't a valid bare key.
       "2001-02-06T15:16:17+01:00" = 4
       "2001-02-07T15:16:17"       = 5
       "15:16:17"                  = 6

       # Dotted keys
       a.2001-02-08 = 7
       a.2001-02-09.2001-02-10 = 8
       2001-02-11.a.2001-02-12 = 9

       # Table names
       [2002-01-02]
       k = 10

       [2002-01-02.2024-01-03]
       k = 11

       [[2002-01-04]]
       k = 12

     output from parser-cmd (PID 13108) (stderr):
       ERROR: line 14: bad key

       Exit 1

     want:
          

FAIL valid/key/quoted-dots
     ERROR: line 11: expect hex char
 
     Exit 1

     input sent to parser-cmd (PID 13118):
       plain = 1
       "with.dot" = 2

       [plain_table]
       plain = 3
       "with.dot" = 4

       [table.withdot]
       plain = 5
       "key.with.dots" = 6
       "escaped\u002edot" = 7

     output from parser-cmd (PID 13118) (stderr):
       ERROR: line 11: expect hex char

       Exit 1

     want:
          

FAIL valid/key/quoted-unicode
     ERROR: line 4: expect hex char
 
     Exit 1

     input sent to parser-cmd (PID 13119):

       "\u0000" = "null"
       '\u0000' = "different key"
       "\u0008 \u000c \U00000041 \u007f \u0080 \u00ff \ud7ff \ue000 \uffff \U00010000 \U0010ffff" = "escaped key"

       "~ € ÿ ퟿  ￿ 𐀀 􏿿" = "basic key"
       'l ~ € ÿ ퟿  ￿ 𐀀 􏿿' = "literal key"

     output from parser-cmd (PID 13119) (stderr):
       ERROR: line 4: expect hex char

       Exit 1

     want:
          

FAIL valid/key/space
     ERROR: line 4: bad key
 
     Exit 1

     input sent to parser-cmd (PID 13121):
       # Keep whitespace inside quotes keys at all positions.
       "a b"   = 1
       " c d " = 2
       "  much 		  whitespace  	\n  \r\n  " = 3

       [ " tbl " ]
       "\ttab\ttab\t" = "tab"

     output from parser-cmd (PID 13121) (stderr):
       ERROR: line 4: bad key

       Exit 1

     want:
          

FAIL valid/spec-1.0.0/string-7
     ERROR: line 4: triple-s-quote inside string lit
 
     Exit 1

     input sent to parser-cmd (PID 13167):
       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.''''

     output from parser-cmd (PID 13167) (stderr):
       ERROR: line 4: triple-s-quote inside string lit

       Exit 1

     want:
          

FAIL valid/string/escape-tricky
     ERROR: line 4: expect hex char
 
     Exit 1

     input sent to parser-cmd (PID 13183):
       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\'''

     output from parser-cmd (PID 13183) (stderr):
       ERROR: line 4: expect hex char

       Exit 1

     want:
          

FAIL valid/string/escapes
     decode JSON output from parser:
       invalid character '\x1f' in string literal

     input sent to parser-cmd (PID 13186):
       backspace     = "|\b."
       tab           = "|\t."
       newline       = "|\n."
       formfeed      = "|\f."
       carriage      = "|\r."
       quote         = "|\"."
       backslash     = "|\\."
       delete        = "|\u007F."
       unitseparator = "|\u001F."

       # \u is escaped, so should NOT be interperted as a \u escape.
       notunicode1   = "|\\u."
       notunicode2   = "|\u005Cu."
       notunicode3   = "|\\u0075."
       notunicode4   = "|\\\u0075."

     output from parser-cmd (PID 13186) (stdout):
       {"backspace":{"type":"string","value":"|\b."},"tab":{"type":"string","value":"|\t."},"newline":{"type":"string","value":"|\n."},"formfeed":{"type":"string","value":"|\f."},"carriage":{"type":"string","value":"|\r."},"quote":{"type":"string","value":"|\"."},"backslash":{"type":"string","value":"|\\."},"delete":{"type":"string","value":"|."},"unitseparator":{"type":"string","value":"|."},"notunicode1":{"type":"string","value":"|\\u."},"notunicode2":{"type":"string","value":"|\\u."},"notunicode3":{"type":"string","value":"|\\u0075."},"notunicode4":{"type":"string","value":"|\\u."}}

     want:
       {
           "backslash":     {"type": "string", "value": "|\\."},
           "backspace":     {"type": "string", "value": "|\b."},
           "carriage":      {"type": "string", "value": "|\r."},
           "delete":        {"type": "string", "value": "|."},
           "formfeed":      {"type": "string", "value": "|\f."},
           "newline":       {"type": "string", "value": "|\n."},
           "notunicode1":   {"type": "string", "value": "|\\u."},
           "notunicode2":   {"type": "string", "value": "|\\u."},
           "notunicode3":   {"type": "string", "value": "|\\u0075."},
           "notunicode4":   {"type": "string", "value": "|\\u."},
           "quote":         {"type": "string", "value": "|\"."},
           "tab":           {"type": "string", "value": "|\t."},
           "unitseparator": {"type": "string", "value": "|\u001f."}
       }

FAIL valid/string/multibyte-escape
     ERROR: line 4: expect hex char
 
     Exit 1

     input sent to parser-cmd (PID 13187):
       # Test each multibyte length: 2, 3, and 4 bytes:
       # ɑ € 𐫱

       basic-1    = "\u0251 \u20ac \U00010AF1 \u0251\u20ac\U00010AF1"
       ml-basic-1 = """\u0251 \u20ac \U00010AF1 \u0251\u20ac\U00010AF1"""

       # Again, but only using \U
       basic-2    = "\U00000251 \U000020ac \U00010AF1 \U00000251\U000020ac\U00010AF1"
       ml-basic-2 = """\U00000251 \U000020ac \U00010AF1 \U00000251\U000020ac\U00010AF1"""

     output from parser-cmd (PID 13187) (stderr):
       ERROR: line 4: expect hex char

       Exit 1

     want:
          

FAIL valid/string/quoted-unicode
     ERROR: line 2: expect hex char
 
     Exit 1

     input sent to parser-cmd (PID 13194):

       escaped_string = "\u0000 \u0008 \u000c \U00000041 \u007f \u0080 \u00ff \ud7ff \ue000 \uffff \U00010000 \U0010ffff"
       not_escaped_string = '\u0000 \u0008 \u000c \U00000041 \u007f \u0080 \u00ff \ud7ff \ue000 \uffff \U00010000 \U0010ffff'

       basic_string = "~ € ÿ ퟿  ￿ 𐀀 􏿿"
       literal_string = '~ € ÿ ퟿  ￿ 𐀀 􏿿'

     output from parser-cmd (PID 13194) (stderr):
       ERROR: line 2: expect hex char

       Exit 1

     want:
          

FAIL valid/string/unicode-escape
     Values for key "ml-null-1" don't match:
       Expected:     
       Your encoder:

     input sent to parser-cmd (PID 13201):
       delta-1 = "\u03B4"
       delta-2 = "\U000003B4"
       a       = "\u0061"
       b       = "\u0062"
       c       = "\U00000063"
       null-1  = "\u0000"
       null-2  = "\U00000000"

       ml-delta-1 = """\u03B4"""
       ml-delta-2 = """\U000003B4"""
       ml-a       = """\u0061"""
       ml-b       = """\u0062"""
       ml-c       = """\U00000063"""
       ml-null-1  = """\u0000"""
       ml-null-2  = """\U00000000"""

     output from parser-cmd (PID 13201) (stdout):
       {
         "a":          {"type": "string", "value": "a"},
         "b":          {"type": "string", "value": "b"},
         "c":          {"type": "string", "value": "c"},
         "delta-1":    {"type": "string", "value": "δ"},
         "delta-2":    {"type": "string", "value": "δ"},
         "ml-a":       {"type": "string", "value": "a"},
         "ml-b":       {"type": "string", "value": "b"},
         "ml-c":       {"type": "string", "value": "c"},
         "ml-delta-1": {"type": "string", "value": "δ"},
         "ml-delta-2": {"type": "string", "value": "δ"},
         "ml-null-1":  {"type": "string", "value": ""},
         "ml-null-2":  {"type": "string", "value": ""},
         "null-1":     {"type": "string", "value": ""},
         "null-2":     {"type": "string", "value": ""}
       }

     want:
       {
           "a":          {"type": "string", "value": "a"},
           "b":          {"type": "string", "value": "b"},
           "c":          {"type": "string", "value": "c"},
           "delta-1":    {"type": "string", "value": "δ"},
           "delta-2":    {"type": "string", "value": "δ"},
           "ml-a":       {"type": "string", "value": "a"},
           "ml-b":       {"type": "string", "value": "b"},
           "ml-c":       {"type": "string", "value": "c"},
           "ml-delta-1": {"type": "string", "value": "δ"},
           "ml-delta-2": {"type": "string", "value": "δ"},
           "ml-null-1":  {"type": "string", "value": "\u0000"},
           "ml-null-2":  {"type": "string", "value": "\u0000"},
           "null-1":     {"type": "string", "value": "\u0000"},
           "null-2":     {"type": "string", "value": "\u0000"}
       }

FAIL invalid/array/extending-table
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13223):
       a = [{ b = 1 }]

       # Cannot extend tables within static arrays
       # https://github.com/toml-lang/toml/issues/908
       [a.c]
       foo = 1

     output from parser-cmd (PID 13223) (stdout):
       {
         "a": [{
           "b": {"type": "integer", "value": "1"},
           "c": {
             "foo": {"type": "integer", "value": "1"}
           }
         }]
       }

     want:
       Exit code 1

FAIL invalid/control/bare-cr
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13281):
       # The following line contains a single carriage return control character
       

     output from parser-cmd (PID 13281) (stdout):
       {}

     want:
       Exit code 1

FAIL invalid/control/bare-null
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13284):
       bare-null         = "some value" 

     output from parser-cmd (PID 13284) (stdout):
       {
         "bare-null": {"type": "string", "value": "some value"}
       }

     want:
       Exit code 1

FAIL invalid/control/comment-cr
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13287):
       comment-cr   = "Carriage return in comment" # 
a=1

     output from parser-cmd (PID 13287) (stdout):
       {
         "comment-cr": {"type": "string", "value": "Carriage return in comment"}
       }

     want:
       Exit code 1

FAIL invalid/control/comment-del
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13285):
       comment-del  = "0x7f"   # 

     output from parser-cmd (PID 13285) (stdout):
       {
         "comment-del": {"type": "string", "value": "0x7f"}
       }

     want:
       Exit code 1

FAIL invalid/control/comment-ff
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13288):
       comment-ff   = "0x7f"   # 

     output from parser-cmd (PID 13288) (stdout):
       {
         "comment-ff": {"type": "string", "value": "0x7f"}
       }

     want:
       Exit code 1

FAIL invalid/control/comment-lf
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13289):
       comment-lf   = "ctrl-P" # 

     output from parser-cmd (PID 13289) (stdout):
       {
         "comment-lf": {"type": "string", "value": "ctrl-P"}
       }

     want:
       Exit code 1

FAIL invalid/control/comment-null
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13291):
       comment-null = "null"   # 

     output from parser-cmd (PID 13291) (stdout):
       {
         "comment-null": {"type": "string", "value": "null"}
       }

     want:
       Exit code 1

FAIL invalid/control/comment-us
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13308):
       comment-us   = "ctrl-_" # 

     output from parser-cmd (PID 13308) (stdout):
       {
         "comment-us": {"type": "string", "value": "ctrl-_"}
       }

     want:
       Exit code 1

FAIL invalid/control/multi-cr
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13307):
       multi-cr   = """null
"""

     output from parser-cmd (PID 13307) (stdout):
       {
         "multi-cr": {"type": "string", "value": "null\r"}
       }

     want:
       Exit code 1

FAIL invalid/control/only-null
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13312):
       

     output from parser-cmd (PID 13312) (stdout):
       {}

     want:
       Exit code 1

FAIL invalid/control/rawmulti-cr
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13304):
       rawmulti-cr   = '''null
'''

     output from parser-cmd (PID 13304) (stdout):
       {
         "rawmulti-cr": {"type": "string", "value": "null\r"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/day-zero
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13324):
       foo = 1997-09-00T09:09:09.09Z

     output from parser-cmd (PID 13324) (stdout):
       {
         "foo": {"type": "datetime", "value": "1997-09-00T09:09:09.090Z"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/feb-29
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13325):
       "not a leap year" = 2100-02-29T15:15:15Z

     output from parser-cmd (PID 13325) (stdout):
       {
         "not a leap year": {"type": "datetime", "value": "2100-02-29T15:15:15Z"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/feb-30
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13326):
       "only 28 or 29 days in february" = 1988-02-30T15:15:15Z

     output from parser-cmd (PID 13326) (stdout):
       {
         "only 28 or 29 days in february": {"type": "datetime", "value": "1988-02-30T15:15:15Z"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/hour-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13328):
       # time-hour       = 2DIGIT  ; 00-23
       d = 2006-01-01T24:00:00-00:00

     output from parser-cmd (PID 13328) (stdout):
       {
         "d": {"type": "datetime", "value": "2006-01-01T24:00:00-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/mday-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13329):
       # date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
       #                           ; month/year
       d = 2006-01-32T00:00:00-00:00

     output from parser-cmd (PID 13329) (stdout):
       {
         "d": {"type": "datetime", "value": "2006-01-32T00:00:00-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/mday-under
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13327):
       # date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
       #                           ; month/year
       d = 2006-01-00T00:00:00-00:00

     output from parser-cmd (PID 13327) (stdout):
       {
         "d": {"type": "datetime", "value": "2006-01-00T00:00:00-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/minute-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13330):
       # time-minute     = 2DIGIT  ; 00-59
       d = 2006-01-01T00:60:00-00:00

     output from parser-cmd (PID 13330) (stdout):
       {
         "d": {"type": "datetime", "value": "2006-01-01T00:60:00-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/month-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13332):
       # date-month      = 2DIGIT  ; 01-12
       d = 2006-13-01T00:00:00-00:00

     output from parser-cmd (PID 13332) (stdout):
       {
         "d": {"type": "datetime", "value": "2006-13-01T00:00:00-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/month-under
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13331):
       # date-month      = 2DIGIT  ; 01-12
       d = 2007-00-01T00:00:00-00:00

     output from parser-cmd (PID 13331) (stdout):
       {
         "d": {"type": "datetime", "value": "2007-00-01T00:00:00-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/offset-minus-no-minute
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13343):
       foo = 1997-09-09T09:09:09.09+09

     output from parser-cmd (PID 13343) (stdout):
       {
         "foo": {"type": "datetime", "value": "1997-09-09T09:09:09.090+09"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/offset-overflow-hour
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13344):
       # Hour must be 00-24
       d = 1985-06-18 17:04:07+25:00

     output from parser-cmd (PID 13344) (stdout):
       {
         "d": {"type": "datetime", "value": "1985-06-18T17:04:07+25:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/offset-overflow-minute
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13345):
       # Minute must be 00-59; we allow 60 too because some people do write offsets of
       # 60 minutes
       d = 1985-06-18 17:04:07+12:61

     output from parser-cmd (PID 13345) (stdout):
       {
         "d": {"type": "datetime", "value": "1985-06-18T17:04:07+12:61"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/offset-plus-no-minute
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13350):
       foo = 1997-09-09T09:09:09.09+09

     output from parser-cmd (PID 13350) (stdout):
       {
         "foo": {"type": "datetime", "value": "1997-09-09T09:09:09.090+09"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/second-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13360):
       # time-second     = 2DIGIT  ; 00-58, 00-59, 00-60 based on leap second
       #                           ; rules
       d = 2006-01-01T00:00:61-00:00

     output from parser-cmd (PID 13360) (stdout):
       {
         "d": {"type": "datetime", "value": "2006-01-01T00:00:61-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/second-trailing-dot
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13358):
       foo = 1997-09-09T09:09:09.

     output from parser-cmd (PID 13358) (stdout):
       {
         "foo": {"type": "datetime-local", "value": "1997-09-09T09:09:09.000"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/second-trailing-dotz
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13354):
       foo = 2016-09-09T09:09:09.Z

     output from parser-cmd (PID 13354) (stdout):
       {
         "foo": {"type": "datetime", "value": "2016-09-09T09:09:09.000Z"}
       }

     want:
       Exit code 1

FAIL invalid/encoding/bad-codepoint
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13368):
       # Invalid codepoint U+D800 : 

     output from parser-cmd (PID 13368) (stdout):
       {}

     want:
       Exit code 1

FAIL invalid/encoding/bad-utf8-in-comment
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13365):
       # 

     output from parser-cmd (PID 13365) (stdout):
       {}

     want:
       Exit code 1

FAIL invalid/encoding/bad-utf8-in-multiline
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13362):
       # The following line contains an invalid UTF-8 sequence.
       bad = """"""

     output from parser-cmd (PID 13362) (stdout):
       {
         "bad": {"type": "string", "value": "�"}
       }

     want:
       Exit code 1

FAIL invalid/encoding/bad-utf8-in-multiline-literal
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13359):
       # The following line contains an invalid UTF-8 sequence.
       bad = ''''''

     output from parser-cmd (PID 13359) (stdout):
       {
         "bad": {"type": "string", "value": "�"}
       }

     want:
       Exit code 1

FAIL invalid/encoding/bad-utf8-in-string
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13363):
       # The following line contains an invalid UTF-8 sequence.
       bad = ""

     output from parser-cmd (PID 13363) (stdout):
       {
         "bad": {"type": "string", "value": "�"}
       }

     want:
       Exit code 1

FAIL invalid/encoding/bad-utf8-in-string-literal
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13361):
       # The following line contains an invalid UTF-8 sequence.
       bad = ''

     output from parser-cmd (PID 13361) (stdout):
       {
         "bad": {"type": "string", "value": "�"}
       }

     want:
       Exit code 1

FAIL invalid/encoding/utf16-comment
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13371):
       # UTF-16 without BOM

     output from parser-cmd (PID 13371) (stdout):
       {}

     want:
       Exit code 1

FAIL invalid/encoding/utf16-key
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13372):
       k = "v"

     output from parser-cmd (PID 13372) (stdout):
       {}

     want:
       Exit code 1

FAIL invalid/float/exp-leading-us
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13389):
       exp-leading-us = 1e_23

     output from parser-cmd (PID 13389) (stdout):
       {
         "exp-leading-us": {"type": "float", "value": "1e23"}
       }

     want:
       Exit code 1

FAIL invalid/float/exp-trailing-us-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13387):
       exp-trailing-us-1 = 1_e2

     output from parser-cmd (PID 13387) (stdout):
       {
         "exp-trailing-us-1": {"type": "float", "value": "1e2"}
       }

     want:
       Exit code 1

FAIL invalid/float/exp-trailing-us-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13386):
       exp-trailing-us-2 = 1.2_e2

     output from parser-cmd (PID 13386) (stdout):
       {
         "exp-trailing-us-2": {"type": "float", "value": "1.2e2"}
       }

     want:
       Exit code 1

FAIL invalid/float/exp-trailing-us-1
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13388):
       exp-trailing-us-1 = 1_e2

     output from parser-cmd (PID 13388) (stdout):
       {
         "exp-trailing-us-1": {"type": "float", "value": "1e2"}
       }

     want:
       Exit code 1

FAIL invalid/float/exp-trailing-us-2
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13390):
       exp-trailing-us-2 = 1.2_e2

     output from parser-cmd (PID 13390) (stdout):
       {
         "exp-trailing-us-2": {"type": "float", "value": "1.2e2"}
       }

     want:
       Exit code 1

FAIL invalid/float/inf-capital
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13394):
       v = Inf

     output from parser-cmd (PID 13394) (stdout):
       {
         "v": {"type": "float", "value": "Inf"}
       }

     want:
       Exit code 1

FAIL invalid/float/inf_underscore
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13408):
       inf_underscore = in_f

     output from parser-cmd (PID 13408) (stdout):
       {
         "inf_underscore": {"type": "float", "value": "inf"}
       }

     want:
       Exit code 1

FAIL invalid/float/nan-capital
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13410):
       v = NaN

     output from parser-cmd (PID 13410) (stdout):
       {
         "v": {"type": "float", "value": "NaN"}
       }

     want:
       Exit code 1

FAIL invalid/float/nan_underscore
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13427):
       nan_underscore = na_n

     output from parser-cmd (PID 13427) (stdout):
       {
         "nan_underscore": {"type": "float", "value": "nan"}
       }

     want:
       Exit code 1

FAIL invalid/float/trailing-us-exp-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13430):
       trailing-us-exp-1 = 1_e2

     output from parser-cmd (PID 13430) (stdout):
       {
         "trailing-us-exp-1": {"type": "float", "value": "1e2"}
       }

     want:
       Exit code 1

FAIL invalid/float/trailing-us-exp-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13431):
       trailing-us-exp-2 = 1.2_e2

     output from parser-cmd (PID 13431) (stdout):
       {
         "trailing-us-exp-2": {"type": "float", "value": "1.2e2"}
       }

     want:
       Exit code 1

FAIL invalid/inline-table/overwrite-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13453):
       a={}
       # Inline tables are immutable and can't be extended
       [a.b]

     output from parser-cmd (PID 13453) (stdout):
       {
         "a": {
           "b": {}
         }
       }

     want:
       Exit code 1

FAIL invalid/inline-table/trailing-comma
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13468):
       # A terminating comma (also called trailing comma) is not permitted after the
       # last key/value pair in an inline table
       abc = { abc = 123, }

     output from parser-cmd (PID 13468) (stdout):
       {
         "abc": {
           "abc": {"type": "integer", "value": "123"}
         }
       }

     want:
       Exit code 1

FAIL invalid/integer/incomplete-bin
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13472):
       incomplete-bin = 0b

     output from parser-cmd (PID 13472) (stdout):
       {
         "incomplete-bin": {"type": "integer", "value": "0"}
       }

     want:
       Exit code 1

FAIL invalid/integer/incomplete-hex
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13473):
       incomplete-hex = 0x

     output from parser-cmd (PID 13473) (stdout):
       {
         "incomplete-hex": {"type": "integer", "value": "0"}
       }

     want:
       Exit code 1

FAIL invalid/integer/incomplete-oct
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13474):
       incomplete-oct = 0o

     output from parser-cmd (PID 13474) (stdout):
       {
         "incomplete-oct": {"type": "integer", "value": "0"}
       }

     want:
       Exit code 1

FAIL invalid/integer/invalid-hex-03
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13477):
       a = 0x-1

     output from parser-cmd (PID 13477) (stdout):
       {
         "a": {"type": "integer", "value": "-1"}
       }

     want:
       Exit code 1

FAIL invalid/integer/negative-bin
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13493):
       negative-bin = -0b11010110

     output from parser-cmd (PID 13493) (stdout):
       {
         "negative-bin": {"type": "integer", "value": "-214"}
       }

     want:
       Exit code 1

FAIL invalid/integer/negative-hex
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13500):
       negative-hex = -0xff

     output from parser-cmd (PID 13500) (stdout):
       {
         "negative-hex": {"type": "integer", "value": "-255"}
       }

     want:
       Exit code 1

FAIL invalid/integer/negative-oct
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13504):
       negative-oct = -0o755

     output from parser-cmd (PID 13504) (stdout):
       {
         "negative-oct": {"type": "integer", "value": "-493"}
       }

     want:
       Exit code 1

FAIL invalid/integer/positive-bin
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13503):
       positive-bin = +0b11010110

     output from parser-cmd (PID 13503) (stdout):
       {
         "positive-bin": {"type": "integer", "value": "214"}
       }

     want:
       Exit code 1

FAIL invalid/integer/positive-hex
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13506):
       positive-hex = +0xff

     output from parser-cmd (PID 13506) (stdout):
       {
         "positive-hex": {"type": "integer", "value": "255"}
       }

     want:
       Exit code 1

FAIL invalid/integer/positive-oct
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13497):
       positive-oct = +0o755

     output from parser-cmd (PID 13497) (stdout):
       {
         "positive-oct": {"type": "integer", "value": "493"}
       }

     want:
       Exit code 1

FAIL invalid/integer/us-after-bin
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13509):
       us-after-bin = 0b_1

     output from parser-cmd (PID 13509) (stdout):
       {
         "us-after-bin": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

FAIL invalid/integer/us-after-hex
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13510):
       us-after-hex = 0x_1

     output from parser-cmd (PID 13510) (stdout):
       {
         "us-after-hex": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

FAIL invalid/integer/us-after-oct
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13511):
       us-after-oct = 0o_1

     output from parser-cmd (PID 13511) (stdout):
       {
         "us-after-oct": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

FAIL invalid/key/multiline-key-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13532):
       """key""" = 1

     output from parser-cmd (PID 13532) (stdout):
       {
         "key": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

FAIL invalid/key/multiline-key-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13533):
       '''key''' = 1

     output from parser-cmd (PID 13533) (stdout):
       {
         "key": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

FAIL invalid/key/multiline-key-03
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13535):
       """key""" = """v"""

     output from parser-cmd (PID 13535) (stdout):
       {
         "key": {"type": "string", "value": "v"}
       }

     want:
       Exit code 1

FAIL invalid/key/multiline-key-04
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13536):
       '''key''' = '''v'''

     output from parser-cmd (PID 13536) (stdout):
       {
         "key": {"type": "string", "value": "v"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/feb-29
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13571):
       "not a leap year" = 2100-02-29

     output from parser-cmd (PID 13571) (stdout):
       {
         "not a leap year": {"type": "date-local", "value": "2100-02-29"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/feb-30
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13572):
       "only 28 or 29 days in february" = 1988-02-30

     output from parser-cmd (PID 13572) (stdout):
       {
         "only 28 or 29 days in february": {"type": "date-local", "value": "1988-02-30"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/mday-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13573):
       # date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
       #                           ; month/year
       d = 2006-01-32

     output from parser-cmd (PID 13573) (stdout):
       {
         "d": {"type": "date-local", "value": "2006-01-32"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/mday-under
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13574):
       # date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
       #                           ; month/year
       d = 2006-01-00

     output from parser-cmd (PID 13574) (stdout):
       {
         "d": {"type": "date-local", "value": "2006-01-00"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/month-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13576):
       # date-month      = 2DIGIT  ; 01-12
       d = 2006-13-01

     output from parser-cmd (PID 13576) (stdout):
       {
         "d": {"type": "date-local", "value": "2006-13-01"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/month-under
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13577):
       # date-month      = 2DIGIT  ; 01-12
       d = 2007-00-01

     output from parser-cmd (PID 13577) (stdout):
       {
         "d": {"type": "date-local", "value": "2007-00-01"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/feb-29
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13580):
       "not a leap year" = 2100-02-29T15:15:15

     output from parser-cmd (PID 13580) (stdout):
       {
         "not a leap year": {"type": "datetime-local", "value": "2100-02-29T15:15:15"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/feb-30
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13582):
       "only 28 or 29 days in february" = 1988-02-30T15:15:15

     output from parser-cmd (PID 13582) (stdout):
       {
         "only 28 or 29 days in february": {"type": "datetime-local", "value": "1988-02-30T15:15:15"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/hour-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13589):
       # time-hour       = 2DIGIT  ; 00-23
       d = 2006-01-01T24:00:00

     output from parser-cmd (PID 13589) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-01-01T24:00:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/mday-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13584):
       # date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
       #                           ; month/year
       d = 2006-01-32T00:00:00

     output from parser-cmd (PID 13584) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-01-32T00:00:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/mday-under
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13586):
       # date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
       #                           ; month/year
       d = 2006-01-00T00:00:00

     output from parser-cmd (PID 13586) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-01-00T00:00:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/minute-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13587):
       # time-minute     = 2DIGIT  ; 00-59
       d = 2006-01-01T00:60:00

     output from parser-cmd (PID 13587) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-01-01T00:60:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/month-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13590):
       # date-month      = 2DIGIT  ; 01-12
       d = 2006-13-01T00:00:00

     output from parser-cmd (PID 13590) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-13-01T00:00:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/month-under
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13588):
       # date-month      = 2DIGIT  ; 01-12
       d = 2007-00-01T00:00:00

     output from parser-cmd (PID 13588) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2007-00-01T00:00:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/second-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13595):
       # time-second     = 2DIGIT  ; 00-58, 00-59, 00-60 based on leap second
       #                           ; rules
       d = 2006-01-01T00:00:61

     output from parser-cmd (PID 13595) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-01-01T00:00:61"}
       }

     want:
       Exit code 1

FAIL invalid/local-time/hour-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13598):
       # time-hour       = 2DIGIT  ; 00-23
       d = 24:00:00

     output from parser-cmd (PID 13598) (stdout):
       {
         "d": {"type": "time-local", "value": "24:00:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-time/minute-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13599):
       # time-minute     = 2DIGIT  ; 00-59
       d = 00:60:00

     output from parser-cmd (PID 13599) (stdout):
       {
         "d": {"type": "time-local", "value": "00:60:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-time/second-over
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13601):
       # time-second     = 2DIGIT  ; 00-58, 00-59, 00-60 based on leap second
       #                           ; rules
       d = 00:00:61

     output from parser-cmd (PID 13601) (stdout):
       {
         "d": {"type": "time-local", "value": "00:00:61"}
       }

     want:
       Exit code 1

FAIL invalid/local-time/trailing-dot
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13603):
       t = 12:13:14.

     output from parser-cmd (PID 13603) (stdout):
       {
         "t": {"type": "time-local", "value": "12:13:14.000"}
       }

     want:
       Exit code 1

FAIL invalid/string/basic-multiline-out-of-range-unicode-escape-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13659):
       a = """\U00D80000"""

     output from parser-cmd (PID 13659) (stdout):
       {
         "a": {"type": "string", "value": "�����"}
       }

     want:
       Exit code 1

FAIL invalid/string/basic-out-of-range-unicode-escape-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13658):
       a = "\U00D80000"

     output from parser-cmd (PID 13658) (stdout):
       {
         "a": {"type": "string", "value": "�����"}
       }

     want:
       Exit code 1

FAIL invalid/string/literal-multiline-quotes-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13661):
       a = '''6 apostrophes: ''''''

     output from parser-cmd (PID 13661) (stdout):
       {
         "a": {"type": "string", "value": "6 apostrophes: '''"}
       }

     want:
       Exit code 1

FAIL invalid/string/literal-multiline-quotes-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13662):
       a = '''15 apostrophes: ''''''''''''''''''

     output from parser-cmd (PID 13662) (stdout):
       {
         "a": {"type": "string", "value": "15 apostrophes: '''''''''''''''"}
       }

     want:
       Exit code 1

FAIL invalid/string/multiline-quotes-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13677):
       a = """6 quotes: """"""

     output from parser-cmd (PID 13677) (stdout):
       {
         "a": {"type": "string", "value": "6 quotes: \"\"\""}
       }

     want:
       Exit code 1

FAIL invalid/table/append-with-dotted-keys-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13702):
       # 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"

     output from parser-cmd (PID 13702) (stdout):
       {
         "a": {
           "b": {
             "c": {
               "z": {"type": "integer", "value": "9"},
               "t": {
                 "type":  "string",
                 "value": "Using dotted keys to add to [a.b.c] after explicitly defining it above is not allowed"
               }
             }
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/table/append-with-dotted-keys-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13703):
       # 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"

     output from parser-cmd (PID 13703) (stdout):
       {
         "a": {
           "b": {
             "c": {
               "d": {
                 "z": {"type": "integer", "value": "9"},
                 "k": {
                   "t": {
                     "type":  "string",
                     "value": "Using dotted keys to add to [a.b.c.d] after explicitly defining it above is not allowed"
                   }
                 }
               }
             }
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/table/multiline-key-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13733):
       ["""tbl"""]
       k = 1

     output from parser-cmd (PID 13733) (stdout):
       {
         "tbl": {
           "k": {"type": "integer", "value": "1"}
         }
       }

     want:
       Exit code 1

FAIL invalid/table/multiline-key-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 13740):
       ['''tbl''']
       k = 1

     output from parser-cmd (PID 13740) (stdout):
       {
         "tbl": {
           "k": {"type": "integer", "value": "1"}
         }
       }

     want:
       Exit code 1

toml-test v2025-04-23 [./toml_json]: using embedded tests
  valid tests: 194 passed, 11 failed
invalid tests: 435 passed, 94 failed

==> ENCODER TESTS
(not supported)
took 0.2 7.16