Run artifact

evidence/provider_raw/20260816.123439.459Z_toml_build_codex.raw.jsonl

{"type":"thread.started","thread_id":"01a00a91-25f8-7e02-99e4-aff893357c8b"}
{"type":"turn.started"}
{"type":"item.completed","item":{"id":"item_0","type":"agent_message","text":"I’ll inspect the existing parser and rerun the three failing scoped gates first, then fix the general string/key behavior and verify the project tests plus those authoritative gates."}}
{"type":"item.started","item":{"id":"item_1","type":"command_execution","command":"/bin/bash -lc \"go version && printf '%s\\\\n' '--- files ---' && rg --files -g '\"'!sources/*'\"' -g '\"'!toml-decoder'\"' && printf '%s\\\\n' '--- status ---' && git status --short && printf '%s\\\\n' '--- scoped strings ---' && sh sources/stage_test.sh 'valid/string/**'\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_1","type":"command_execution","command":"/bin/bash -lc \"go version && printf '%s\\\\n' '--- files ---' && rg --files -g '\"'!sources/*'\"' -g '\"'!toml-decoder'\"' && printf '%s\\\\n' '--- status ---' && git status --short && printf '%s\\\\n' '--- scoped strings ---' && sh sources/stage_test.sh 'valid/string/**'\"","aggregated_output":" M ../../../../sources/INSTRUCTIONS.md\n?? ../../\n--- scoped strings ---\nharness: /home/barlo/.local/bin/toml-test toml-test v2.2.0; go1.24.6 linux/amd64; race=false; cgo=true\nFAIL valid/string/multiline-empty\n     line 1: invalid multiline delimiter\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1682983):\n        1 │\u001b[0m empty-1 = \"\"\"\"\"\"\n        2 │\u001b[0m\n        3 │\u001b[0m # A newline immediately following the opening delimiter will be trimmed.\n        4 │\u001b[0m empty-2 = \"\"\"\n        5 │\u001b[0m \"\"\"\n        6 │\u001b[0m\n        7 │\u001b[0m # \\ at the end of line trims newlines as well; note that last \\ is followed by\n        8 │\u001b[0m # two spaces, which are ignored.\n        9 │\u001b[0m empty-3 = \"\"\"\\\n       10 │\u001b[0m     \"\"\"\n       11 │\u001b[0m empty-4 = \"\"\"\\\n       12 │\u001b[0m    \\\n       13 │\u001b[0m    \\\n       14 │\u001b[0m    \"\"\"\n\n     output from parser-cmd (PID 1682983) (stderr):\n        1 │\u001b[0m line 1: invalid multiline delimiter\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/string/multiline-quotes\n     line 19: invalid multiline delimiter\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1683033):\n        1 │\u001b[0m # Make sure that quotes inside multiline strings are allowed, including right\n        2 │\u001b[0m # after the opening '''/\"\"\" and before the closing '''/\"\"\"\n        3 │\u001b[0m\n        4 │\u001b[0m lit_one = ''''one quote''''\n        5 │\u001b[0m lit_two = '''''two quotes'''''\n        6 │\u001b[0m lit_one_space = ''' 'one quote' '''\n        7 │\u001b[0m lit_two_space = ''' ''two quotes'' '''\n        8 │\u001b[0m\n        9 │\u001b[0m one = \"\"\"\"one quote\"\"\"\"\n       10 │\u001b[0m two = \"\"\"\"\"two quotes\"\"\"\"\"\n       11 │\u001b[0m one_space = \"\"\" \"one quote\" \"\"\"\n       12 │\u001b[0m two_space = \"\"\" \"\"two quotes\"\" \"\"\"\n       13 │\u001b[0m\n       14 │\u001b[0m mismatch1 = \"\"\"aaa'''bbb\"\"\"\n       15 │\u001b[0m mismatch2 = '''aaa\"\"\"bbb'''\n       16 │\u001b[0m\n       17 │\u001b[0m # Three opening \"\"\", then one escaped \", then two \"\" (allowed), and then three\n       18 │\u001b[0m # closing \"\"\"\n       19 │\u001b[0m escaped = \"\"\"lol\\\"\"\"\"\"\"\n       20 │\u001b[0m\n       21 │\u001b[0m five-quotes = \"\"\"\n       22 │\u001b[0m Closing with five quotes\n       23 │\u001b[0m \"\"\"\"\"\n       24 │\u001b[0m four-quotes = \"\"\"\n       25 │\u001b[0m Closing with four quotes\n       26 │\u001b[0m \"\"\"\"\n\n     output from parser-cmd (PID 1683033) (stderr):\n        1 │\u001b[0m line 19: invalid multiline delimiter\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\ntoml-test v2.2.0 [/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260816.121804/build/toml/toml-decoder] [no encoder]\nskipped tests: 861\n  valid tests:  21 passed,  2 failed\nencoder tests: no encoder command given\ninvalid tests:   0 passed,  0 failed\n","exit_code":1,"status":"failed"}}
{"type":"item.started","item":{"id":"item_2","type":"command_execution","command":"/bin/bash -lc \"sed -n '1,260p' internal/toml/toml.go && sed -n '260,620p' internal/toml/toml.go && printf '%s\\\\n' '--- tests ---' && sed -n '1,260p' internal/toml/toml_test.go\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_2","type":"command_execution","command":"/bin/bash -lc \"sed -n '1,260p' internal/toml/toml.go && sed -n '260,620p' internal/toml/toml.go && printf '%s\\\\n' '--- tests ---' && sed -n '1,260p' internal/toml/toml_test.go\"","aggregated_output":"// Package toml provides the TOML decoder used by the command-line filter.\npackage toml\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\ntype scalar struct {\n\tType  string `json:\"type\"`\n\tValue string `json:\"value\"`\n}\n\n// Decode parses a TOML document and returns its tagged representation.\nfunc Decode(input string) (map[string]any, error) {\n\tif !utf8.ValidString(input) {\n\t\treturn nil, fmt.Errorf(\"invalid UTF-8\")\n\t}\n\tresult := map[string]any{}\n\tcurrent := result\n\tpos := 0\n\tline := 1\n\tfor pos < len(input) {\n\t\tstart := pos\n\t\tfor pos < len(input) && input[pos] != '\\n' {\n\t\t\tpos++\n\t\t}\n\t\tif pos < len(input) {\n\t\t\tpos++\n\t\t}\n\t\tphysical := input[start:pos]\n\t\tif strings.TrimSpace(physical) == \"\" || strings.HasPrefix(strings.TrimSpace(physical), \"#\") {\n\t\t\tline++\n\t\t\tcontinue\n\t\t}\n\t\ttrimmedLine := strings.TrimSpace(physical)\n\t\tif strings.HasPrefix(trimmedLine, \"[\") {\n\t\t\tif strings.HasPrefix(trimmedLine, \"[[\") {\n\t\t\t\tif !strings.HasSuffix(strings.TrimSpace(trimmedLine), \"]]\") {\n\t\t\t\t\treturn nil, fmt.Errorf(\"line %d: invalid array table\", line)\n\t\t\t\t}\n\t\t\t\tpath, err := parseKeyPath(strings.TrimSpace(trimmedLine[2 : len(strings.TrimSpace(trimmedLine))-2]))\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"line %d: %w\", line, err)\n\t\t\t\t}\n\t\t\t\tcontainer := result\n\t\t\t\tfor _, key := range path[:len(path)-1] {\n\t\t\t\t\tif next, ok := container[key].(map[string]any); ok {\n\t\t\t\t\t\tcontainer = next\n\t\t\t\t\t} else if container[key] == nil {\n\t\t\t\t\t\tnext := map[string]any{}\n\t\t\t\t\t\tcontainer[key] = next\n\t\t\t\t\t\tcontainer = next\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn nil, fmt.Errorf(\"line %d: invalid table path\", line)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tname := path[len(path)-1]\n\t\t\t\tarray, ok := container[name].([]any)\n\t\t\t\tif !ok {\n\t\t\t\t\tarray = []any{}\n\t\t\t\t}\n\t\t\t\tchild := map[string]any{}\n\t\t\t\tarray = append(array, child)\n\t\t\t\tcontainer[name] = array\n\t\t\t\tcurrent = child\n\t\t\t\tline += strings.Count(physical, \"\\n\")\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !strings.HasSuffix(trimmedLine, \"]\") {\n\t\t\t\treturn nil, fmt.Errorf(\"line %d: invalid table\", line)\n\t\t\t}\n\t\t\tpath, err := parseKeyPath(strings.TrimSpace(trimmedLine[1 : len(trimmedLine)-1]))\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"line %d: %w\", line, err)\n\t\t\t}\n\t\t\tcurrent = result\n\t\t\tfor _, key := range path {\n\t\t\t\tif next, ok := current[key].(map[string]any); ok {\n\t\t\t\t\tcurrent = next\n\t\t\t\t} else if current[key] == nil {\n\t\t\t\t\tnext := map[string]any{}\n\t\t\t\t\tcurrent[key] = next\n\t\t\t\t\tcurrent = next\n\t\t\t\t} else {\n\t\t\t\t\treturn nil, fmt.Errorf(\"line %d: table conflicts with value\", line)\n\t\t\t\t}\n\t\t\t}\n\t\t\tline += strings.Count(physical, \"\\n\")\n\t\t\tcontinue\n\t\t}\n\t\teq := assignmentEquals(physical)\n\t\tif eq < 0 {\n\t\t\treturn nil, fmt.Errorf(\"line %d: expected key-value pair\", line)\n\t\t}\n\t\tkeys, err := parseKeyPath(strings.TrimSpace(physical[:eq]))\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"line %d: %w\", line, err)\n\t\t}\n\t\tvalueText := input[start+eq+1:]\n\t\tvalue, consumed, err := parseValue(valueText, input, start+eq+1)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"line %d: %w\", line, err)\n\t\t}\n\t\tlineEnd := strings.IndexByte(valueText, '\\n')\n\t\tif lineEnd < 0 {\n\t\t\tlineEnd = len(valueText)\n\t\t}\n\t\tif consumed > lineEnd {\n\t\t\tlineEnd = consumed\n\t\t}\n\t\ttrailing := strings.TrimSpace(valueText[consumed:lineEnd])\n\t\tif trailing != \"\" && !isComment(trailing) {\n\t\t\treturn nil, fmt.Errorf(\"line %d: trailing characters after value\", line)\n\t\t}\n\t\tif err := setPath(current, keys, value); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"line %d: %w\", line, err)\n\t\t}\n\t\tpos = start + eq + 1 + consumed\n\t\tline += strings.Count(input[start:pos], \"\\n\")\n\t}\n\treturn result, nil\n}\n\nfunc assignmentEquals(line string) int {\n\tquote := byte(0)\n\tfor i := 0; i < len(line); i++ {\n\t\tif quote != 0 {\n\t\t\tif quote == '\"' && line[i] == '\\\\' {\n\t\t\t\ti++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif line[i] == quote {\n\t\t\t\tquote = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif line[i] == '\\'' || line[i] == '\"' {\n\t\t\tquote = line[i]\n\t\t\tcontinue\n\t\t}\n\t\tif line[i] == '=' {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\nfunc parseKeyPath(text string) ([]string, error) {\n\tvar keys []string\n\tfor len(strings.TrimSpace(text)) > 0 {\n\t\ttext = strings.TrimSpace(text)\n\t\tvar key string\n\t\tvar rest string\n\t\tquoted := false\n\t\tswitch text[0] {\n\t\tcase '\\'', '\"':\n\t\t\tquoted = true\n\t\t\tend, value, err := parseQuoted(text, 0, text[0] == '\"')\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid key: %w\", err)\n\t\t\t}\n\t\t\tkey, rest = value, text[end:]\n\t\tdefault:\n\t\t\ti := 0\n\t\t\tfor i < len(text) && (text[i] >= 'a' && text[i] <= 'z' || text[i] >= 'A' && text[i] <= 'Z' || text[i] >= '0' && text[i] <= '9' || text[i] == '_' || text[i] == '-') {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tif i == 0 {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid or empty key\")\n\t\t\t}\n\t\t\tkey, rest = text[:i], text[i:]\n\t\t}\n\t\tif key == \"\" && !quoted {\n\t\t\treturn nil, fmt.Errorf(\"invalid or empty key\")\n\t\t}\n\t\tkeys = append(keys, key)\n\t\trest = strings.TrimSpace(rest)\n\t\tif rest == \"\" {\n\t\t\treturn keys, nil\n\t\t}\n\t\tif rest[0] != '.' {\n\t\t\treturn nil, fmt.Errorf(\"invalid key separator\")\n\t\t}\n\t\ttext = rest[1:]\n\t}\n\treturn nil, fmt.Errorf(\"empty key\")\n}\n\nfunc parseValue(text, full string, absolute int) (any, int, error) {\n\tif strings.HasPrefix(strings.TrimLeft(text, \" \\t\"), \"\\n\") || strings.HasPrefix(strings.TrimLeft(text, \" \\t\"), \"\\r\") {\n\t\treturn nil, 0, fmt.Errorf(\"missing value\")\n\t}\n\ttrimmed := strings.TrimLeft(text, \" \\t\\r\\n\")\n\toffset := len(text) - len(trimmed)\n\tif trimmed == \"\" {\n\t\treturn nil, 0, fmt.Errorf(\"missing value\")\n\t}\n\tif strings.HasPrefix(trimmed, \"\\\"\\\"\\\"\") || strings.HasPrefix(trimmed, \"'''\") {\n\t\tliteral := trimmed[0] == '\\''\n\t\tvalue, end, err := parseMultiline(trimmed, literal)\n\t\treturn value, offset + end, err\n\t}\n\tif trimmed[0] == '{' {\n\t\tend := strings.IndexByte(trimmed, '}')\n\t\tif end < 0 {\n\t\t\treturn nil, 0, fmt.Errorf(\"unterminated inline table\")\n\t\t}\n\t\tbody := strings.TrimSpace(trimmed[1:end])\n\t\ttable := map[string]any{}\n\t\tif body != \"\" {\n\t\t\tfor _, item := range strings.Split(body, \",\") {\n\t\t\t\teq := strings.IndexByte(item, '=')\n\t\t\t\tif eq < 0 {\n\t\t\t\t\treturn nil, 0, fmt.Errorf(\"invalid inline table\")\n\t\t\t\t}\n\t\t\t\tkeys, err := parseKeyPath(strings.TrimSpace(item[:eq]))\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, 0, err\n\t\t\t\t}\n\t\t\t\tvalue, _, err := parseValue(strings.TrimSpace(item[eq+1:]), \"\", 0)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, 0, err\n\t\t\t\t}\n\t\t\t\tif err := setPath(table, keys, value); err != nil {\n\t\t\t\t\treturn nil, 0, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn table, offset + end + 1, nil\n\t}\n\tif trimmed[0] == '\\'' || trimmed[0] == '\"' {\n\t\tend, value, err := parseQuoted(trimmed, 0, trimmed[0] == '\"')\n\t\treturn scalar{Type: \"string\", Value: value}, offset + end, err\n\t}\n\tend := len(trimmed)\n\tif newline := strings.IndexAny(trimmed, \"\\r\\n\"); newline >= 0 {\n\t\tend = newline\n\t}\n\tfor i, r := range trimmed {\n\t\tif r == '#' {\n\t\t\tend = i\n\t\t\tbreak\n\t\t}\n\t}\n\tword := strings.TrimSpace(trimmed[:end])\n\tif word == \"true\" || word == \"false\" {\n\t\treturn scalar{Type: \"bool\", Value: word}, offset + end, nil\n\t}\n\tif _, err := strconv.ParseInt(strings.ReplaceAll(word, \"_\", \"\"), 10, 64); err == nil {\n\t\treturn scalar{Type: \"integer\", Value: word}, offset + end, nil\n\t}\n\tif strings.Count(word, \".\") == 1 {\n\t\tif _, err := strconv.ParseFloat(strings.ReplaceAll(word, \"_\", \"\"), 64); err == nil {\n\t\t\treturn scalar{Type: \"float\", Value: word}, offset + end, nil\n\t\t}\n\t}\n\treturn nil, 0, fmt.Errorf(\"invalid value %q\", word)\n\treturn nil, 0, fmt.Errorf(\"invalid value %q\", word)\n}\n\nfunc parseQuoted(s string, start int, basic bool) (int, string, error) {\n\tquote := s[start]\n\tvar b strings.Builder\n\tfor i := start + 1; i < len(s); i++ {\n\t\tif s[i] == quote {\n\t\t\treturn i + 1, b.String(), nil\n\t\t}\n\t\tif s[i] == '\\n' || s[i] == '\\r' || (s[i] < 0x20 && s[i] != '\\t') {\n\t\t\treturn 0, \"\", fmt.Errorf(\"control character in string\")\n\t\t}\n\t\tif basic && s[i] == '\\\\' {\n\t\t\tvalue, end, err := decodeEscape(s, i)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, \"\", err\n\t\t\t}\n\t\t\tb.WriteString(value)\n\t\t\ti = end - 1\n\t\t\tcontinue\n\t\t}\n\t\tb.WriteByte(s[i])\n\t}\n\treturn 0, \"\", fmt.Errorf(\"unterminated string\")\n}\n\nfunc parseMultiline(s string, literal bool) (scalar, int, error) {\n\tdelim := s[:3]\n\tend := -1\n\tfor i := 3; i+2 < len(s); i++ {\n\t\tif s[i:i+3] == delim && (literal || !escaped(s, i)) {\n\t\t\tif i+3 < len(s) && s[i+3] == delim[0] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\trun := 3\n\t\t\tfor j := i - 1; j >= 0 && s[j] == delim[0]; j-- {\n\t\t\t\trun++\n\t\t\t}\n\t\t\tfor j := i + 3; j < len(s) && s[j] == delim[0]; j++ {\n\t\t\t\trun++\n\t\t\t}\n\t\t\tif run > 5 {\n\t\t\t\treturn scalar{}, 0, fmt.Errorf(\"invalid multiline delimiter\")\n\t\t\t}\n\t\t\tend = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif end < 0 {\n\t\treturn scalar{}, 0, fmt.Errorf(\"unterminated multiline string\")\n\t}\n\tbody := s[3:end]\n\tif strings.HasPrefix(body, \"\\r\\n\") {\n\t\tbody = body[2:]\n\t} else if strings.HasPrefix(body, \"\\n\") {\n\t\tbody = body[1:]\n\t}\n\tif literal {\n\t\tif strings.ContainsAny(body, \"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x0b\\x0c\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f\") {\n\t\t\treturn scalar{}, 0, fmt.Errorf(\"control character in string\")\n\t\t}\n\t\treturn scalar{Type: \"string\", Value: body}, end + 3, nil\n\t}\n\tdecoded, err := decodeBasic(body)\n\treturn scalar{Type: \"string\", Value: decoded}, end + 3, err\n}\n\nfunc decodeBasic(s string) (string, error) {\n\tvar b strings.Builder\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] == '\\\\' {\n\t\t\tj := i + 1\n\t\t\tfor j < len(s) && (s[j] == ' ' || s[j] == '\\t') {\n\t\t\t\tj++\n\t\t\t}\n\t\t\tif j < len(s) && (s[j] == '\\n' || s[j] == '\\r') {\n\t\t\t\ti = j\n\t\t\t\tif s[i] == '\\r' && i+1 < len(s) && s[i+1] == '\\n' {\n\t\t\t\t\ti++\n\t\t\t\t}\n\t\t\t\tfor i+1 < len(s) && (s[i+1] == ' ' || s[i+1] == '\\t' || s[i+1] == '\\n' || s[i+1] == '\\r') {\n\t\t\t\t\ti++\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif s[i] == '\\\\' {\n\t\t\tvalue, end, err := decodeEscape(s, i)\n\t\t\tif err != nil {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t\tb.WriteString(value)\n\t\t\ti = end - 1\n\t\t\tcontinue\n\t\t}\n\t\tif s[i] < 0x20 && s[i] != '\\n' && s[i] != '\\t' && s[i] != '\\r' {\n\t\t\treturn \"\", fmt.Errorf(\"control character in string\")\n\t\t}\n\t\tb.WriteByte(s[i])\n\t}\n\treturn b.String(), nil\n}\n\nfunc decodeEscape(s string, i int) (string, int, error) {\n\tif i+1 >= len(s) {\n\t\treturn \"\", 0, fmt.Errorf(\"invalid escape\")\n\t}\n\tshort := map[byte]string{'b': \"\\b\", 't': \"\\t\", 'n': \"\\n\", 'f': \"\\f\", 'r': \"\\r\", '\"': \"\\\"\", '\\\\': \"\\\\\"}\n\tif value, ok := short[s[i+1]]; ok {\n\t\treturn value, i + 2, nil\n\t}\n\twidth := 0\n\tif s[i+1] == 'u' {\n\t\twidth = 4\n\t}\n\tif s[i+1] == 'U' {\n\t\twidth = 8\n\t}\n\tif width == 0 || i+2+width > len(s) {\n\t\treturn \"\", 0, fmt.Errorf(\"invalid escape\")\n\t}\n\tcode, err := strconv.ParseUint(s[i+2:i+2+width], 16, 32)\n\tif err != nil || code > 0x10ffff || code >= 0xd800 && code <= 0xdfff {\n\t\treturn \"\", 0, fmt.Errorf(\"invalid Unicode escape\")\n\t}\n\treturn string(rune(code)), i + 2 + width, nil\n}\n\nfunc escaped(s string, i int) bool {\n\tn := 0\n\tfor i > 0 && s[i-1] == '\\\\' {\n\t\tn++\n\t\ti--\n\t}\n\treturn n%2 == 1\n}\nfunc isComment(s string) bool { return strings.HasPrefix(s, \"#\") }\n\nfunc setPath(root map[string]any, keys []string, value any) error {\n\tcurrent := root\n\tfor _, key := range keys[:len(keys)-1] {\n\t\texisting, ok := current[key]\n\t\tif !ok {\n\t\t\tchild := map[string]any{}\n\t\t\tcurrent[key] = child\n\t\t\tcurrent = child\n\t\t\tcontinue\n\t\t}\n\t\tchild, ok := existing.(map[string]any)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"cannot extend scalar key %q\", key)\n\t\t}\n\t\tcurrent = child\n\t}\n\tlast := keys[len(keys)-1]\n\tif _, exists := current[last]; exists {\n\t\treturn fmt.Errorf(\"duplicate key %q\", last)\n\t}\n\tcurrent[last] = value\n\treturn nil\n}\n--- tests ---\npackage toml\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n)\n\nfunc TestDecodeEmptyDocument(t *testing.T) {\n\tgot, err := Decode(\"\")\n\tif err != nil {\n\t\tt.Fatalf(\"Decode(\\\"\\\") returned error: %v\", err)\n\t}\n\tif want := map[string]any{}; !reflect.DeepEqual(got, want) {\n\t\tt.Fatalf(\"Decode(\\\"\\\") = %#v, want %#v\", got, want)\n\t}\n}\n\nfunc TestDecodeStringsAndDottedKeys(t *testing.T) {\n\tgot, err := Decode(\"basic = \\\"line\\\\n\\\"\\nliteral = 'a # b'\\nmessage = \\\"\\\"\\\"\\\\\\n  hello\\\\\\n  world\\\"\\\"\\\"\\nroot.\\\"with.dot\\\" = true\\n\")\n\tif err != nil {\n\t\tt.Fatalf(\"Decode returned error: %v\", err)\n\t}\n\tif got[\"basic\"].(scalar).Value != \"line\\n\" || got[\"literal\"].(scalar).Value != \"a # b\" || got[\"message\"].(scalar).Value != \"helloworld\" {\n\t\tt.Fatalf(\"unexpected string values: %#v\", got)\n\t}\n\troot := got[\"root\"].(map[string]any)\n\tif root[\"with.dot\"].(scalar).Value != \"true\" {\n\t\tt.Fatalf(\"unexpected quoted dotted key: %#v\", got)\n\t}\n}\n\nfunc TestDecodeRejectsKeyRedefinitionAndInvalidStrings(t *testing.T) {\n\tfor _, input := range []string{\"a = 1\\na = 2\\n\", \"a = 1\\na.b = 2\\n\", \"a = \\\"\\\\q\\\"\\n\", \"a = '''unterminated\\n\"} {\n\t\tif _, err := Decode(input); err == nil {\n\t\t\tt.Fatalf(\"Decode(%q) accepted invalid TOML\", input)\n\t\t}\n\t}\n}\n","exit_code":0,"status":"completed"}}
{"type":"item.started","item":{"id":"item_3","type":"command_execution","command":"/bin/bash -lc \"sh sources/stage_test.sh 'valid/key/**'\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_3","type":"command_execution","command":"/bin/bash -lc \"sh sources/stage_test.sh 'valid/key/**'\"","aggregated_output":"harness: /home/barlo/.local/bin/toml-test toml-test v2.2.0; go1.24.6 linux/amd64; race=false; cgo=true\nFAIL valid/key/like-date\n     line 2: invalid value \"1\\n\\\"2001-02-04\\\" = 2\\n'2001-02-05' = 3\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1683404):\n        1 │\u001b[0m # '-' is a valid character in keys: make a key that looks like a date.\n        2 │\u001b[0m 2001-02-03   = 1\n        3 │\u001b[0m \"2001-02-04\" = 2\n        4 │\u001b[0m '2001-02-05' = 3\n        5 │\u001b[0m\n        6 │\u001b[0m # Also include datetime and time for good measure; these need to be quoted as\n        7 │\u001b[0m # ':' isn't a valid bare key.\n        8 │\u001b[0m \"2001-02-06T15:16:17+01:00\" = 4\n        9 │\u001b[0m \"2001-02-07T15:16:17\"       = 5\n       10 │\u001b[0m \"15:16:17\"                  = 6\n       11 │\u001b[0m\n       12 │\u001b[0m # Dotted keys\n       13 │\u001b[0m a.2001-02-08 = 7\n       14 │\u001b[0m a.2001-02-09.2001-02-10 = 8\n       15 │\u001b[0m 2001-02-11.a.2001-02-12 = 9\n       16 │\u001b[0m\n       17 │\u001b[0m # Table names\n       18 │\u001b[0m [2002-01-02]\n       19 │\u001b[0m k = 10\n       20 │\u001b[0m\n       21 │\u001b[0m [2002-01-02.2024-01-03]\n       22 │\u001b[0m k = 11\n       23 │\u001b[0m\n       24 │\u001b[0m [[2002-01-04]]\n       25 │\u001b[0m k = 12\n\n     output from parser-cmd (PID 1683404) (stderr):\n        1 │\u001b[0m line 2: invalid value \"1\\n\\\"2001-02-04\\\" = 2\\n'2001-02-05' = 3\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\ntoml-test v2.2.0 [/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260816.121804/build/toml/toml-decoder] [no encoder]\nskipped tests: 856\n  valid tests:  27 passed,  1 failed\nencoder tests: no encoder command given\ninvalid tests:   0 passed,  0 failed\n","exit_code":1,"status":"failed"}}
{"type":"item.started","item":{"id":"item_4","type":"command_execution","command":"/bin/bash -lc \"printf '%s\\\\n' '2001-02-03   = 1' '\\\"2001-02-04\\\" = 2' \\\"'2001-02-05' = 3\\\" | ./toml-decoder; printf '\\\\n--- go test ---\\\\n'; go test ./internal/toml -v\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_4","type":"command_execution","command":"/bin/bash -lc \"printf '%s\\\\n' '2001-02-03   = 1' '\\\"2001-02-04\\\" = 2' \\\"'2001-02-05' = 3\\\" | ./toml-decoder; printf '\\\\n--- go test ---\\\\n'; go test ./internal/toml -v\"","aggregated_output":"=== RUN   TestDecodeEmptyDocument\n--- PASS: TestDecodeEmptyDocument (0.00s)\n=== RUN   TestDecodeStringsAndDottedKeys\n--- PASS: TestDecodeStringsAndDottedKeys (0.00s)\n=== RUN   TestDecodeRejectsKeyRedefinitionAndInvalidStrings\n--- PASS: TestDecodeRejectsKeyRedefinitionAndInvalidStrings (0.00s)\nPASS\nok  \tgithub.com/owner/toml-decoder/internal/toml\t0.014s\n","exit_code":0,"status":"completed"}}
{"type":"item.started","item":{"id":"item_5","type":"command_execution","command":"/bin/bash -lc \"find /home/barlo -type f -path '*valid/key/like-date*' -o -type f -name 'like-date.toml' 2>/dev/null | head\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_5","type":"command_execution","command":"/bin/bash -lc \"find /home/barlo -type f -path '*valid/key/like-date*' -o -type f -name 'like-date.toml' 2>/dev/null | head\"","aggregated_output":"/home/barlo/go/pkg/mod/github.com/toml-lang/toml-test/v2@v2.2.0/tests/valid/key/like-date.toml\n/home/barlo/go/pkg/mod/github.com/toml-lang/toml-test/v2@v2.2.0/tests/valid/key/like-date.json\n/home/barlo/go/pkg/mod/github.com/!burnt!sushi/toml@v1.6.0/internal/toml-test/tests/valid/key/like-date.toml\n/home/barlo/go/pkg/mod/github.com/!burnt!sushi/toml@v1.6.0/internal/toml-test/tests/valid/key/like-date.json\n","exit_code":0,"status":"completed"}}
{"type":"item.started","item":{"id":"item_6","type":"command_execution","command":"/bin/bash -lc 'od -An -tx1 -c /home/barlo/go/pkg/mod/github.com/toml-lang/toml-test/v2@v2.2.0/tests/valid/key/like-date.toml | head -12; go build -o /tmp/toml-decoder ./cmd/toml-decoder 2>&1 || true; /tmp/toml-decoder < /home/barlo/go/pkg/mod/github.com/toml-lang/toml-test/v2@v2.2.0/tests/valid/key/like-date.toml'","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_6","type":"command_execution","command":"/bin/bash -lc 'od -An -tx1 -c /home/barlo/go/pkg/mod/github.com/toml-lang/toml-test/v2@v2.2.0/tests/valid/key/like-date.toml | head -12; go build -o /tmp/toml-decoder ./cmd/toml-decoder 2>&1 || true; /tmp/toml-decoder < /home/barlo/go/pkg/mod/github.com/toml-lang/toml-test/v2@v2.2.0/tests/valid/key/like-date.toml'","aggregated_output":"line 2: invalid value \"1\\n\\\"2001-02-04\\\" = 2\\n'2001-02-05' = 3\"\n","exit_code":1,"status":"failed"}}
{"type":"item.completed","item":{"id":"item_7","type":"agent_message","text":"The failures are narrowed to two concrete parser bugs: comment scanning was allowed to override the end-of-line boundary, and multiline quote runs were treated as invalid whenever content quotes occurred adjacent to the closing delimiter. I’m patching both generalized cases now."}}
{"type":"item.started","item":{"id":"item_8","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260816.121804/build/toml/internal/toml/toml.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_8","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260816.121804/build/toml/internal/toml/toml.go","kind":"update"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_9","type":"command_execution","command":"/bin/bash -lc \"gofmt -w internal/toml/toml.go && go test ./... && go vet ./... && sh sources/stage_test.sh 'valid/string/**' && sh sources/stage_test.sh 'invalid/string/**' && sh sources/stage_test.sh 'valid/key/**' && sh sources/stage_test.sh 'invalid/key/**'\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_9","type":"command_execution","command":"/bin/bash -lc \"gofmt -w internal/toml/toml.go && go test ./... && go vet ./... && sh sources/stage_test.sh 'valid/string/**' && sh sources/stage_test.sh 'invalid/string/**' && sh sources/stage_test.sh 'valid/key/**' && sh sources/stage_test.sh 'invalid/key/**'\"","aggregated_output":"ok  \tgithub.com/owner/toml-decoder/cmd/toml-decoder\t0.695s\nok  \tgithub.com/owner/toml-decoder/internal/toml\t0.007s\nharness: /home/barlo/.local/bin/toml-test toml-test v2.2.0; go1.24.6 linux/amd64; race=false; cgo=true\ntoml-test v2.2.0 [/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260816.121804/build/toml/toml-decoder] [no encoder]\nskipped tests: 861\n  valid tests:  23 passed,  0 failed\nencoder tests: no encoder command given\ninvalid tests:   0 passed,  0 failed\nharness: /home/barlo/.local/bin/toml-test toml-test v2.2.0; go1.24.6 linux/amd64; race=false; cgo=true\ntoml-test v2.2.0 [/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260816.121804/build/toml/toml-decoder] [no encoder]\nskipped tests: 807\n  valid tests:   0 passed,  0 failed\nencoder tests: no encoder command given\ninvalid tests:  77 passed,  0 failed\nharness: /home/barlo/.local/bin/toml-test toml-test v2.2.0; go1.24.6 linux/amd64; race=false; cgo=true\ntoml-test v2.2.0 [/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260816.121804/build/toml/toml-decoder] [no encoder]\nskipped tests: 856\n  valid tests:  28 passed,  0 failed\nencoder tests: no encoder command given\ninvalid tests:   0 passed,  0 failed\nharness: /home/barlo/.local/bin/toml-test toml-test v2.2.0; go1.24.6 linux/amd64; race=false; cgo=true\ntoml-test v2.2.0 [/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260816.121804/build/toml/toml-decoder] [no encoder]\nskipped tests: 823\n  valid tests:   0 passed,  0 failed\nencoder tests: no encoder command given\ninvalid tests:  61 passed,  0 failed\n","exit_code":0,"status":"completed"}}
{"type":"item.completed","item":{"id":"item_10","type":"agent_message","text":"All four scoped conformance gates now pass: 23/23 valid strings, 77/77 invalid strings, 28/28 valid keys, and 61/61 invalid keys. I’m doing the final required build/test checks and confirming the exact changed-file list."}}
{"type":"item.started","item":{"id":"item_11","type":"command_execution","command":"/bin/bash -lc 'sh sources/full_test.sh'","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_11","type":"command_execution","command":"/bin/bash -lc 'sh sources/full_test.sh'","aggregated_output":"harness: /home/barlo/.local/bin/toml-test toml-test v2.2.0; go1.24.6 linux/amd64; race=false; cgo=true\nFAIL valid/array/array\n     line 1: invalid value \"[1, 2, 3, ]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686876):\n        1 │\u001b[0m ints = [1, 2, 3, ]\n        2 │\u001b[0m floats = [1.1, 2.1, 3.1]\n        3 │\u001b[0m strings = [\"a\", \"b\", \"c\"]\n        4 │\u001b[0m dates = [\n        5 │\u001b[0m \t1987-07-05T17:45:00Z,\n        6 │\u001b[0m \t1979-05-27T07:32:00,\n        7 │\u001b[0m \t2006-06-01,\n        8 │\u001b[0m \t11:00:00,\n        9 │\u001b[0m ]\n       10 │\u001b[0m comments = [\n       11 │\u001b[0m          1,\n       12 │\u001b[0m          2, #this is ok\n       13 │\u001b[0m ]\n\n     output from parser-cmd (PID 1686876) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[1, 2, 3, ]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/array-subtables\n     line 2: table conflicts with value\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686875):\n        1 │\u001b[0m [[arr]]\n        2 │\u001b[0m [arr.subtab]\n        3 │\u001b[0m val=1\n        4 │\u001b[0m\n        5 │\u001b[0m [[arr]]\n        6 │\u001b[0m [arr.subtab]\n        7 │\u001b[0m val=2\n\n     output from parser-cmd (PID 1686875) (stderr):\n        1 │\u001b[0m line 2: table conflicts with value\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/bool\n     line 1: invalid value \"[true, false]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686795):\n        1 │\u001b[0m a = [true, false]\n\n     output from parser-cmd (PID 1686795) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[true, false]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/empty\n     line 1: invalid value \"[[[[[]]]]]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686823):\n        1 │\u001b[0m thevoid = [[[[[]]]]]\n\n     output from parser-cmd (PID 1686823) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[[[[[]]]]]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/hetergeneous\n     line 1: invalid value \"[[1, 2], [\\\"a\\\", \\\"b\\\"], [1.1, 2.1]]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686828):\n        1 │\u001b[0m mixed = [[1, 2], [\"a\", \"b\"], [1.1, 2.1]]\n\n     output from parser-cmd (PID 1686828) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[[1, 2], [\\\"a\\\", \\\"b\\\"], [1.1, 2.1]]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/mixed-int-array\n     line 1: invalid value \"[1, [\\\"Arrays are not integers.\\\"]]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686874):\n        1 │\u001b[0m arrays-and-ints =  [1, [\"Arrays are not integers.\"]]\n\n     output from parser-cmd (PID 1686874) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[1, [\\\"Arrays are not integers.\\\"]]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/mixed-int-float\n     line 1: invalid value \"[1, 1.1]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686936):\n        1 │\u001b[0m ints-and-floats = [1, 1.1]\n\n     output from parser-cmd (PID 1686936) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[1, 1.1]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/mixed-int-string\n     line 1: invalid value \"[\\\"hi\\\", 42]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686937):\n        1 │\u001b[0m strings-and-ints = [\"hi\", 42]\n\n     output from parser-cmd (PID 1686937) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[\\\"hi\\\", 42]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/mixed-string-table\n     line 1: invalid value \"[\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686925):\n        1 │\u001b[0m contributors = [\n        2 │\u001b[0m   \"Foo Bar <foo@example.com>\",\n        3 │\u001b[0m   { name = \"Baz Qux\", email = \"bazqux@example.com\", url = \"https://example.com/bazqux\" }\n        4 │\u001b[0m ]\n        5 │\u001b[0m\n        6 │\u001b[0m # Start with a table as the first element. This tests a case that some libraries\n        7 │\u001b[0m # might have where they will check if the first entry is a table/map/hash/assoc\n        8 │\u001b[0m # array and then encode it as a table array. This was a reasonable thing to do\n        9 │\u001b[0m # before TOML 1.0 since arrays could only contain one type, but now it's no\n       10 │\u001b[0m # longer.\n       11 │\u001b[0m mixed = [{k=\"a\"}, \"b\", 1]\n\n     output from parser-cmd (PID 1686925) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/nested\n     line 1: invalid value \"[[\\\"a\\\"], [\\\"b\\\"]]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686798):\n        1 │\u001b[0m nest = [[\"a\"], [\"b\"]]\n\n     output from parser-cmd (PID 1686798) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[[\\\"a\\\"], [\\\"b\\\"]]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/nested-double\n     line 1: invalid value \"[\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686928):\n        1 │\u001b[0m nest = [\n        2 │\u001b[0m \t[\n        3 │\u001b[0m \t\t[\"a\"],\n        4 │\u001b[0m \t\t[1, 2, [3]]\n        5 │\u001b[0m \t]\n        6 │\u001b[0m ]\n\n     output from parser-cmd (PID 1686928) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/nested-inline-table\n     line 1: invalid value \"[ { b = {} } ]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686931):\n        1 │\u001b[0m a = [ { b = {} } ]\n\n     output from parser-cmd (PID 1686931) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[ { b = {} } ]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/nospaces\n     line 1: invalid value \"[1,2,3]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686796):\n        1 │\u001b[0m ints = [1,2,3]\n\n     output from parser-cmd (PID 1686796) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[1,2,3]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/string-quote-comma-01\n     line 1: invalid value \"[\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686873):\n        1 │\u001b[0m title = [\n        2 │\u001b[0m \"Client: \\\"XXXX\\\", Job: XXXX\",\n        3 │\u001b[0m \"Code: XXXX\"\n        4 │\u001b[0m ]\n\n     output from parser-cmd (PID 1686873) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/string-quote-comma-02\n     line 1: invalid value \"[ \\\" \\\\\\\", \\\",]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686824):\n        1 │\u001b[0m title = [ \" \\\", \",]\n\n     output from parser-cmd (PID 1686824) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[ \\\" \\\\\\\", \\\",]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/string-with-comma-01\n     line 1: invalid value \"[\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686870):\n        1 │\u001b[0m title = [\n        2 │\u001b[0m \"Client: XXXX, Job: XXXX\",\n        3 │\u001b[0m \"Code: XXXX\"\n        4 │\u001b[0m ]\n\n     output from parser-cmd (PID 1686870) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/string-with-comma-02\n     line 1: invalid value \"[\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686871):\n        1 │\u001b[0m title = [\n        2 │\u001b[0m \"\"\"Client: XXXX,\n        3 │\u001b[0m Job: XXXX\"\"\",\n        4 │\u001b[0m \"Code: XXXX\"\n        5 │\u001b[0m ]\n\n     output from parser-cmd (PID 1686871) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/strings\n     line 1: invalid value \"[ \\\"all\\\", 'strings', \\\"\\\"\\\"are the same\\\"\\\"\\\", '''type''']\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686877):\n        1 │\u001b[0m string_array = [ \"all\", 'strings', \"\"\"are the same\"\"\", '''type''']\n\n     output from parser-cmd (PID 1686877) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[ \\\"all\\\", 'strings', \\\"\\\"\\\"are the same\\\"\\\"\\\", '''type''']\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/table-array-string-backslash\n     line 1: invalid value \"[ { bar=\\\"\\\\\\\"{{baz}}\\\\\\\"\\\"} ]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686932):\n        1 │\u001b[0m foo = [ { bar=\"\\\"{{baz}}\\\"\"} ]\n\n     output from parser-cmd (PID 1686932) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[ { bar=\\\"\\\\\\\"{{baz}}\\\\\\\"\\\"} ]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/array/trailing-comma\n     line 1: invalid value \"[1,]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686933):\n        1 │\u001b[0m arr-1 = [1,]\n        2 │\u001b[0m\n        3 │\u001b[0m arr-2 = [2,3,]\n        4 │\u001b[0m\n        5 │\u001b[0m arr-3 = [4,\n        6 │\u001b[0m ]\n        7 │\u001b[0m\n        8 │\u001b[0m arr-4 = [\n        9 │\u001b[0m \t5,\n       10 │\u001b[0m \t6,\n       11 │\u001b[0m ]\n\n     output from parser-cmd (PID 1686933) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[1,]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/comment/after-literal-no-ws\n     line 1: invalid value \"inf\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686826):\n        1 │\u001b[0m inf=inf#infinity\n        2 │\u001b[0m nan=nan#not a number\n        3 │\u001b[0m true=true#true\n        4 │\u001b[0m false=false#false\n\n     output from parser-cmd (PID 1686826) (stderr):\n        1 │\u001b[0m line 1: invalid value \"inf\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/comment/everywhere\n     line 7: invalid table\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686831):\n        1 │\u001b[0m # Top comment.\n        2 │\u001b[0m   # Top comment.\n        3 │\u001b[0m # Top comment.\n        4 │\u001b[0m\n        5 │\u001b[0m # [no-extraneous-groups-please]\n        6 │\u001b[0m\n        7 │\u001b[0m [group] # Comment\n        8 │\u001b[0m answer = 42 # Comment\n        9 │\u001b[0m # no-extraneous-keys-please = 999\n       10 │\u001b[0m # Inbetween comment.\n       11 │\u001b[0m more = [ # Comment\n       12 │\u001b[0m   # What about multiple # comments?\n       13 │\u001b[0m   # Can you handle it?\n       14 │\u001b[0m   #\n       15 │\u001b[0m           # Evil.\n       16 │\u001b[0m # Evil.\n       17 │\u001b[0m   42, 42, # Comments within arrays are fun.\n       18 │\u001b[0m   # What about multiple # comments?\n       19 │\u001b[0m   # Can you handle it?\n       20 │\u001b[0m   #\n       21 │\u001b[0m           # Evil.\n       22 │\u001b[0m # Evil.\n       23 │\u001b[0m # ] Did I fool you?\n       24 │\u001b[0m ] # Hopefully not.\n       25 │\u001b[0m\n       26 │\u001b[0m # Make sure the space between the datetime and \"#\" isn't lexed.\n       27 │\u001b[0m dt = 1979-05-27T07:32:12-07:00  # c\n       28 │\u001b[0m d = 1979-05-27 # Comment\n       29 │\u001b[0m\n       30 │\u001b[0m [[aot]] # Comment\n       31 │\u001b[0m k = 98 # Comment\n       32 │\u001b[0m [[aot]]# Comment\n       33 │\u001b[0m k = 99# Comment\n\n     output from parser-cmd (PID 1686831) (stderr):\n        1 │\u001b[0m line 7: invalid table\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/comment/tricky\n     line 1: invalid table\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686832):\n        1 │\u001b[0m [section]#attached comment\n        2 │\u001b[0m #[notsection]\n        3 │\u001b[0m one = \"11\"#cmt\n        4 │\u001b[0m two = \"22#\"\n        5 │\u001b[0m three = '#'\n        6 │\u001b[0m\n        7 │\u001b[0m four = \"\"\"# no comment\n        8 │\u001b[0m # nor this\n        9 │\u001b[0m #also not comment\"\"\"#is_comment\n       10 │\u001b[0m\n       11 │\u001b[0m five = 5.5#66\n       12 │\u001b[0m six = 6#7\n       13 │\u001b[0m 8 = \"eight\"\n       14 │\u001b[0m #nine = 99\n       15 │\u001b[0m ten = 10e2#1\n       16 │\u001b[0m eleven = 1.11e1#23\n       17 │\u001b[0m\n       18 │\u001b[0m [\"hash#tag\"]\n       19 │\u001b[0m \"#!\" = \"hash bang\"\n       20 │\u001b[0m arr3 = [ \"#\", '#', \"\"\"###\"\"\" ]\n       21 │\u001b[0m arr4 = [ 1,# 9, 9,\n       22 │\u001b[0m 2#,9\n       23 │\u001b[0m ,#9\n       24 │\u001b[0m 3#]\n       25 │\u001b[0m ,4]\n       26 │\u001b[0m arr5 = [[[[#[\"#\"],\n       27 │\u001b[0m [\"#\"]]]]#]\n       28 │\u001b[0m ]\n       29 │\u001b[0m tbl1 = { \"#\" = '}#'}#}}\n\n     output from parser-cmd (PID 1686832) (stderr):\n        1 │\u001b[0m line 1: invalid table\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/datetime/datetime\n     line 1: invalid value \"1987-07-05 17:45:00Z\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686864):\n        1 │\u001b[0m space = 1987-07-05 17:45:00Z\n        2 │\u001b[0m\n        3 │\u001b[0m # ABNF is case-insensitive, both \"Z\" and \"z\" must be supported.\n        4 │\u001b[0m lower = 1987-07-05t17:45:00z\n\n     output from parser-cmd (PID 1686864) (stderr):\n        1 │\u001b[0m line 1: invalid value \"1987-07-05 17:45:00Z\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/datetime/edge\n     line 1: invalid value \"0001-01-01 00:00:00Z\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686920):\n        1 │\u001b[0m first-offset = 0001-01-01 00:00:00Z\n        2 │\u001b[0m first-local  = 0001-01-01 00:00:00\n        3 │\u001b[0m first-date   = 0001-01-01\n        4 │\u001b[0m\n        5 │\u001b[0m last-offset = 9999-12-31 23:59:59Z\n        6 │\u001b[0m last-local  = 9999-12-31 23:59:59\n        7 │\u001b[0m last-date   = 9999-12-31\n\n     output from parser-cmd (PID 1686920) (stderr):\n        1 │\u001b[0m line 1: invalid value \"0001-01-01 00:00:00Z\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/datetime/leap-year\n     line 1: invalid value \"2000-02-29 15:15:15Z\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686935):\n        1 │\u001b[0m 2000-datetime       = 2000-02-29 15:15:15Z\n        2 │\u001b[0m 2000-datetime-local = 2000-02-29 15:15:15\n        3 │\u001b[0m 2000-date           = 2000-02-29\n        4 │\u001b[0m\n        5 │\u001b[0m 2024-datetime       = 2024-02-29 15:15:15Z\n        6 │\u001b[0m 2024-datetime-local = 2024-02-29 15:15:15\n        7 │\u001b[0m 2024-date           = 2024-02-29\n\n     output from parser-cmd (PID 1686935) (stderr):\n        1 │\u001b[0m line 1: invalid value \"2000-02-29 15:15:15Z\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/datetime/local\n     line 1: invalid value \"1987-07-05T17:45:00\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686981):\n        1 │\u001b[0m local = 1987-07-05T17:45:00\n        2 │\u001b[0m milli = 1977-12-21T10:32:00.555\n        3 │\u001b[0m space = 1987-07-05 17:45:00\n\n     output from parser-cmd (PID 1686981) (stderr):\n        1 │\u001b[0m line 1: invalid value \"1987-07-05T17:45:00\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/datetime/local-date\n     line 1: invalid value \"1987-07-05\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686982):\n        1 │\u001b[0m bestdayever = 1987-07-05\n\n     output from parser-cmd (PID 1686982) (stderr):\n        1 │\u001b[0m line 1: invalid value \"1987-07-05\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/datetime/local-time\n     line 1: invalid value \"17:45:00\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687012):\n        1 │\u001b[0m besttimeever = 17:45:00\n        2 │\u001b[0m milliseconds = 10:32:00.555\n\n     output from parser-cmd (PID 1687012) (stderr):\n        1 │\u001b[0m line 1: invalid value \"17:45:00\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/datetime/milliseconds\n     line 1: invalid value \"1987-07-05T17:45:56.123Z\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687011):\n        1 │\u001b[0m utc1  = 1987-07-05T17:45:56.123Z\n        2 │\u001b[0m utc2  = 1987-07-05T17:45:56.6Z\n        3 │\u001b[0m wita1 = 1987-07-05T17:45:56.123+08:00\n        4 │\u001b[0m wita2 = 1987-07-05T17:45:56.6+08:00\n\n     output from parser-cmd (PID 1687011) (stderr):\n        1 │\u001b[0m line 1: invalid value \"1987-07-05T17:45:56.123Z\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/datetime/timezone\n     line 1: invalid value \"1987-07-05T17:45:56Z\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687227):\n        1 │\u001b[0m utc  = 1987-07-05T17:45:56Z\n        2 │\u001b[0m pdt  = 1987-07-05T17:45:56-05:00\n        3 │\u001b[0m nzst = 1987-07-05T17:45:56+12:00\n        4 │\u001b[0m nzdt = 1987-07-05T17:45:56+13:00  # DST\n\n     output from parser-cmd (PID 1687227) (stderr):\n        1 │\u001b[0m line 1: invalid value \"1987-07-05T17:45:56Z\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/example\n     line 1: invalid value \"1987-07-05T17:45:00Z\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687017):\n        1 │\u001b[0m best-day-ever = 1987-07-05T17:45:00Z\n        2 │\u001b[0m\n        3 │\u001b[0m [numtheory]\n        4 │\u001b[0m boring = false\n        5 │\u001b[0m perfection = [6, 28, 496]\n\n     output from parser-cmd (PID 1687017) (stderr):\n        1 │\u001b[0m line 1: invalid value \"1987-07-05T17:45:00Z\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/float/exponent\n     line 1: invalid value \"3e2\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687048):\n        1 │\u001b[0m lower = 3e2\n        2 │\u001b[0m upper = 3E2\n        3 │\u001b[0m neg = 3e-2\n        4 │\u001b[0m pos = 3E+2\n        5 │\u001b[0m zero = 3e0\n        6 │\u001b[0m pointlower = 3.1e2\n        7 │\u001b[0m pointupper = 3.1E2\n        8 │\u001b[0m minustenth = -1E-1\n\n     output from parser-cmd (PID 1687048) (stderr):\n        1 │\u001b[0m line 1: invalid value \"3e2\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/float/inf-and-nan\n     line 3: invalid value \"nan\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687139):\n        1 │\u001b[0m # We don't encode +nan and -nan back with the signs; many languages don't\n        2 │\u001b[0m # support a sign on NaN (it doesn't really make much sense).\n        3 │\u001b[0m nan = nan\n        4 │\u001b[0m nan_neg = -nan\n        5 │\u001b[0m nan_plus = +nan\n        6 │\u001b[0m infinity = inf\n        7 │\u001b[0m infinity_neg = -inf\n        8 │\u001b[0m infinity_plus = +inf\n\n     output from parser-cmd (PID 1687139) (stderr):\n        1 │\u001b[0m line 3: invalid value \"nan\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/float/underscore\n     line 3: invalid value \"3e1_4\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687043):\n        1 │\u001b[0m before = 3_141.5927\n        2 │\u001b[0m after = 3141.592_7\n        3 │\u001b[0m exponent = 3e1_4\n\n     output from parser-cmd (PID 1687043) (stderr):\n        1 │\u001b[0m line 3: invalid value \"3e1_4\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/float/zero\n     line 4: invalid value \"0e0\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686978):\n        1 │\u001b[0m zero = 0.0\n        2 │\u001b[0m signed-pos = +0.0\n        3 │\u001b[0m signed-neg = -0.0\n        4 │\u001b[0m exponent = 0e0\n        5 │\u001b[0m exponent-two-0 = 0e00\n        6 │\u001b[0m exponent-signed-pos = +0e0\n        7 │\u001b[0m exponent-signed-neg = -0e0\n\n     output from parser-cmd (PID 1686978) (stderr):\n        1 │\u001b[0m line 4: invalid value \"0e0\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/array-01\n     line 1: invalid value \"[ {'a'= 1}, {'a'= 2} ]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686974):\n        1 │\u001b[0m arr = [ {'a'= 1}, {'a'= 2} ]\n        2 │\u001b[0m\n        3 │\u001b[0m people = [{first_name = \"Bruce\", last_name = \"Springsteen\"},\n        4 │\u001b[0m           {first_name = \"Eric\", last_name = \"Clapton\"},\n        5 │\u001b[0m           {first_name = \"Bob\", last_name = \"Seger\"}]\n\n     output from parser-cmd (PID 1686974) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[ {'a'= 1}, {'a'= 2} ]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/array-02\n     line 4: invalid value \"[\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686977):\n        1 │\u001b[0m # \"No newlines are allowed between the curly braces unless they are valid within\n        2 │\u001b[0m # a value\"\n        3 │\u001b[0m\n        4 │\u001b[0m a = { a = [\n        5 │\u001b[0m ]}\n\n     output from parser-cmd (PID 1686977) (stderr):\n        1 │\u001b[0m line 4: invalid value \"[\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/array-03\n     line 1: invalid value \"[\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1686979):\n        1 │\u001b[0m b = { a = [\n        2 │\u001b[0m \t\t1,\n        3 │\u001b[0m \t\t2,\n        4 │\u001b[0m \t], b = [\n        5 │\u001b[0m \t\t3,\n        6 │\u001b[0m \t\t4,\n        7 │\u001b[0m \t]}\n\n     output from parser-cmd (PID 1686979) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/empty\n     line 3: invalid value \"[ { not_empty = 1 }, {} ]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687079):\n        1 │\u001b[0m empty1 = {}\n        2 │\u001b[0m empty2 = { }\n        3 │\u001b[0m empty_in_array = [ { not_empty = 1 }, {} ]\n        4 │\u001b[0m empty_in_array2 = [{},{not_empty=1}]\n        5 │\u001b[0m many_empty = [{},{},{}]\n        6 │\u001b[0m nested_empty = {\"empty\"={}}\n        7 │\u001b[0m with_cmt ={            }#nothing here\n\n     output from parser-cmd (PID 1687079) (stderr):\n        1 │\u001b[0m line 3: invalid value \"[ { not_empty = 1 }, {} ]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/inline-table\n     line 5: invalid value \"[{ \\\"a\\\" = 1 }, { \\\"b\\\" = 2 }]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687050):\n        1 │\u001b[0m name        = { first = \"Tom\", last = \"Preston-Werner\" }\n        2 │\u001b[0m point       = { x = 1, y = 2 }\n        3 │\u001b[0m simple      = { a = 1 }\n        4 │\u001b[0m str-key     = { \"a\" = 1 }\n        5 │\u001b[0m table-array = [{ \"a\" = 1 }, { \"b\" = 2 }]\n\n     output from parser-cmd (PID 1687050) (stderr):\n        1 │\u001b[0m line 5: invalid value \"[{ \\\"a\\\" = 1 }, { \\\"b\\\" = 2 }]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/key-dotted-05\n     line 1: invalid value \"[{a.b = 1}]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687049):\n        1 │\u001b[0m arr-1 = [{a.b = 1}]\n        2 │\u001b[0m arr-2 = [\"str\", {a.b = 1}]\n        3 │\u001b[0m\n        4 │\u001b[0m arr-3 = [{a.b = 1}, {a.b = 2}]\n        5 │\u001b[0m arr-4 = [\"str\", {a.b = 1}, {a.b = 2}]\n\n     output from parser-cmd (PID 1687049) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[{a.b = 1}]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/key-dotted-06\n     line 1: invalid value \"[\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687088):\n        1 │\u001b[0m top.dot.dot = [\n        2 │\u001b[0m \t{dot.dot.dot = 1},\n        3 │\u001b[0m \t{dot.dot.dot = 2},\n        4 │\u001b[0m ]\n\n     output from parser-cmd (PID 1687088) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/key-dotted-07\n     line 1: invalid value \"[\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687093):\n        1 │\u001b[0m arr = [\n        2 │\u001b[0m \t{a.b = [{c.d = 1}]}\n        3 │\u001b[0m ]\n\n     output from parser-cmd (PID 1687093) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/nest\n     line 1: unterminated inline table\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687095):\n        1 │\u001b[0m tbl_tbl_empty = { tbl_0 = {} }\n        2 │\u001b[0m tbl_tbl_val   = { tbl_1 = { one = 1 } }\n        3 │\u001b[0m tbl_arr_tbl   = { arr_tbl = [ { one = 1 } ] }\n        4 │\u001b[0m arr_tbl_tbl   = [ { tbl = { one = 1 } } ]\n        5 │\u001b[0m\n        6 │\u001b[0m # Array-of-array-of-table is interesting because it can only\n        7 │\u001b[0m # be represented in inline form.\n        8 │\u001b[0m arr_arr_tbl_empty = [ [ {} ] ]\n        9 │\u001b[0m arr_arr_tbl_val = [ [ { one = 1 } ] ]\n       10 │\u001b[0m arr_arr_tbls  = [ [ { one = 1 }, { two = 2 } ] ]\n\n     output from parser-cmd (PID 1687095) (stderr):\n        1 │\u001b[0m line 1: unterminated inline table\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/spaces\n     line 2: invalid value \"[\\\"derive\\\"\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687096):\n        1 │\u001b[0m # https://github.com/toml-lang/toml-test/issues/146\n        2 │\u001b[0m clap-1 = { version = \"4\"  , features = [\"derive\", \"cargo\"] }\n        3 │\u001b[0m\n        4 │\u001b[0m # Contains some literal tabs!\n        5 │\u001b[0m clap-2 = { version = \"4\"\t   \t,\t  \tfeatures = [   \"derive\" \t  ,  \t  \"cargo\"   ]   , nest   =   {  \t  \"a\"   =   'x'  , \t  'b'   = [ 1.5    ,   9.0  ]  }  }\n\n     output from parser-cmd (PID 1687096) (stderr):\n        1 │\u001b[0m line 2: invalid value \"[\\\"derive\\\"\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/integer/float64-max\n     Values for key \"max_int\" don't match:\n       Expected:     9007199254740991\n       Your encoder: 9_007_199_254_740_991\n\n     input sent to parser-cmd (PID 1687097):\n        1 │\u001b[0m # Maximum and minimum safe float64 natural numbers. Mainly here for\n        2 │\u001b[0m # -int-as-float.\n        3 │\u001b[0m max_int =  9_007_199_254_740_991\n        4 │\u001b[0m min_int = -9_007_199_254_740_991\n\n     output from parser-cmd (PID 1687097) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"max_int\": {\"type\": \"integer\", \"value\": \"9_007_199_254_740_991\"},\n        3 │\u001b[0m   \"min_int\": {\"type\": \"integer\", \"value\": \"-9_007_199_254_740_991\"}\n        4 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"max_int\": {\"type\": \"integer\", \"value\": \"9007199254740991\"},\n        3 │\u001b[0m     \"min_int\": {\"type\": \"integer\", \"value\": \"-9007199254740991\"}\n        4 │\u001b[0m }\n\nFAIL valid/integer/integer\n     Values for key \"posanswer\" don't match:\n       Expected:     42\n       Your encoder: +42\n\n     input sent to parser-cmd (PID 1687103):\n        1 │\u001b[0m answer = 42\n        2 │\u001b[0m posanswer = +42\n        3 │\u001b[0m neganswer = -42\n        4 │\u001b[0m zero = 0\n\n     output from parser-cmd (PID 1687103) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"answer\":    {\"type\": \"integer\", \"value\": \"42\"},\n        3 │\u001b[0m   \"neganswer\": {\"type\": \"integer\", \"value\": \"-42\"},\n        4 │\u001b[0m   \"posanswer\": {\"type\": \"integer\", \"value\": \"+42\"},\n        5 │\u001b[0m   \"zero\":      {\"type\": \"integer\", \"value\": \"0\"}\n        6 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"answer\":    {\"type\": \"integer\", \"value\": \"42\"},\n        3 │\u001b[0m     \"neganswer\": {\"type\": \"integer\", \"value\": \"-42\"},\n        4 │\u001b[0m     \"posanswer\": {\"type\": \"integer\", \"value\": \"42\"},\n        5 │\u001b[0m     \"zero\":      {\"type\": \"integer\", \"value\": \"0\"}\n        6 │\u001b[0m }\n\nFAIL valid/integer/literals\n     line 1: invalid value \"0b11010110\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687116):\n        1 │\u001b[0m bin1 = 0b11010110\n        2 │\u001b[0m bin2 = 0b1_0_1\n        3 │\u001b[0m\n        4 │\u001b[0m oct1 = 0o01234567\n        5 │\u001b[0m oct2 = 0o755\n        6 │\u001b[0m oct3 = 0o7_6_5\n        7 │\u001b[0m\n        8 │\u001b[0m hex1 = 0xDEADBEEF\n        9 │\u001b[0m hex2 = 0xdeadbeef\n       10 │\u001b[0m hex3 = 0xdead_beef\n       11 │\u001b[0m hex4 = 0x00987\n\n     output from parser-cmd (PID 1687116) (stderr):\n        1 │\u001b[0m line 1: invalid value \"0b11010110\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/integer/underscore\n     Values for key \"kilo\" don't match:\n       Expected:     1000\n       Your encoder: 1_000\n\n     input sent to parser-cmd (PID 1687162):\n        1 │\u001b[0m kilo = 1_000\n        2 │\u001b[0m x = 1_1_1_1\n\n     output from parser-cmd (PID 1687162) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"kilo\": {\"type\": \"integer\", \"value\": \"1_000\"},\n        3 │\u001b[0m   \"x\":    {\"type\": \"integer\", \"value\": \"1_1_1_1\"}\n        4 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"kilo\": {\"type\": \"integer\", \"value\": \"1000\"},\n        3 │\u001b[0m     \"x\":    {\"type\": \"integer\", \"value\": \"1111\"}\n        4 │\u001b[0m }\n\nFAIL valid/integer/zero\n     line 5: invalid value \"0x0\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687167):\n        1 │\u001b[0m d1 = 0\n        2 │\u001b[0m d2 = +0\n        3 │\u001b[0m d3 = -0\n        4 │\u001b[0m\n        5 │\u001b[0m h1 = 0x0\n        6 │\u001b[0m h2 = 0x00\n        7 │\u001b[0m h3 = 0x00000\n        8 │\u001b[0m\n        9 │\u001b[0m o1 = 0o0\n       10 │\u001b[0m a2 = 0o00\n       11 │\u001b[0m a3 = 0o00000\n       12 │\u001b[0m\n       13 │\u001b[0m b1 = 0b0\n       14 │\u001b[0m b2 = 0b00\n       15 │\u001b[0m b3 = 0b00000\n\n     output from parser-cmd (PID 1687167) (stderr):\n        1 │\u001b[0m line 5: invalid value \"0x0\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/multibyte\n     line 9: invalid value \"[ \\\"] \\\", \\\"\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687359):\n        1 │\u001b[0m # Test multibyte throughout\n        2 │\u001b[0m\n        3 │\u001b[0m # Tèƨƭ ƒïℓè ƒôř TÓM£\n        4 │\u001b[0m # Óñℓ¥ ƭλïƨ ôñè ƭřïèƨ ƭô è₥úℓáƭè á TÓM£ ƒïℓè ωřïƭƭèñ β¥ á úƨèř ôƒ ƭλè ƙïñδ ôƒ ƥářƨèř ωřïƭèřƨ ƥřôβáβℓ¥ λáƭè\n        5 │\u001b[0m\n        6 │\u001b[0m ['𝐭𝐛𝐥']\n        7 │\u001b[0m string = \"𝓼𝓽𝓻𝓲𝓷𝓰 - #\"          # \" 𝓼𝓽𝓻𝓲𝓷𝓰\n        8 │\u001b[0m \t['𝐭𝐛𝐥'.sub]\n        9 │\u001b[0m \t'𝕒𝕣𝕣𝕒𝕪' = [ \"] \", \" # \"]      # ] 𝓪𝓻𝓻𝓪𝔂\n       10 │\u001b[0m \t'𝕒𝕣𝕣𝕒𝕪𝟚' = [ \"Tèƨƭ #11 ]ƥřôƲèδ ƭλáƭ\", \"Éжƥèřï₥èñƭ #9 ωáƨ á ƨúççèƨƨ\" ]\n       11 │\u001b[0m \t# Ýôú δïδñ'ƭ ƭλïñƙ ïƭ'δ áƨ èáƨ¥ áƨ çλúçƙïñϱ ôúƭ ƭλè ℓáƨƭ #, δïδ ¥ôú?\n       12 │\u001b[0m \tanother_test_string = \"§á₥è ƭλïñϱ, βúƭ ωïƭλ á ƨƭřïñϱ #\"\n       13 │\u001b[0m \tescapes = \" Âñδ ωλèñ \\\"'ƨ ářè ïñ ƭλè ƨƭřïñϱ, áℓôñϱ ωïƭλ # \\\"\"   # \"áñδ çô₥₥èñƭƨ ářè ƭλèřè ƭôô\"\n       14 │\u001b[0m \t# Tλïñϱƨ ωïℓℓ ϱèƭ λářδèř\n       15 │\u001b[0m \t\t['𝐭𝐛𝐥'.sub.\"βïƭ#\"]\n       16 │\u001b[0m \t\t\"ωλáƭ?\" = \"Ýôú δôñ'ƭ ƭλïñƙ ƨô₥è úƨèř ωôñ'ƭ δô ƭλáƭ?\"\n       17 │\u001b[0m \t\tmulti_line_array = [\n       18 │\u001b[0m \t\t\t\"]\",\n       19 │\u001b[0m \t\t\t# ] Óλ ¥èƨ Ì δïδ\n       20 │\u001b[0m \t\t\t]\n\n     output from parser-cmd (PID 1687359) (stderr):\n        1 │\u001b[0m line 9: invalid value \"[ \\\"] \\\", \\\"\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/array-0\n     line 1: invalid value \"[ 1, 2, 3 ]\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687358):\n        1 │\u001b[0m integers = [ 1, 2, 3 ]\n        2 │\u001b[0m colors = [ \"red\", \"yellow\", \"green\" ]\n        3 │\u001b[0m nested_arrays_of_ints = [ [ 1, 2 ], [3, 4, 5] ]\n        4 │\u001b[0m nested_mixed_array = [ [ 1, 2 ], [\"a\", \"b\", \"c\"] ]\n        5 │\u001b[0m string_array = [ \"all\", 'strings', \"\"\"are the same\"\"\", '''type''' ]\n        6 │\u001b[0m\n        7 │\u001b[0m # Mixed-type arrays are allowed\n        8 │\u001b[0m numbers = [ 0.1, 0.2, 0.5, 1, 2, 5 ]\n        9 │\u001b[0m contributors = [\n       10 │\u001b[0m   \"Foo Bar <foo@example.com>\",\n       11 │\u001b[0m   { name = \"Baz Qux\", email = \"bazqux@example.com\", url = \"https://example.com/bazqux\" }\n       12 │\u001b[0m ]\n\n     output from parser-cmd (PID 1687358) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[ 1, 2, 3 ]\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/array-1\n     line 1: invalid value \"[\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687366):\n        1 │\u001b[0m integers2 = [\n        2 │\u001b[0m   1, 2, 3\n        3 │\u001b[0m ]\n        4 │\u001b[0m\n        5 │\u001b[0m integers3 = [\n        6 │\u001b[0m   1,\n        7 │\u001b[0m   2, # this is ok\n        8 │\u001b[0m ]\n\n     output from parser-cmd (PID 1687366) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/array-of-tables-0\n     line 5: invalid array table\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687368):\n        1 │\u001b[0m [[products]]\n        2 │\u001b[0m name = \"Hammer\"\n        3 │\u001b[0m sku = 738594937\n        4 │\u001b[0m\n        5 │\u001b[0m [[products]]  # empty table within the array\n        6 │\u001b[0m\n        7 │\u001b[0m [[products]]\n        8 │\u001b[0m name = \"Nail\"\n        9 │\u001b[0m sku = 284758393\n       10 │\u001b[0m\n       11 │\u001b[0m color = \"gray\"\n\n     output from parser-cmd (PID 1687368) (stderr):\n        1 │\u001b[0m line 5: invalid array table\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/array-of-tables-1\n     line 4: invalid table\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687367):\n        1 │\u001b[0m [[fruits]]\n        2 │\u001b[0m name = \"apple\"\n        3 │\u001b[0m\n        4 │\u001b[0m [fruits.physical]  # subtable\n        5 │\u001b[0m color = \"red\"\n        6 │\u001b[0m shape = \"round\"\n        7 │\u001b[0m\n        8 │\u001b[0m [[fruits.varieties]]  # nested array of tables\n        9 │\u001b[0m name = \"red delicious\"\n       10 │\u001b[0m\n       11 │\u001b[0m [[fruits.varieties]]\n       12 │\u001b[0m name = \"granny smith\"\n       13 │\u001b[0m\n       14 │\u001b[0m\n       15 │\u001b[0m [[fruits]]\n       16 │\u001b[0m name = \"banana\"\n       17 │\u001b[0m\n       18 │\u001b[0m [[fruits.varieties]]\n       19 │\u001b[0m name = \"plantain\"\n\n     output from parser-cmd (PID 1687367) (stderr):\n        1 │\u001b[0m line 4: invalid table\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/array-of-tables-2\n     line 1: invalid value \"[ { x = 1, y = 2, z = 3 },\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687369):\n        1 │\u001b[0m points = [ { x = 1, y = 2, z = 3 },\n        2 │\u001b[0m            { x = 7, y = 8, z = 9 },\n        3 │\u001b[0m            { x = 2, y = 4, z = 8 } ]\n\n     output from parser-cmd (PID 1687369) (stderr):\n        1 │\u001b[0m line 1: invalid value \"[ { x = 1, y = 2, z = 3 },\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/float-0\n     line 7: invalid value \"5e+22\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687323):\n        1 │\u001b[0m # fractional\n        2 │\u001b[0m flt1 = +1.0\n        3 │\u001b[0m flt2 = 3.1415\n        4 │\u001b[0m flt3 = -0.01\n        5 │\u001b[0m\n        6 │\u001b[0m # exponent\n        7 │\u001b[0m flt4 = 5e+22\n        8 │\u001b[0m flt5 = 1e06\n        9 │\u001b[0m flt6 = -2E-2\n       10 │\u001b[0m\n       11 │\u001b[0m # both\n       12 │\u001b[0m flt7 = 6.626e-34\n\n     output from parser-cmd (PID 1687323) (stderr):\n        1 │\u001b[0m line 7: invalid value \"5e+22\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/float-2\n     line 2: invalid value \"inf\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687325):\n        1 │\u001b[0m # infinity\n        2 │\u001b[0m sf1 = inf  # positive infinity\n        3 │\u001b[0m sf2 = +inf # positive infinity\n        4 │\u001b[0m sf3 = -inf # negative infinity\n        5 │\u001b[0m\n        6 │\u001b[0m # not a number\n        7 │\u001b[0m sf4 = nan  # actual sNaN/qNaN encoding is implementation-specific\n        8 │\u001b[0m sf5 = +nan # same as `nan`\n        9 │\u001b[0m sf6 = -nan # valid, actual encoding is implementation-specific\n\n     output from parser-cmd (PID 1687325) (stderr):\n        1 │\u001b[0m line 2: invalid value \"inf\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/integer-0\n     Values for key \"int1\" don't match:\n       Expected:     99\n       Your encoder: +99\n\n     input sent to parser-cmd (PID 1687354):\n        1 │\u001b[0m int1 = +99\n        2 │\u001b[0m int2 = 42\n        3 │\u001b[0m int3 = 0\n        4 │\u001b[0m int4 = -17\n\n     output from parser-cmd (PID 1687354) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"int1\": {\"type\": \"integer\", \"value\": \"+99\"},\n        3 │\u001b[0m   \"int2\": {\"type\": \"integer\", \"value\": \"42\"},\n        4 │\u001b[0m   \"int3\": {\"type\": \"integer\", \"value\": \"0\"},\n        5 │\u001b[0m   \"int4\": {\"type\": \"integer\", \"value\": \"-17\"}\n        6 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"int1\": {\"type\": \"integer\", \"value\": \"99\"},\n        3 │\u001b[0m     \"int2\": {\"type\": \"integer\", \"value\": \"42\"},\n        4 │\u001b[0m     \"int3\": {\"type\": \"integer\", \"value\": \"0\"},\n        5 │\u001b[0m     \"int4\": {\"type\": \"integer\", \"value\": \"-17\"}\n        6 │\u001b[0m }\n\nFAIL valid/spec-1.0.0/integer-1\n     Values for key \"int5\" don't match:\n       Expected:     1000\n       Your encoder: 1_000\n\n     input sent to parser-cmd (PID 1687421):\n        1 │\u001b[0m int5 = 1_000\n        2 │\u001b[0m int6 = 5_349_221\n        3 │\u001b[0m int7 = 53_49_221  # Indian number system grouping\n        4 │\u001b[0m int8 = 1_2_3_4_5  # VALID but discouraged\n\n     output from parser-cmd (PID 1687421) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"int5\": {\"type\": \"integer\", \"value\": \"1_000\"},\n        3 │\u001b[0m   \"int6\": {\"type\": \"integer\", \"value\": \"5_349_221\"},\n        4 │\u001b[0m   \"int7\": {\"type\": \"integer\", \"value\": \"53_49_221\"},\n        5 │\u001b[0m   \"int8\": {\"type\": \"integer\", \"value\": \"1_2_3_4_5\"}\n        6 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"int5\": {\"type\": \"integer\", \"value\": \"1000\"},\n        3 │\u001b[0m     \"int6\": {\"type\": \"integer\", \"value\": \"5349221\"},\n        4 │\u001b[0m     \"int7\": {\"type\": \"integer\", \"value\": \"5349221\"},\n        5 │\u001b[0m     \"int8\": {\"type\": \"integer\", \"value\": \"12345\"}\n        6 │\u001b[0m }\n\nFAIL valid/spec-1.0.0/integer-2\n     line 2: invalid value \"0xDEADBEEF\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687424):\n        1 │\u001b[0m # hexadecimal with prefix `0x`\n        2 │\u001b[0m hex1 = 0xDEADBEEF\n        3 │\u001b[0m hex2 = 0xdeadbeef\n        4 │\u001b[0m hex3 = 0xdead_beef\n        5 │\u001b[0m\n        6 │\u001b[0m # octal with prefix `0o`\n        7 │\u001b[0m oct1 = 0o01234567\n        8 │\u001b[0m oct2 = 0o755 # useful for Unix file permissions\n        9 │\u001b[0m\n       10 │\u001b[0m # binary with prefix `0b`\n       11 │\u001b[0m bin1 = 0b11010110\n\n     output from parser-cmd (PID 1687424) (stderr):\n        1 │\u001b[0m line 2: invalid value \"0xDEADBEEF\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/local-date-0\n     line 1: invalid value \"1979-05-27\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687457):\n        1 │\u001b[0m ld1 = 1979-05-27\n\n     output from parser-cmd (PID 1687457) (stderr):\n        1 │\u001b[0m line 1: invalid value \"1979-05-27\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/local-date-time-0\n     line 1: invalid value \"1979-05-27T07:32:00\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687474):\n        1 │\u001b[0m ldt1 = 1979-05-27T07:32:00\n        2 │\u001b[0m ldt2 = 1979-05-27T00:32:00.999\n\n     output from parser-cmd (PID 1687474) (stderr):\n        1 │\u001b[0m line 1: invalid value \"1979-05-27T07:32:00\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/local-time-0\n     line 1: invalid value \"07:32:00\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687468):\n        1 │\u001b[0m lt1 = 07:32:00\n        2 │\u001b[0m lt2 = 00:32:00.999\n\n     output from parser-cmd (PID 1687468) (stderr):\n        1 │\u001b[0m line 1: invalid value \"07:32:00\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/offset-date-time-0\n     line 1: invalid value \"1979-05-27T07:32:00Z\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687475):\n        1 │\u001b[0m odt1 = 1979-05-27T07:32:00Z\n        2 │\u001b[0m odt2 = 1979-05-27T00:32:00-07:00\n        3 │\u001b[0m odt3 = 1979-05-27T00:32:00.999-07:00\n\n     output from parser-cmd (PID 1687475) (stderr):\n        1 │\u001b[0m line 1: invalid value \"1979-05-27T07:32:00Z\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/offset-date-time-1\n     line 1: invalid value \"1979-05-27 07:32:00Z\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687414):\n        1 │\u001b[0m odt4 = 1979-05-27 07:32:00Z\n\n     output from parser-cmd (PID 1687414) (stderr):\n        1 │\u001b[0m line 1: invalid value \"1979-05-27 07:32:00Z\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/table-3\n     line 1: invalid table\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687512):\n        1 │\u001b[0m [a.b.c]            # this is best practice\n        2 │\u001b[0m [ d.e.f ]          # same as [d.e.f]\n        3 │\u001b[0m [ g .  h  . i ]    # same as [g.h.i]\n        4 │\u001b[0m [ j . \"ʞ\" . 'l' ]  # same as [j.\"ʞ\".'l']\n\n     output from parser-cmd (PID 1687512) (stderr):\n        1 │\u001b[0m line 1: invalid table\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/table-4\n     line 4: invalid table\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687607):\n        1 │\u001b[0m # [x] you\n        2 │\u001b[0m # [x.y] don't\n        3 │\u001b[0m # [x.y.z] need these\n        4 │\u001b[0m [x.y.z.w] # for this to work\n        5 │\u001b[0m\n        6 │\u001b[0m [x] # defining a super-table afterward is ok\n\n     output from parser-cmd (PID 1687607) (stderr):\n        1 │\u001b[0m line 4: invalid table\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/table-7\n     line 8: invalid value \"1999-08-04\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687519):\n        1 │\u001b[0m # Top-level table begins.\n        2 │\u001b[0m name = \"Fido\"\n        3 │\u001b[0m breed = \"pug\"\n        4 │\u001b[0m\n        5 │\u001b[0m # Top-level table ends.\n        6 │\u001b[0m [owner]\n        7 │\u001b[0m name = \"Regina Dogman\"\n        8 │\u001b[0m member_since = 1999-08-04\n\n     output from parser-cmd (PID 1687519) (stderr):\n        1 │\u001b[0m line 8: invalid value \"1999-08-04\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/table-9\n     line 8: invalid table\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687520):\n        1 │\u001b[0m [fruit]\n        2 │\u001b[0m apple.color = \"red\"\n        3 │\u001b[0m apple.taste.sweet = true\n        4 │\u001b[0m\n        5 │\u001b[0m # [fruit.apple]  # INVALID\n        6 │\u001b[0m # [fruit.apple.taste]  # INVALID\n        7 │\u001b[0m\n        8 │\u001b[0m [fruit.apple.texture]  # you can add sub-tables\n        9 │\u001b[0m smooth = true\n\n     output from parser-cmd (PID 1687520) (stderr):\n        1 │\u001b[0m line 8: invalid table\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-example-1\n     line 7: invalid value \"1979-05-27T07:32:00-08:00\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687539):\n        1 │\u001b[0m # This is a TOML document. Boom.\n        2 │\u001b[0m\n        3 │\u001b[0m title = \"TOML Example\"\n        4 │\u001b[0m\n        5 │\u001b[0m [owner]\n        6 │\u001b[0m name = \"Lance Uppercut\"\n        7 │\u001b[0m dob = 1979-05-27T07:32:00-08:00 # First class dates? Why not?\n        8 │\u001b[0m\n        9 │\u001b[0m [database]\n       10 │\u001b[0m server = \"192.168.1.1\"\n       11 │\u001b[0m ports = [ 8001, 8001, 8002 ]\n       12 │\u001b[0m connection_max = 5000\n       13 │\u001b[0m enabled = true\n       14 │\u001b[0m\n       15 │\u001b[0m [servers]\n       16 │\u001b[0m\n       17 │\u001b[0m   # You can indent as you please. Tabs or spaces. TOML don't care.\n       18 │\u001b[0m   [servers.alpha]\n       19 │\u001b[0m   ip = \"10.0.0.1\"\n       20 │\u001b[0m   dc = \"eqdc10\"\n       21 │\u001b[0m\n       22 │\u001b[0m   [servers.beta]\n       23 │\u001b[0m   ip = \"10.0.0.2\"\n       24 │\u001b[0m   dc = \"eqdc10\"\n       25 │\u001b[0m\n       26 │\u001b[0m [clients]\n       27 │\u001b[0m data = [ [\"gamma\", \"delta\"], [1, 2] ]\n       28 │\u001b[0m\n       29 │\u001b[0m # Line breaks are OK when inside arrays\n       30 │\u001b[0m hosts = [\n       31 │\u001b[0m   \"alpha\",\n       32 │\u001b[0m   \"omega\"\n       33 │\u001b[0m ]\n\n     output from parser-cmd (PID 1687539) (stderr):\n        1 │\u001b[0m line 7: invalid value \"1979-05-27T07:32:00-08:00\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-example-1-compact\n     line 5: invalid value \"1979-05-27T07:32:00-08:00\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687720):\n        1 │\u001b[0m #Useless spaces eliminated.\n        2 │\u001b[0m title=\"TOML Example\"\n        3 │\u001b[0m [owner]\n        4 │\u001b[0m name=\"Lance Uppercut\"\n        5 │\u001b[0m dob=1979-05-27T07:32:00-08:00#First class dates\n        6 │\u001b[0m [database]\n        7 │\u001b[0m server=\"192.168.1.1\"\n        8 │\u001b[0m ports=[8001,8001,8002]\n        9 │\u001b[0m connection_max=5000\n       10 │\u001b[0m enabled=true\n       11 │\u001b[0m [servers]\n       12 │\u001b[0m [servers.alpha]\n       13 │\u001b[0m ip=\"10.0.0.1\"\n       14 │\u001b[0m dc=\"eqdc10\"\n       15 │\u001b[0m [servers.beta]\n       16 │\u001b[0m ip=\"10.0.0.2\"\n       17 │\u001b[0m dc=\"eqdc10\"\n       18 │\u001b[0m [clients]\n       19 │\u001b[0m data=[[\"gamma\",\"delta\"],[1,2]]\n       20 │\u001b[0m hosts=[\n       21 │\u001b[0m \"alpha\",\n       22 │\u001b[0m \"omega\"\n       23 │\u001b[0m ]\n\n     output from parser-cmd (PID 1687720) (stderr):\n        1 │\u001b[0m line 5: invalid value \"1979-05-27T07:32:00-08:00\"\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/table/array-nest\n     line 4: invalid table path\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687718):\n        1 │\u001b[0m [[albums]]\n        2 │\u001b[0m name = \"Born to Run\"\n        3 │\u001b[0m\n        4 │\u001b[0m   [[albums.songs]]\n        5 │\u001b[0m   name = \"Jungleland\"\n        6 │\u001b[0m\n        7 │\u001b[0m   [[albums.songs]]\n        8 │\u001b[0m   name = \"Meeting Across the River\"\n        9 │\u001b[0m\n       10 │\u001b[0m [[albums]]\n       11 │\u001b[0m name = \"Born in the USA\"\n       12 │\u001b[0m\n       13 │\u001b[0m   [[albums.songs]]\n       14 │\u001b[0m   name = \"Glory Days\"\n       15 │\u001b[0m\n       16 │\u001b[0m   [[albums.songs]]\n       17 │\u001b[0m   name = \"Dancing in the Dark\"\n\n     output from parser-cmd (PID 1687718) (stderr):\n        1 │\u001b[0m line 4: invalid table path\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/table/array-table-array\n     line 2: invalid table path\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687736):\n        1 │\u001b[0m [[a]]\n        2 │\u001b[0m     [[a.b]]\n        3 │\u001b[0m         [a.b.c]\n        4 │\u001b[0m             d = \"val0\"\n        5 │\u001b[0m     [[a.b]]\n        6 │\u001b[0m         [a.b.c]\n        7 │\u001b[0m             d = \"val1\"\n\n     output from parser-cmd (PID 1687736) (stderr):\n        1 │\u001b[0m line 2: invalid table path\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/table/without-super\n     line 4: invalid table\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1687863):\n        1 │\u001b[0m # [x] you\n        2 │\u001b[0m # [x.y] don't\n        3 │\u001b[0m # [x.y.z] need these\n        4 │\u001b[0m [x.y.z.w] # for this to work\n        5 │\u001b[0m [x] # defining a super-table afterwards is ok\n\n     output from parser-cmd (PID 1687863) (stderr):\n        1 │\u001b[0m line 4: invalid table\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/table/without-super-with-values\n     line 4: invalid table\n \n     Exit 1\n\n     input sent to parser-cmd (PID 1688005):\n        1 │\u001b[0m # [x] you\n        2 │\u001b[0m # [x.y] don't\n        3 │\u001b[0m # [x.y.z] need these\n        4 │\u001b[0m [x.y.z.w] # for this to work\n        5 │\u001b[0m a = 1\n        6 │\u001b[0m b = 2\n        7 │\u001b[0m [x] # defining a super-table afterwards is ok\n        8 │\u001b[0m c = 3\n        9 │\u001b[0m d = 4\n\n     output from parser-cmd (PID 1688005) (stderr):\n        1 │\u001b[0m line 4: invalid table\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL invalid/control/bare-cr\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688010):\n        1 │\u001b[0m # The following line contains a single carriage return control character\r\n        2 │\u001b[0m \r\n\n     output from parser-cmd (PID 1688010) (stdout):\n        1 │\u001b[0m {}\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/comment-cr\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688037):\n        1 │\u001b[0m comment-cr   = \"Carriage return in comment\" # \ra=1\n\n     output from parser-cmd (PID 1688037) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"comment-cr\": {\"type\": \"string\", \"value\": \"Carriage return in comment\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/comment-del\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688039):\n        1 │\u001b[0m comment-del  = \"0x7f\"   # \n\n     output from parser-cmd (PID 1688039) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"comment-del\": {\"type\": \"string\", \"value\": \"0x7f\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/comment-ff\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688040):\n        1 │\u001b[0m comment-ff   = \"0x7f\"   # \f\n\n     output from parser-cmd (PID 1688040) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"comment-ff\": {\"type\": \"string\", \"value\": \"0x7f\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/comment-lf\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688044):\n        1 │\u001b[0m comment-lf   = \"ctrl-P\" # \u0010\n\n     output from parser-cmd (PID 1688044) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"comment-lf\": {\"type\": \"string\", \"value\": \"ctrl-P\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/comment-null\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688051):\n        1 │\u001b[0m comment-null = \"null\"   # \u0000\n\n     output from parser-cmd (PID 1688051) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"comment-null\": {\"type\": \"string\", \"value\": \"null\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/comment-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688052):\n        1 │\u001b[0m comment-us   = \"ctrl-_\" # \u001f\n\n     output from parser-cmd (PID 1688052) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"comment-us\": {\"type\": \"string\", \"value\": \"ctrl-_\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/multi-del\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688053):\n        1 │\u001b[0m multi-del  = \"\"\"null\"\"\"\n\n     output from parser-cmd (PID 1688053) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"multi-del\": {\"type\": \"string\", \"value\": \"null\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/only-ff\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688090):\n        1 │\u001b[0m \f\n\n     output from parser-cmd (PID 1688090) (stdout):\n        1 │\u001b[0m {}\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/only-vt\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688153):\n        1 │\u001b[0m \u000b\n\n     output from parser-cmd (PID 1688153) (stdout):\n        1 │\u001b[0m {}\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/rawmulti-del\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688105):\n        1 │\u001b[0m rawmulti-del  = '''null'''\n\n     output from parser-cmd (PID 1688105) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"rawmulti-del\": {\"type\": \"string\", \"value\": \"null\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/rawstring-del\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688113):\n        1 │\u001b[0m rawstring-del  = 'null'\n\n     output from parser-cmd (PID 1688113) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"rawstring-del\": {\"type\": \"string\", \"value\": \"null\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/string-del\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688119):\n        1 │\u001b[0m string-del  = \"null\"\n\n     output from parser-cmd (PID 1688119) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"string-del\": {\"type\": \"string\", \"value\": \"null\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/encoding/ideographic-space\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688368):\n        1 │\u001b[0m # First on next line is U+3000 IDEOGRAPHIC SPACE\n        2 │\u001b[0m  foo = \"bar\"\n\n     output from parser-cmd (PID 1688368) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"foo\": {\"type\": \"string\", \"value\": \"bar\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/exp-dot-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688405):\n        1 │\u001b[0m exp-dot-02 = 1.e2\n\n     output from parser-cmd (PID 1688405) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"exp-dot-02\": {\"type\": \"float\", \"value\": \"1.e2\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/exp-dot-03\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688415):\n        1 │\u001b[0m exp-dot-03 = 3.e+20\n\n     output from parser-cmd (PID 1688415) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"exp-dot-03\": {\"type\": \"float\", \"value\": \"3.e+20\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/exp-trailing-us-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688449):\n        1 │\u001b[0m exp-trailing-us-02 = 1.2_e2\n\n     output from parser-cmd (PID 1688449) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"exp-trailing-us-02\": {\"type\": \"float\", \"value\": \"1.2_e2\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/leading-dot\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688489):\n        1 │\u001b[0m leading-dot = .12345\n\n     output from parser-cmd (PID 1688489) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-dot\": {\"type\": \"float\", \"value\": \".12345\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/leading-dot-neg\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688486):\n        1 │\u001b[0m leading-dot-neg = -.12345\n\n     output from parser-cmd (PID 1688486) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-dot-neg\": {\"type\": \"float\", \"value\": \"-.12345\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/leading-dot-plus\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688487):\n        1 │\u001b[0m leading-dot-plus = +.12345\n\n     output from parser-cmd (PID 1688487) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-dot-plus\": {\"type\": \"float\", \"value\": \"+.12345\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/leading-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688498):\n        1 │\u001b[0m leading-us = _1.2\n\n     output from parser-cmd (PID 1688498) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-us\": {\"type\": \"float\", \"value\": \"_1.2\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/leading-zero\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688521):\n        1 │\u001b[0m leading-zero = 03.14\n\n     output from parser-cmd (PID 1688521) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero\": {\"type\": \"float\", \"value\": \"03.14\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/leading-zero-neg\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688515):\n        1 │\u001b[0m leading-zero-neg = -03.14\n\n     output from parser-cmd (PID 1688515) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-neg\": {\"type\": \"float\", \"value\": \"-03.14\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/leading-zero-plus\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688516):\n        1 │\u001b[0m leading-zero-plus = +03.14\n\n     output from parser-cmd (PID 1688516) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-plus\": {\"type\": \"float\", \"value\": \"+03.14\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/trailing-dot\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688552):\n        1 │\u001b[0m trailing-dot = 1.\n\n     output from parser-cmd (PID 1688552) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"trailing-dot\": {\"type\": \"float\", \"value\": \"1.\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/trailing-dot-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688547):\n        1 │\u001b[0m trailing-point = 1.\n\n     output from parser-cmd (PID 1688547) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"trailing-point\": {\"type\": \"float\", \"value\": \"1.\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/trailing-dot-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688549):\n        1 │\u001b[0m a = 1.\n        2 │\u001b[0m b = 2\n\n     output from parser-cmd (PID 1688549) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": {\"type\": \"float\", \"value\": \"1.\"},\n        3 │\u001b[0m   \"b\": {\"type\": \"integer\", \"value\": \"2\"}\n        4 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/trailing-dot-min\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688548):\n        1 │\u001b[0m trailing-dot-min = -1.\n\n     output from parser-cmd (PID 1688548) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"trailing-dot-min\": {\"type\": \"float\", \"value\": \"-1.\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/trailing-dot-plus\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688551):\n        1 │\u001b[0m trailing-dot-plus = +1.\n\n     output from parser-cmd (PID 1688551) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"trailing-dot-plus\": {\"type\": \"float\", \"value\": \"+1.\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/trailing-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688620):\n        1 │\u001b[0m trailing-us = 1.2_\n\n     output from parser-cmd (PID 1688620) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"trailing-us\": {\"type\": \"float\", \"value\": \"1.2_\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/trailing-us-exp-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688614):\n        1 │\u001b[0m trailing-us-exp-2 = 1.2_e2\n\n     output from parser-cmd (PID 1688614) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"trailing-us-exp-2\": {\"type\": \"float\", \"value\": \"1.2_e2\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/us-after-dot\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688621):\n        1 │\u001b[0m us-after-dot = 1._2\n\n     output from parser-cmd (PID 1688621) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"us-after-dot\": {\"type\": \"float\", \"value\": \"1._2\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/us-before-dot\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688627):\n        1 │\u001b[0m us-before-dot = 1_.2\n\n     output from parser-cmd (PID 1688627) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"us-before-dot\": {\"type\": \"float\", \"value\": \"1_.2\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/inline-table/linebreak-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688676):\n        1 │\u001b[0m # No newlines are allowed between the curly braces unless they are valid within\n        2 │\u001b[0m # a value.\n        3 │\u001b[0m simple = { a = 1\n        4 │\u001b[0m }\n\n     output from parser-cmd (PID 1688676) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"simple\": {\n        3 │\u001b[0m     \"a\": {\"type\": \"integer\", \"value\": \"1\"}\n        4 │\u001b[0m   }\n        5 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/inline-table/linebreak-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688671):\n        1 │\u001b[0m t = {a=1,\n        2 │\u001b[0m b=2}\n\n     output from parser-cmd (PID 1688671) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"t\": {\n        3 │\u001b[0m     \"a\": {\"type\": \"integer\", \"value\": \"1\"},\n        4 │\u001b[0m     \"b\": {\"type\": \"integer\", \"value\": \"2\"}\n        5 │\u001b[0m   }\n        6 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/inline-table/linebreak-03\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688673):\n        1 │\u001b[0m t = {a=1\n        2 │\u001b[0m ,b=2}\n\n     output from parser-cmd (PID 1688673) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"t\": {\n        3 │\u001b[0m     \"a\": {\"type\": \"integer\", \"value\": \"1\"},\n        4 │\u001b[0m     \"b\": {\"type\": \"integer\", \"value\": \"2\"}\n        5 │\u001b[0m   }\n        6 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/inline-table/linebreak-04\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688678):\n        1 │\u001b[0m json_like = {\n        2 │\u001b[0m           first = \"Tom\",\n        3 │\u001b[0m           last = \"Preston-Werner\"\n        4 │\u001b[0m }\n\n     output from parser-cmd (PID 1688678) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"json_like\": {\n        3 │\u001b[0m     \"first\": {\"type\": \"string\", \"value\": \"Tom\"},\n        4 │\u001b[0m     \"last\":  {\"type\": \"string\", \"value\": \"Preston-Werner\"}\n        5 │\u001b[0m   }\n        6 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/inline-table/overwrite-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688711):\n        1 │\u001b[0m a={}\n        2 │\u001b[0m # Inline tables are immutable and can't be extended\n        3 │\u001b[0m [a.b]\n\n     output from parser-cmd (PID 1688711) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": {\n        3 │\u001b[0m     \"b\": {}\n        4 │\u001b[0m   }\n        5 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/double-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688770):\n        1 │\u001b[0m double-us = 1__23\n\n     output from parser-cmd (PID 1688770) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"double-us\": {\"type\": \"integer\", \"value\": \"1__23\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/leading-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688852):\n        1 │\u001b[0m leading-us = _123\n\n     output from parser-cmd (PID 1688852) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-us\": {\"type\": \"integer\", \"value\": \"_123\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/leading-zero-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688855):\n        1 │\u001b[0m leading-zero-01 = 01\n\n     output from parser-cmd (PID 1688855) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-01\": {\"type\": \"integer\", \"value\": \"01\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/leading-zero-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688853):\n        1 │\u001b[0m leading-zero-02 = 00\n\n     output from parser-cmd (PID 1688853) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-02\": {\"type\": \"integer\", \"value\": \"00\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/leading-zero-03\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688854):\n        1 │\u001b[0m leading-zero-03 = 0_0\n\n     output from parser-cmd (PID 1688854) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-03\": {\"type\": \"integer\", \"value\": \"0_0\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/leading-zero-sign-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688856):\n        1 │\u001b[0m leading-zero-sign-01 = -01\n\n     output from parser-cmd (PID 1688856) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-sign-01\": {\"type\": \"integer\", \"value\": \"-01\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/leading-zero-sign-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688857):\n        1 │\u001b[0m leading-zero-sign-02 = +01\n\n     output from parser-cmd (PID 1688857) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-sign-02\": {\"type\": \"integer\", \"value\": \"+01\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/leading-zero-sign-03\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688867):\n        1 │\u001b[0m leading-zero-sign-03 = +0_1\n\n     output from parser-cmd (PID 1688867) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-sign-03\": {\"type\": \"integer\", \"value\": \"+0_1\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/trailing-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1688956):\n        1 │\u001b[0m trailing-us = 123_\n\n     output from parser-cmd (PID 1688956) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"trailing-us\": {\"type\": \"integer\", \"value\": \"123_\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/spec-1.0.0/inline-table-2-0\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1689419):\n        1 │\u001b[0m [product]\n        2 │\u001b[0m type = { name = \"Nail\" }\n        3 │\u001b[0m type.edible = false  # INVALID\n\n     output from parser-cmd (PID 1689419) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"product\": {\n        3 │\u001b[0m     \"type\": {\n        4 │\u001b[0m       \"edible\": {\"type\": \"bool\", \"value\": \"false\"},\n        5 │\u001b[0m       \"name\":   {\"type\": \"string\", \"value\": \"Nail\"}\n        6 │\u001b[0m     }\n        7 │\u001b[0m   }\n        8 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/append-with-dotted-keys-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1689845):\n        1 │\u001b[0m # First a.b.c defines a table: a.b.c = {z=9}\n        2 │\u001b[0m #\n        3 │\u001b[0m # Then we define a.b.c.t = \"str\" to add a str to the above table, making it:\n        4 │\u001b[0m #\n        5 │\u001b[0m #   a.b.c = {z=9, t=\"...\"}\n        6 │\u001b[0m #\n        7 │\u001b[0m # While this makes sense, logically, it was decided this is not valid TOML as\n        8 │\u001b[0m # it's too confusing/convoluted.\n        9 │\u001b[0m #\n       10 │\u001b[0m # See: https://github.com/toml-lang/toml/issues/846\n       11 │\u001b[0m #      https://github.com/toml-lang/toml/pull/859\n       12 │\u001b[0m\n       13 │\u001b[0m [a.b.c]\n       14 │\u001b[0m   z = 9\n       15 │\u001b[0m\n       16 │\u001b[0m [a]\n       17 │\u001b[0m   b.c.t = \"Using dotted keys to add to [a.b.c] after explicitly defining it above is not allowed\"\n\n     output from parser-cmd (PID 1689845) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": {\n        3 │\u001b[0m     \"b\": {\n        4 │\u001b[0m       \"c\": {\n        5 │\u001b[0m         \"z\": {\"type\": \"integer\", \"value\": \"9\"},\n        6 │\u001b[0m         \"t\": {\n        7 │\u001b[0m           \"type\":  \"string\",\n        8 │\u001b[0m           \"value\": \"Using dotted keys to add to [a.b.c] after explicitly defining it above is not allowed\"\n        9 │\u001b[0m         }\n       10 │\u001b[0m       }\n       11 │\u001b[0m     }\n       12 │\u001b[0m   }\n       13 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/append-with-dotted-keys-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1689941):\n        1 │\u001b[0m # This is the same issue as in injection-1.toml, except that nests one level\n        2 │\u001b[0m # deeper. See that file for a more complete description.\n        3 │\u001b[0m\n        4 │\u001b[0m [a.b.c.d]\n        5 │\u001b[0m   z = 9\n        6 │\u001b[0m\n        7 │\u001b[0m [a]\n        8 │\u001b[0m   b.c.d.k.t = \"Using dotted keys to add to [a.b.c.d] after explicitly defining it above is not allowed\"\n\n     output from parser-cmd (PID 1689941) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": {\n        3 │\u001b[0m     \"b\": {\n        4 │\u001b[0m       \"c\": {\n        5 │\u001b[0m         \"d\": {\n        6 │\u001b[0m           \"z\": {\"type\": \"integer\", \"value\": \"9\"},\n        7 │\u001b[0m           \"k\": {\n        8 │\u001b[0m             \"t\": {\n        9 │\u001b[0m               \"type\":  \"string\",\n       10 │\u001b[0m               \"value\": \"Using dotted keys to add to [a.b.c.d] after explicitly defining it above is not allowed\"\n       11 │\u001b[0m             }\n       12 │\u001b[0m           }\n       13 │\u001b[0m         }\n       14 │\u001b[0m       }\n       15 │\u001b[0m     }\n       16 │\u001b[0m   }\n       17 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/append-with-dotted-keys-04\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1689943):\n        1 │\u001b[0m [dependencies.foo]\n        2 │\u001b[0m version = \"0.16\"\n        3 │\u001b[0m\n        4 │\u001b[0m [dependencies]\n        5 │\u001b[0m libc = \"0.2\"\n        6 │\u001b[0m\n        7 │\u001b[0m [dependencies]\n        8 │\u001b[0m rand = \"0.3.14\"\n\n     output from parser-cmd (PID 1689943) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"dependencies\": {\n        3 │\u001b[0m     \"libc\": {\"type\": \"string\", \"value\": \"0.2\"},\n        4 │\u001b[0m     \"rand\": {\"type\": \"string\", \"value\": \"0.3.14\"},\n        5 │\u001b[0m     \"foo\": {\n        6 │\u001b[0m       \"version\": {\"type\": \"string\", \"value\": \"0.16\"}\n        7 │\u001b[0m     }\n        8 │\u001b[0m   }\n        9 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/append-with-dotted-keys-08\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1689872):\n        1 │\u001b[0m [a.b.c]\n        2 │\u001b[0m z = 9\n        3 │\u001b[0m\n        4 │\u001b[0m [[totally_unrelated]]\n        5 │\u001b[0m x = 123\n        6 │\u001b[0m\n        7 │\u001b[0m [a]\n        8 │\u001b[0m b.c.t = \"this should NOT be allowed\"\n\n     output from parser-cmd (PID 1689872) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"totally_unrelated\": [{\n        3 │\u001b[0m     \"x\": {\"type\": \"integer\", \"value\": \"123\"}\n        4 │\u001b[0m   }],\n        5 │\u001b[0m   \"a\": {\n        6 │\u001b[0m     \"b\": {\n        7 │\u001b[0m       \"c\": {\n        8 │\u001b[0m         \"t\": {\"type\": \"string\", \"value\": \"this should NOT be allowed\"},\n        9 │\u001b[0m         \"z\": {\"type\": \"integer\", \"value\": \"9\"}\n       10 │\u001b[0m       }\n       11 │\u001b[0m     }\n       12 │\u001b[0m   }\n       13 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/array-implicit\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1689877):\n        1 │\u001b[0m # This test is a bit tricky. It should fail because the first use of\n        2 │\u001b[0m # `[[albums.songs]]` without first declaring `albums` implies that `albums`\n        3 │\u001b[0m # must be a table. The alternative would be quite weird. Namely, it wouldn't\n        4 │\u001b[0m # comply with the TOML spec: \"Each double-bracketed sub-table will belong to\n        5 │\u001b[0m # the most *recently* defined table element *above* it.\"\n        6 │\u001b[0m #\n        7 │\u001b[0m # This is in contrast to the *valid* test, table-array-implicit where\n        8 │\u001b[0m # `[[albums.songs]]` works by itself, so long as `[[albums]]` isn't declared\n        9 │\u001b[0m # later. (Although, `[albums]` could be.)\n       10 │\u001b[0m [[albums.songs]]\n       11 │\u001b[0m name = \"Glory Days\"\n       12 │\u001b[0m\n       13 │\u001b[0m [[albums]]\n       14 │\u001b[0m name = \"Born in the USA\"\n\n     output from parser-cmd (PID 1689877) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"albums\": [{\n        3 │\u001b[0m     \"name\": {\"type\": \"string\", \"value\": \"Born in the USA\"}\n        4 │\u001b[0m   }]\n        5 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/duplicate-key-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1689938):\n        1 │\u001b[0m [a]\n        2 │\u001b[0m b = 1\n        3 │\u001b[0m\n        4 │\u001b[0m [a]\n        5 │\u001b[0m c = 2\n\n     output from parser-cmd (PID 1689938) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": {\n        3 │\u001b[0m     \"b\": {\"type\": \"integer\", \"value\": \"1\"},\n        4 │\u001b[0m     \"c\": {\"type\": \"integer\", \"value\": \"2\"}\n        5 │\u001b[0m   }\n        6 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/duplicate-key-03\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1689972):\n        1 │\u001b[0m [fruit]\n        2 │\u001b[0m apple.color = \"red\"\n        3 │\u001b[0m\n        4 │\u001b[0m [[fruit.apple]]\n\n     output from parser-cmd (PID 1689972) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"fruit\": {\"apple\": [{}]}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/duplicate-key-06\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1689979):\n        1 │\u001b[0m [tbl]\n        2 │\u001b[0m [[tbl]]\n\n     output from parser-cmd (PID 1689979) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"tbl\": [{}]\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/duplicate-key-09\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1690007):\n        1 │\u001b[0m [a]\n        2 │\u001b[0m foo=\"bar\"\n        3 │\u001b[0m [a.b]\n        4 │\u001b[0m foo=\"bar\"\n        5 │\u001b[0m [a]\n\n     output from parser-cmd (PID 1690007) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": {\n        3 │\u001b[0m     \"foo\": {\"type\": \"string\", \"value\": \"bar\"},\n        4 │\u001b[0m     \"b\": {\n        5 │\u001b[0m       \"foo\": {\"type\": \"string\", \"value\": \"bar\"}\n        6 │\u001b[0m     }\n        7 │\u001b[0m   }\n        8 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/overwrite-bool-with-array\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1690151):\n        1 │\u001b[0m a=true\n        2 │\u001b[0m [[a]]\n\n     output from parser-cmd (PID 1690151) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": [{}]\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/redefine-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1690080):\n        1 │\u001b[0m [t1]\n        2 │\u001b[0m t2.t3.v = 0\n        3 │\u001b[0m [t1.t2]\n\n     output from parser-cmd (PID 1690080) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"t1\": {\n        3 │\u001b[0m     \"t2\": {\n        4 │\u001b[0m       \"t3\": {\n        5 │\u001b[0m         \"v\": {\"type\": \"integer\", \"value\": \"0\"}\n        6 │\u001b[0m       }\n        7 │\u001b[0m     }\n        8 │\u001b[0m   }\n        9 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/redefine-03\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1690105):\n        1 │\u001b[0m [t1]\n        2 │\u001b[0m t2.t3.v = 0\n        3 │\u001b[0m [t1.t2.t3]\n\n     output from parser-cmd (PID 1690105) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"t1\": {\n        3 │\u001b[0m     \"t2\": {\n        4 │\u001b[0m       \"t3\": {\n        5 │\u001b[0m         \"v\": {\"type\": \"integer\", \"value\": \"0\"}\n        6 │\u001b[0m       }\n        7 │\u001b[0m     }\n        8 │\u001b[0m   }\n        9 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/super-twice\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 1690195):\n        1 │\u001b[0m [a.b]\n        2 │\u001b[0m [a]\n        3 │\u001b[0m [a]\n\n     output from parser-cmd (PID 1690195) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": {\n        3 │\u001b[0m     \"b\": {}\n        4 │\u001b[0m   }\n        5 │\u001b[0m }\n\n     want:\n       Exit code 1\n\ntoml-test v2.2.0 [/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260816.121804/build/toml/toml-decoder] [no encoder]\n  valid tests: 128 passed, 77 failed\nencoder tests: no encoder command given\ninvalid tests: 413 passed, 61 failed\n","exit_code":1,"status":"failed"}}
{"type":"item.completed","item":{"id":"item_12","type":"agent_message","text":"<reusable-compact filename=\"stage_test.sh\">\nRuns one scoped TOML conformance slice. Requires exactly one `-run` pattern argument, builds `./cmd/toml-decoder`, invokes `sources/run_conformance.sh`, and uses the command exit status as the verdict. Defaults `TOML_TEST_VERSION` to `v2.2.0`.\n</reusable-compact>\n\nRESULT: SUCCESS\n\nFILES CHANGED:\n- internal/toml/toml.go\n- toml-decoder\n\nSUMMARY:\nFixed multiline quote-run parsing and line-comment boundary handling. Scoped acceptance passes: strings valid 23/23, strings invalid 77/77, keys valid 28/28, keys invalid 61/61. Go tests and vet pass.\n\nBLOCKERS:\n- Full conformance remains outside this block’s string/key scope and still has unrelated array, scalar, datetime, and table failures."}}
{"type":"turn.completed","usage":{"input_tokens":355516,"cached_input_tokens":299520,"cache_write_input_tokens":0,"output_tokens":4265,"reasoning_output_tokens":2025}}