Run artifact

workspace/logs/20260814.051622.557Z_toml_build_codex.raw.jsonl

{"type":"thread.started","thread_id":"019ffeb3-2bcf-7591-9b6a-3af40b170a95"}
{"type":"turn.started"}
{"type":"item.completed","item":{"id":"item_0","type":"agent_message","text":"I’m inspecting the staged build and verifying the Go toolchain first, then I’ll implement the decoder’s process-boundary failure behavior and run the declared checks."}}
{"type":"item.started","item":{"id":"item_1","type":"command_execution","command":"/bin/bash -lc \"pwd && go version && rg --files -g '\"'!sources/*'\"' -g '\"'!*.sum'\"' | sort && printf '\\\\nStaged assets:\\\\n' && rg --files sources | sort\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_1","type":"command_execution","command":"/bin/bash -lc \"pwd && go version && rg --files -g '\"'!sources/*'\"' -g '\"'!*.sum'\"' | sort && printf '\\\\nStaged assets:\\\\n' && rg --files sources | sort\"","aggregated_output":"go version go1.24.6 linux/amd64\ncmd/toml-decoder/main.go\ncmd/toml-decoder/main_test.go\ngo.mod\ninternal/toml/decode.go\ninternal/toml/value.go\ninternal/toml/value_test.go\ntoml-decoder\n\nStaged assets:\nsources/full_test.sh\nsources/run_conformance.sh\nsources/setup_harness.sh\nsources/stage_test.sh\n","exit_code":0,"status":"completed"}}
{"type":"item.started","item":{"id":"item_2","type":"command_execution","command":"/bin/bash -lc \"sed -n '1,240p' cmd/toml-decoder/main.go && printf '\\\\n--- main tests ---\\\\n' && sed -n '1,260p' cmd/toml-decoder/main_test.go && printf '\\\\n--- decode ---\\\\n' && sed -n '1,320p' internal/toml/decode.go && printf '\\\\n--- value ---\\\\n' && sed -n '1,220p' internal/toml/value.go && printf '\\\\n--- go.mod ---\\\\n' && sed -n '1,80p' go.mod\"","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,240p' cmd/toml-decoder/main.go && printf '\\\\n--- main tests ---\\\\n' && sed -n '1,260p' cmd/toml-decoder/main_test.go && printf '\\\\n--- decode ---\\\\n' && sed -n '1,320p' internal/toml/decode.go && printf '\\\\n--- value ---\\\\n' && sed -n '1,220p' internal/toml/value.go && printf '\\\\n--- go.mod ---\\\\n' && sed -n '1,80p' go.mod\"","aggregated_output":"package main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\n\t\"github.com/owner/toml-decoder/internal/toml\"\n)\n\nfunc main() {\n\tif len(os.Args) != 1 {\n\t\tfmt.Fprintln(os.Stderr, \"toml-decoder accepts no arguments\")\n\t\tos.Exit(2)\n\t}\n\tinput, err := io.ReadAll(os.Stdin)\n\tif err != nil {\n\t\tfmt.Fprintln(os.Stderr, err)\n\t\tos.Exit(1)\n\t}\n\tparsed, err := toml.Decode(string(input))\n\tif err != nil {\n\t\tfmt.Fprintln(os.Stderr, err)\n\t\tos.Exit(1)\n\t}\n\ttagged, err := toml.Tagged(parsed)\n\tif err != nil {\n\t\tfmt.Fprintln(os.Stderr, err)\n\t\tos.Exit(1)\n\t}\n\tif err := json.NewEncoder(os.Stdout).Encode(tagged); err != nil {\n\t\tfmt.Fprintln(os.Stderr, err)\n\t\tos.Exit(1)\n\t}\n}\n\n--- main tests ---\npackage main\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"os/exec\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestDecoderValidStdinProducesJSON(t *testing.T) {\n\tcmd := exec.Command(\"go\", \"run\", \".\")\n\tcmd.Stdin = strings.NewReader(\"answer = 42\\n\")\n\tout, err := cmd.Output()\n\tif err != nil {\n\t\tt.Fatalf(\"decoder failed: %v\", err)\n\t}\n\tvar decoded map[string]any\n\tif err := json.Unmarshal(out, &decoded); err != nil {\n\t\tt.Fatalf(\"stdout is not JSON: %v\", err)\n\t}\n\tif decoded[\"answer\"].(map[string]any)[\"value\"] != \"42\" {\n\t\tt.Fatalf(\"decoded JSON = %#v\", decoded)\n\t}\n}\n\nfunc TestDecoderRejectsArguments(t *testing.T) {\n\tcmd := exec.Command(\"go\", \"run\", \".\", \"--help\")\n\tif err := cmd.Run(); err == nil {\n\t\tt.Fatal(\"decoder accepted an argument\")\n\t}\n}\n\nfunc TestDecoderSuccessfulRunLeavesStderrEmpty(t *testing.T) {\n\tcmd := exec.Command(\"go\", \"run\", \".\")\n\tcmd.Stdin = strings.NewReader(\"enabled = true\\n\")\n\tvar stderr bytes.Buffer\n\tcmd.Stderr = &stderr\n\tif err := cmd.Run(); err != nil {\n\t\tt.Fatalf(\"decoder failed: %v\", err)\n\t}\n\tif stderr.Len() != 0 {\n\t\tt.Fatalf(\"stderr = %q\", stderr.String())\n\t}\n}\n\n--- decode ---\npackage toml\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\n// Decode parses a TOML 1.0 document into tables, arrays, and tagged scalar values.\nfunc Decode(document string) (Object, error) {\n\tif !utf8.ValidString(document) {\n\t\treturn nil, fmt.Errorf(\"invalid UTF-8\")\n\t}\n\troot := Object{}\n\tcurrent := root\n\tdeclared := map[string]bool{}\n\tlines, err := statements(document)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor n, raw := range lines {\n\t\tline := strings.TrimSpace(raw)\n\t\tif line == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(line, \"[[\") && strings.HasSuffix(line, \"]]\") {\n\t\t\tpath, err := parseKey(line[2 : len(line)-2])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, lineErr(n, err)\n\t\t\t}\n\t\t\tparent, leaf, err := ensureParent(root, path)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, lineErr(n, err)\n\t\t\t}\n\t\t\tarr, ok := parent[leaf].([]any)\n\t\t\tif !ok {\n\t\t\t\tarr = []any{}\n\t\t\t\tparent[leaf] = arr\n\t\t\t}\n\t\t\tobj := Object{}\n\t\t\tarr = append(arr, obj)\n\t\t\tparent[leaf] = arr\n\t\t\tcurrent = obj\n\t\t\tdeclared[strings.Join(path, \".\")] = true\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(line, \"[\") && strings.HasSuffix(line, \"]\") {\n\t\t\tpath, err := parseKey(line[1 : len(line)-1])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, lineErr(n, err)\n\t\t\t}\n\t\t\tobj, err := ensureTable(root, path, declared)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, lineErr(n, err)\n\t\t\t}\n\t\t\tcurrent = obj\n\t\t\tcontinue\n\t\t}\n\t\tpos, err := assignmentEquals(line)\n\t\tif err != nil {\n\t\t\treturn nil, lineErr(n, err)\n\t\t}\n\t\tkey, err := parseKey(line[:pos])\n\t\tif err != nil {\n\t\t\treturn nil, lineErr(n, err)\n\t\t}\n\t\tif len(key) == 0 {\n\t\t\treturn nil, lineErr(n, fmt.Errorf(\"empty key\"))\n\t\t}\n\t\tvalue, err := parseValue(strings.TrimSpace(line[pos+1:]))\n\t\tif err != nil {\n\t\t\treturn nil, lineErr(n, err)\n\t\t}\n\t\ttarget := current\n\t\tfor _, part := range key[:len(key)-1] {\n\t\t\tnext, ok := target[part].(Object)\n\t\t\tif !ok {\n\t\t\t\tif target[part] != nil {\n\t\t\t\t\treturn nil, lineErr(n, fmt.Errorf(\"key %q is not a table\", part))\n\t\t\t\t}\n\t\t\t\tnext = Object{}\n\t\t\t\ttarget[part] = next\n\t\t\t}\n\t\t\ttarget = next\n\t\t}\n\t\tleaf := key[len(key)-1]\n\t\tif _, exists := target[leaf]; exists {\n\t\t\treturn nil, lineErr(n, fmt.Errorf(\"duplicate key %q\", leaf))\n\t\t}\n\t\ttarget[leaf] = value\n\t}\n\treturn root, nil\n}\n\nfunc lineErr(n int, err error) error { return fmt.Errorf(\"line %d: %w\", n+1, err) }\n\nfunc statements(s string) ([]string, error) {\n\tvar out []string\n\tstart, depth := 0, 0\n\tquote := byte(0)\n\tescaped := false\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tif quote == 0 && c == '#' {\n\t\t\tfor i < len(s) && s[i] != '\\n' {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tif i == len(s) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tc = s[i]\n\t\t}\n\t\tif quote != 0 {\n\t\t\tif quote == '\"' && escaped {\n\t\t\t\tescaped = false\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif quote == '\"' && c == '\\\\' {\n\t\t\t\tescaped = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif c == quote {\n\t\t\t\tif i+2 < len(s) && s[i+1] == quote && s[i+2] == quote {\n\t\t\t\t\ti += 2\n\t\t\t\t\tquote = 0\n\t\t\t\t} else {\n\t\t\t\t\tquote = 0\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif c == '\"' || c == '\\'' {\n\t\t\tquote = c\n\t\t\tcontinue\n\t\t}\n\t\tif c == '[' || c == '{' {\n\t\t\tdepth++\n\t\t}\n\t\tif c == ']' || c == '}' {\n\t\t\tdepth--\n\t\t\tif depth < 0 {\n\t\t\t\treturn nil, fmt.Errorf(\"unexpected closing delimiter\")\n\t\t\t}\n\t\t}\n\t\tif c == '\\n' && depth == 0 {\n\t\t\tout = append(out, stripComment(s[start:i]))\n\t\t\tstart = i + 1\n\t\t}\n\t}\n\tif quote != 0 || depth != 0 {\n\t\treturn nil, fmt.Errorf(\"unterminated value\")\n\t}\n\tout = append(out, stripComment(s[start:]))\n\treturn out, nil\n}\n\nfunc stripComment(s string) string {\n\tquote := byte(0)\n\tescaped := false\n\tvar out strings.Builder\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tif quote != 0 {\n\t\t\tif quote == '\"' && escaped {\n\t\t\t\tescaped = false\n\t\t\t\tout.WriteByte(c)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif quote == '\"' && c == '\\\\' {\n\t\t\t\tescaped = true\n\t\t\t\tout.WriteByte(c)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif c == quote {\n\t\t\t\tquote = 0\n\t\t\t}\n\t\t\tout.WriteByte(c)\n\t\t\tcontinue\n\t\t}\n\t\tif c == '\"' || c == '\\'' {\n\t\t\tquote = c\n\t\t}\n\t\tif c == '#' {\n\t\t\tfor i < len(s) && s[i] != '\\n' {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tif i < len(s) {\n\t\t\t\tout.WriteByte('\\n')\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tout.WriteByte(c)\n\t}\n\treturn out.String()\n}\n\nfunc assignmentEquals(s string) (int, error) {\n\tquote := byte(0)\n\tdepth := 0\n\tfor i, c := range []byte(s) {\n\t\tif quote != 0 {\n\t\t\tif c == quote && (i == 0 || s[i-1] != '\\\\') {\n\t\t\t\tquote = 0\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif c == '\"' || c == '\\'' {\n\t\t\tquote = c\n\t\t}\n\t\tif c == '[' || c == '{' {\n\t\t\tdepth++\n\t\t}\n\t\tif c == ']' || c == '}' {\n\t\t\tdepth--\n\t\t}\n\t\tif c == '=' && depth == 0 {\n\t\t\treturn i, nil\n\t\t}\n\t}\n\treturn 0, fmt.Errorf(\"expected key/value pair\")\n}\n\nfunc parseKey(s string) ([]string, error) {\n\tvar keys []string\n\tfor {\n\t\ts = strings.TrimSpace(s)\n\t\tif s == \"\" {\n\t\t\tbreak\n\t\t}\n\t\tvar key string\n\t\tif s[0] == '\"' || s[0] == '\\'' {\n\t\t\tq := s[0]\n\t\t\tend := strings.IndexByte(s[1:], q)\n\t\t\tif end < 0 {\n\t\t\t\treturn nil, fmt.Errorf(\"unterminated key\")\n\t\t\t}\n\t\t\traw := s[1 : end+1]\n\t\t\tif q == '\"' {\n\t\t\t\tvar err error\n\t\t\t\traw, err = unquote(raw)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t\tkey = raw\n\t\t\tif strings.ContainsAny(key, \"\\r\\n\") {\n\t\t\t\treturn nil, fmt.Errorf(\"newline in key\")\n\t\t\t}\n\t\t\ts = s[end+2:]\n\t\t} else {\n\t\t\ti := 0\n\t\t\tfor i < len(s) && s[i] != '.' {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tkey = strings.TrimSpace(s[:i])\n\t\t\tif key == \"\" {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid key\")\n\t\t\t}\n\t\t\tfor _, r := range key {\n\t\t\t\tif !(r == '_' || r == '-' || r >= 'a' && r <= 'z' || r >= 'A' && r <= 'Z' || r >= '0' && r <= '9') {\n\t\t\t\t\treturn nil, fmt.Errorf(\"invalid bare key\")\n\t\t\t\t}\n\t\t\t}\n\t\t\ts = s[i:]\n\t\t}\n\t\tkeys = append(keys, key)\n\t\ts = strings.TrimSpace(s)\n\t\tif s == \"\" {\n\t\t\tbreak\n\t\t}\n\t\tif s[0] != '.' {\n\t\t\treturn nil, fmt.Errorf(\"invalid dotted key\")\n\t\t}\n\t\ts = s[1:]\n\t\tif strings.TrimSpace(s) == \"\" {\n\t\t\treturn nil, fmt.Errorf(\"invalid dotted key\")\n\t\t}\n\t}\n\tif len(keys) == 0 || strings.HasSuffix(strings.TrimSpace(s), \".\") {\n\t\treturn nil, fmt.Errorf(\"invalid dotted key\")\n\t}\n\treturn keys, nil\n}\n\nfunc ensureParent(root Object, path []string) (Object, string, error) {\n\tif len(path) == 0 {\n\t\treturn nil, \"\", fmt.Errorf(\"empty table\")\n\t}\n\tobj := root\n\tfor _, p := range path[:len(path)-1] {\n\t\tif x, ok := obj[p].(Object); ok {\n\t\t\tobj = x\n\t\t} else if obj[p] == nil {\n\t\t\tx := Object{}\n\t\t\tobj[p] = x\n\t\t\tobj = x\n\t\t} else {\n\t\t\treturn nil, \"\", fmt.Errorf(\"table conflict\")\n\t\t}\n\t}\n\treturn obj, path[len(path)-1], nil\n}\nfunc ensureTable(root Object, path []string, decl map[string]bool) (Object, error) {\n\tobj := root\n\tfor i, p := range path {\n\t\tif x, ok := obj[p].(Object); ok {\n\t\t\tobj = x\n\t\t\tcontinue\n\t\t}\n\t\tif arr, ok := obj[p].([]any); ok && len(arr) > 0 {\n\t\t\tif x, ok := arr[len(arr)-1].(Object); ok {\n\t\t\t\tobj = x\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif obj[p] != nil {\n\t\t\treturn nil, fmt.Errorf(\"table conflict\")\n\n--- value ---\npackage toml\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// Kind identifies the TOML type represented by a Value.\ntype Kind string\n\nconst (\n\tString        Kind = \"string\"\n\tInteger       Kind = \"integer\"\n\tFloat         Kind = \"float\"\n\tBool          Kind = \"bool\"\n\tDatetime      Kind = \"datetime\"\n\tDatetimeLocal Kind = \"datetime-local\"\n\tDateLocal     Kind = \"date-local\"\n\tTimeLocal     Kind = \"time-local\"\n)\n\n// Value is a scalar TOML value. Lexeme is retained as supplied by the parser\n// so integer values never pass through floating-point representation.\ntype Value struct {\n\tKind   Kind\n\tLexeme string\n}\n\n// Object is the internal representation of a TOML table or array.\ntype Object map[string]any\n\n// Tagged returns the JSON-compatible tagged representation of v.\nfunc Tagged(v any) (any, error) {\n\tswitch value := v.(type) {\n\tcase Value:\n\t\treturn struct {\n\t\t\tType  Kind   `json:\"type\"`\n\t\t\tValue string `json:\"value\"`\n\t\t}{value.Kind, value.Lexeme}, nil\n\tcase Object:\n\t\tresult := make(map[string]any, len(value))\n\t\tfor key, item := range value {\n\t\t\tencoded, err := Tagged(item)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"encode %q: %w\", key, err)\n\t\t\t}\n\t\t\tresult[key] = encoded\n\t\t}\n\t\treturn result, nil\n\tcase []any:\n\t\tresult := make([]any, len(value))\n\t\tfor i, item := range value {\n\t\t\tencoded, err := Tagged(item)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"encode array item %d: %w\", i, err)\n\t\t\t}\n\t\t\tresult[i] = encoded\n\t\t}\n\t\treturn result, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unsupported TOML value %T\", v)\n\t}\n}\n\n// MarshalJSON encodes a Value as the required tagged JSON scalar.\nfunc (v Value) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(struct {\n\t\tType  Kind   `json:\"type\"`\n\t\tValue string `json:\"value\"`\n\t}{v.Kind, v.Lexeme})\n}\n\n--- go.mod ---\nmodule github.com/owner/toml-decoder\n\ngo 1.24\n","exit_code":0,"status":"completed"}}
{"type":"item.started","item":{"id":"item_3","type":"command_execution","command":"/bin/bash -lc \"sed -n '300,760p' internal/toml/decode.go && printf '\\\\n--- value tests ---\\\\n' && sed -n '1,320p' internal/toml/value_test.go && printf '\\\\n--- git status ---\\\\n' && git status --short\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_3","type":"command_execution","command":"/bin/bash -lc \"sed -n '300,760p' internal/toml/decode.go && printf '\\\\n--- value tests ---\\\\n' && sed -n '1,320p' internal/toml/value_test.go && printf '\\\\n--- git status ---\\\\n' && git status --short\"","aggregated_output":"","exit_code":0,"status":"completed"}}
{"type":"item.completed","item":{"id":"item_4","type":"agent_message","text":"The decoder already routes parser errors correctly: malformed input returns before JSON encoding, and `main` writes the error only to stderr with a non-zero exit. I’m adding the missing process-level regression coverage for all three acceptance assertions, including empty stdout."}}
{"type":"item.started","item":{"id":"item_5","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/cmd/toml-decoder/main_test.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_5","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/cmd/toml-decoder/main_test.go","kind":"update"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_6","type":"command_execution","command":"/bin/bash -lc \"gofmt -w cmd/toml-decoder/main_test.go && go test ./... && go vet ./... && go build ./... && printf 'malformed process check:\\\\n' && set +e; printf 'broken = [\\\\n' | ./toml-decoder >/tmp/toml-decoder.stdout 2>/tmp/toml-decoder.stderr; status=\"'$?; set -e; printf '\"'status=%s stdout_bytes=%s stderr_bytes=%s\\\\n' \\\"\"'$status\" \"$(wc -c < /tmp/toml-decoder.stdout)\" \"$(wc -c < /tmp/toml-decoder.stderr)\" && test \"$status\" -ne 0 && test \"$(wc -c < /tmp/toml-decoder.stdout)\" -eq 0 && test \"$(wc -c < /tmp/toml-decoder.stderr)\" -gt 0 && printf '\"'process check passed\\\\n'\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_6","type":"command_execution","command":"/bin/bash -lc \"gofmt -w cmd/toml-decoder/main_test.go && go test ./... && go vet ./... && go build ./... && printf 'malformed process check:\\\\n' && set +e; printf 'broken = [\\\\n' | ./toml-decoder >/tmp/toml-decoder.stdout 2>/tmp/toml-decoder.stderr; status=\"'$?; set -e; printf '\"'status=%s stdout_bytes=%s stderr_bytes=%s\\\\n' \\\"\"'$status\" \"$(wc -c < /tmp/toml-decoder.stdout)\" \"$(wc -c < /tmp/toml-decoder.stderr)\" && test \"$status\" -ne 0 && test \"$(wc -c < /tmp/toml-decoder.stdout)\" -eq 0 && test \"$(wc -c < /tmp/toml-decoder.stderr)\" -gt 0 && printf '\"'process check passed\\\\n'\"","aggregated_output":"ok  \tgithub.com/owner/toml-decoder/cmd/toml-decoder\t0.850s\nok  \tgithub.com/owner/toml-decoder/internal/toml\t(cached)\nmalformed process check:\nstatus=1 stdout_bytes=0 stderr_bytes=19\nprocess check passed\n","exit_code":0,"status":"completed"}}
{"type":"item.completed","item":{"id":"item_7","type":"agent_message","text":"The new regression test and direct acceptance checks pass: malformed TOML exits 1, emits 19 bytes of stderr diagnostic, and emits zero stdout bytes. I’m running the supplied full scoring entry point now, then I’ll report any harness-level blocker separately from the implementation result."}}
{"type":"item.started","item":{"id":"item_8","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_8","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/comment/tricky\n     line 16: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 747814):\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 747814) (stderr):\n        1 │\u001b[0m line 16: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/datetime/datetime\n     line 4: invalid value \"1987-07-05t17:45:00z\"\n \n     Exit 1\n\n     input sent to parser-cmd (PID 747812):\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 747812) (stderr):\n        1 │\u001b[0m line 4: 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/inf-and-nan\n     Values for key \"infinity_neg\" don't match:\n       Expected:     -Inf\n       Your encoder: +Inf\n\n     input sent to parser-cmd (PID 747999):\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 747999) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"infinity\":      {\"type\": \"float\", \"value\": \"inf\"},\n        3 │\u001b[0m   \"infinity_neg\":  {\"type\": \"float\", \"value\": \"inf\"},\n        4 │\u001b[0m   \"infinity_plus\": {\"type\": \"float\", \"value\": \"inf\"},\n        5 │\u001b[0m   \"nan\":           {\"type\": \"float\", \"value\": \"nan\"},\n        6 │\u001b[0m   \"nan_neg\":       {\"type\": \"float\", \"value\": \"nan\"},\n        7 │\u001b[0m   \"nan_plus\":      {\"type\": \"float\", \"value\": \"nan\"}\n        8 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"infinity\":      {\"type\": \"float\", \"value\": \"inf\"},\n        3 │\u001b[0m     \"infinity_neg\":  {\"type\": \"float\", \"value\": \"-inf\"},\n        4 │\u001b[0m     \"infinity_plus\": {\"type\": \"float\", \"value\": \"inf\"},\n        5 │\u001b[0m     \"nan\":           {\"type\": \"float\", \"value\": \"nan\"},\n        6 │\u001b[0m     \"nan_neg\":       {\"type\": \"float\", \"value\": \"nan\"},\n        7 │\u001b[0m     \"nan_plus\":      {\"type\": \"float\", \"value\": \"nan\"}\n        8 │\u001b[0m }\n\nFAIL valid/inline-table/empty\n     line 6: invalid inline key\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748054):\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 748054) (stderr):\n        1 │\u001b[0m line 6: invalid inline key\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/inline-table\n     line 4: invalid inline key\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748068):\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 748068) (stderr):\n        1 │\u001b[0m line 4: invalid inline key\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/key-dotted-01\n     line 2: invalid inline key\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748070):\n        1 │\u001b[0m a = {   a.b  =  1   }\n        2 │\u001b[0m b = {   \"a\".\"b\"  =  1   }\n        3 │\u001b[0m c = {   a   .   b  =  1   }\n        4 │\u001b[0m d = {   'a'   .   \"b\"  =  1   }\n        5 │\u001b[0m e = {a.b=1}\n\n     output from parser-cmd (PID 748070) (stderr):\n        1 │\u001b[0m line 2: invalid inline key\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/inline-table/spaces\n     line 5: invalid inline key\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748115):\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 748115) (stderr):\n        1 │\u001b[0m line 5: invalid inline key\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/integer/long\n     Values for key \"int64-max-neg\" don't match:\n       Expected:     -9223372036854775808\n       Your encoder: -9223372036854775807\n\n     input sent to parser-cmd (PID 748134):\n        1 │\u001b[0m # int64 \"should\" be supported, but is not mandatory. It's fine to skip this\n        2 │\u001b[0m # test.\n        3 │\u001b[0m int64-max     = 9223372036854775807\n        4 │\u001b[0m int64-max-neg = -9223372036854775808\n\n     output from parser-cmd (PID 748134) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"int64-max\":     {\"type\": \"integer\", \"value\": \"9223372036854775807\"},\n        3 │\u001b[0m   \"int64-max-neg\": {\"type\": \"integer\", \"value\": \"-9223372036854775807\"}\n        4 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"int64-max\":     {\"type\": \"integer\", \"value\": \"9223372036854775807\"},\n        3 │\u001b[0m     \"int64-max-neg\": {\"type\": \"integer\", \"value\": \"-9223372036854775808\"}\n        4 │\u001b[0m }\n\nFAIL valid/key/case-sensitive\n     line 10: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748171):\n        1 │\u001b[0m sectioN = \"NN\"\n        2 │\u001b[0m\n        3 │\u001b[0m [section]\n        4 │\u001b[0m name = \"lower\"\n        5 │\u001b[0m NAME = \"upper\"\n        6 │\u001b[0m Name = \"capitalized\"\n        7 │\u001b[0m\n        8 │\u001b[0m [Section]\n        9 │\u001b[0m name = \"different section!!\"\n       10 │\u001b[0m \"μ\" = \"greek small letter mu\"\n       11 │\u001b[0m \"Μ\" = \"greek capital letter MU\"\n       12 │\u001b[0m M = \"latin letter M\"\n\n     output from parser-cmd (PID 748171) (stderr):\n        1 │\u001b[0m line 10: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/key/dotted-01\n     line 2: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748173):\n        1 │\u001b[0m name.first = \"Arthur\"\n        2 │\u001b[0m \"name\".'last' = \"Dent\"\n        3 │\u001b[0m\n        4 │\u001b[0m many.dots.dot.dot.dot = 42\n\n     output from parser-cmd (PID 748173) (stderr):\n        1 │\u001b[0m line 2: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/key/dotted-02\n     line 6: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748261):\n        1 │\u001b[0m # Note: this file contains literal tab characters.\n        2 │\u001b[0m\n        3 │\u001b[0m # Space are ignored, and key parts can be quoted.\n        4 │\u001b[0m count.a       = 1\n        5 │\u001b[0m count . b     = 2\n        6 │\u001b[0m \"count\".\"c\"   = 3\n        7 │\u001b[0m \"count\" . \"d\" = 4\n        8 │\u001b[0m 'count'.'e'   = 5\n        9 │\u001b[0m 'count' . 'f' = 6\n       10 │\u001b[0m \"count\".'g'   = 7\n       11 │\u001b[0m \"count\" . 'h' = 8\n       12 │\u001b[0m count.'i'     = 9\n       13 │\u001b[0m count \t.\t 'j'\t   = 10\n       14 │\u001b[0m \"count\".k     = 11\n       15 │\u001b[0m \"count\" . l   = 12\n\n     output from parser-cmd (PID 748261) (stderr):\n        1 │\u001b[0m line 6: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/key/dotted-empty\n     line 2: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748176):\n        1 │\u001b[0m ''.x = \"empty.x\"\n        2 │\u001b[0m x.\"\" = \"x.empty\"\n        3 │\u001b[0m [a]\n        4 │\u001b[0m \"\".'' = \"empty.empty\"\n\n     output from parser-cmd (PID 748176) (stderr):\n        1 │\u001b[0m line 2: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/key/empty-01\n     line 1: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748228):\n        1 │\u001b[0m \"\" = \"blank\"\n\n     output from parser-cmd (PID 748228) (stderr):\n        1 │\u001b[0m line 1: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/key/escapes\n     line 1: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748195):\n        1 │\u001b[0m \"\\n\" = \"newline\"\n        2 │\u001b[0m \"\\b\" = \"bell\"\n        3 │\u001b[0m \"\\u00c0\" = \"latin capital letter A with grave\"\n        4 │\u001b[0m \"\\\"\" = \"just a quote\"\n        5 │\u001b[0m\n        6 │\u001b[0m [\"backsp\\b\\b\"]\n        7 │\u001b[0m\n        8 │\u001b[0m [\"\\\"quoted\\\"\"]\n        9 │\u001b[0m quote = true\n       10 │\u001b[0m\n       11 │\u001b[0m [\"a.b\".\"\\u00c0\"]\n\n     output from parser-cmd (PID 748195) (stderr):\n        1 │\u001b[0m line 1: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/key/like-date\n     line 3: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748196):\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 748196) (stderr):\n        1 │\u001b[0m line 3: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/key/quoted-dots\n     line 2: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748260):\n        1 │\u001b[0m plain = 1\n        2 │\u001b[0m \"with.dot\" = 2\n        3 │\u001b[0m\n        4 │\u001b[0m [plain_table]\n        5 │\u001b[0m plain = 3\n        6 │\u001b[0m \"with.dot\" = 4\n        7 │\u001b[0m\n        8 │\u001b[0m [table.withdot]\n        9 │\u001b[0m plain = 5\n       10 │\u001b[0m \"key.with.dots\" = 6\n       11 │\u001b[0m \"escaped\\u002edot\" = 7\n\n     output from parser-cmd (PID 748260) (stderr):\n        1 │\u001b[0m line 2: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/key/quoted-unicode\n     line 2: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748262):\n        1 │\u001b[0m\n        2 │\u001b[0m \"\\u0000\" = \"null\"\n        3 │\u001b[0m '\\u0000' = \"different key\"\n        4 │\u001b[0m \"\\u0008 \\u000c \\U00000041 \\u007f \\u0080 \\u00ff \\ud7ff \\ue000 \\uffff \\U00010000 \\U0010ffff\" = \"escaped key\"\n        5 │\u001b[0m\n        6 │\u001b[0m \"~ € ÿ ퟿  ￿ 𐀀 􏿿\" = \"basic key\"\n        7 │\u001b[0m 'l ~ € ÿ ퟿  ￿ 𐀀 􏿿' = \"literal key\"\n\n     output from parser-cmd (PID 748262) (stderr):\n        1 │\u001b[0m line 2: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/key/space\n     line 2: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748294):\n        1 │\u001b[0m # Keep whitespace inside quotes keys at all positions.\n        2 │\u001b[0m \"a b\"   = 1\n        3 │\u001b[0m \" c d \" = 2\n        4 │\u001b[0m \"  much \t\t  whitespace  \t\\n  \\r\\n  \" = 3\n        5 │\u001b[0m\n        6 │\u001b[0m [ \" tbl \" ]\n        7 │\u001b[0m \"\\ttab\\ttab\\t\" = \"tab\"\n\n     output from parser-cmd (PID 748294) (stderr):\n        1 │\u001b[0m line 2: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/key/special-chars\n     line 1: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748292):\n        1 │\u001b[0m \"=~!@$^&*()_+-`1234567890[]|/?><.,;:'=\" = 1\n\n     output from parser-cmd (PID 748292) (stderr):\n        1 │\u001b[0m line 1: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/multibyte\n     line 15: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748300):\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 748300) (stderr):\n        1 │\u001b[0m line 15: invalid string: invalid syntax\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 8: table conflict\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748404):\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 748404) (stderr):\n        1 │\u001b[0m line 8: table conflict\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     Values for key \"sf3\" don't match:\n       Expected:     -Inf\n       Your encoder: +Inf\n\n     input sent to parser-cmd (PID 748377):\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 748377) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"sf1\": {\"type\": \"float\", \"value\": \"inf\"},\n        3 │\u001b[0m   \"sf2\": {\"type\": \"float\", \"value\": \"inf\"},\n        4 │\u001b[0m   \"sf3\": {\"type\": \"float\", \"value\": \"inf\"},\n        5 │\u001b[0m   \"sf4\": {\"type\": \"float\", \"value\": \"nan\"},\n        6 │\u001b[0m   \"sf5\": {\"type\": \"float\", \"value\": \"nan\"},\n        7 │\u001b[0m   \"sf6\": {\"type\": \"float\", \"value\": \"nan\"}\n        8 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"sf1\": {\"type\": \"float\", \"value\": \"inf\"},\n        3 │\u001b[0m     \"sf2\": {\"type\": \"float\", \"value\": \"inf\"},\n        4 │\u001b[0m     \"sf3\": {\"type\": \"float\", \"value\": \"-inf\"},\n        5 │\u001b[0m     \"sf4\": {\"type\": \"float\", \"value\": \"nan\"},\n        6 │\u001b[0m     \"sf5\": {\"type\": \"float\", \"value\": \"nan\"},\n        7 │\u001b[0m     \"sf6\": {\"type\": \"float\", \"value\": \"nan\"}\n        8 │\u001b[0m }\n\nFAIL valid/spec-1.0.0/keys-1\n     line 1: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748410):\n        1 │\u001b[0m \"127.0.0.1\" = \"value\"\n        2 │\u001b[0m \"character encoding\" = \"value\"\n        3 │\u001b[0m \"ʎǝʞ\" = \"value\"\n        4 │\u001b[0m 'key2' = \"value\"\n        5 │\u001b[0m 'quoted \"value\"' = \"value\"\n\n     output from parser-cmd (PID 748410) (stderr):\n        1 │\u001b[0m line 1: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/keys-3\n     line 4: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748336):\n        1 │\u001b[0m name = \"Orange\"\n        2 │\u001b[0m physical.color = \"orange\"\n        3 │\u001b[0m physical.shape = \"round\"\n        4 │\u001b[0m site.\"google.com\" = true\n\n     output from parser-cmd (PID 748336) (stderr):\n        1 │\u001b[0m line 4: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/string-3\n     Values for key \"str2\" don't match:\n       Expected:     The quick brown fox jumps over the lazy dog.\n       Your encoder: The quick brown\n \n       fox jumps over     the lazy dog.\n\n     input sent to parser-cmd (PID 748467):\n        1 │\u001b[0m # The following strings are byte-for-byte equivalent:\n        2 │\u001b[0m str1 = \"The quick brown fox jumps over the lazy dog.\"\n        3 │\u001b[0m\n        4 │\u001b[0m str2 = \"\"\"\n        5 │\u001b[0m The quick brown \\\n        6 │\u001b[0m\n        7 │\u001b[0m\n        8 │\u001b[0m   fox jumps over \\\n        9 │\u001b[0m     the lazy dog.\"\"\"\n       10 │\u001b[0m\n       11 │\u001b[0m str3 = \"\"\"\\\n       12 │\u001b[0m        The quick brown \\\n       13 │\u001b[0m        fox jumps over \\\n       14 │\u001b[0m        the lazy dog.\\\n       15 │\u001b[0m        \"\"\"\n\n     output from parser-cmd (PID 748467) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"str1\": {\"type\": \"string\", \"value\": \"The quick brown fox jumps over the lazy dog.\"},\n        3 │\u001b[0m   \"str2\": {\"type\": \"string\", \"value\": \"The quick brown \\n\\n  fox jumps over     the lazy dog.\"},\n        4 │\u001b[0m   \"str3\": {\n        5 │\u001b[0m     \"type\":  \"string\",\n        6 │\u001b[0m     \"value\": \"       The quick brown        fox jumps over        the lazy dog.       \"\n        7 │\u001b[0m   }\n        8 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"str1\": {\"type\": \"string\", \"value\": \"The quick brown fox jumps over the lazy dog.\"},\n        3 │\u001b[0m     \"str2\": {\"type\": \"string\", \"value\": \"The quick brown fox jumps over the lazy dog.\"},\n        4 │\u001b[0m     \"str3\": {\"type\": \"string\", \"value\": \"The quick brown fox jumps over the lazy dog.\"}\n        5 │\u001b[0m }\n\nFAIL valid/spec-1.0.0/string-4\n     Values for key \"str5\" don't match:\n       Expected:     Here are three quotation marks: \"\"\".\n       Your encoder: Here are three quotation marks: \"\"\\\".\n\n     input sent to parser-cmd (PID 748466):\n        1 │\u001b[0m str4 = \"\"\"Here are two quotation marks: \"\". Simple enough.\"\"\"\n        2 │\u001b[0m # str5 = \"\"\"Here are three quotation marks: \"\"\".\"\"\"  # INVALID\n        3 │\u001b[0m str5 = \"\"\"Here are three quotation marks: \"\"\\\".\"\"\"\n        4 │\u001b[0m str6 = \"\"\"Here are fifteen quotation marks: \"\"\\\"\"\"\\\"\"\"\\\"\"\"\\\"\"\"\\\".\"\"\"\n        5 │\u001b[0m\n        6 │\u001b[0m # \"This,\" she said, \"is just a pointless statement.\"\n        7 │\u001b[0m str7 = \"\"\"\"This,\" she said, \"is just a pointless statement.\"\"\"\"\n\n     output from parser-cmd (PID 748466) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"str4\": {\"type\": \"string\", \"value\": \"Here are two quotation marks: \\\"\\\". Simple enough.\"},\n        3 │\u001b[0m   \"str5\": {\"type\": \"string\", \"value\": \"Here are three quotation marks: \\\"\\\"\\\\\\\".\"},\n        4 │\u001b[0m   \"str7\": {\"type\": \"string\", \"value\": \"\\\"This,\\\" she said, \\\"is just a pointless statement.\\\"\"},\n        5 │\u001b[0m   \"str6\": {\n        6 │\u001b[0m     \"type\":  \"string\",\n        7 │\u001b[0m     \"value\": \"Here are fifteen quotation marks: \\\"\\\"\\\\\\\"\\\"\\\"\\\\\\\"\\\"\\\"\\\\\\\"\\\"\\\"\\\\\\\"\\\"\\\"\\\\\\\".\"\n        8 │\u001b[0m   }\n        9 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"str4\": {\"type\": \"string\", \"value\": \"Here are two quotation marks: \\\"\\\". Simple enough.\"},\n        3 │\u001b[0m     \"str5\": {\"type\": \"string\", \"value\": \"Here are three quotation marks: \\\"\\\"\\\".\"},\n        4 │\u001b[0m     \"str6\": {\"type\": \"string\", \"value\": \"Here are fifteen quotation marks: \\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\".\"},\n        5 │\u001b[0m     \"str7\": {\"type\": \"string\", \"value\": \"\\\"This,\\\" she said, \\\"is just a pointless statement.\\\"\"}\n        6 │\u001b[0m }\n\nFAIL valid/spec-1.0.0/string-6\n     unterminated value\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748471):\n        1 │\u001b[0m regex2 = '''I [dw]on't need \\d{2} apples'''\n        2 │\u001b[0m lines  = '''\n        3 │\u001b[0m The first newline is\n        4 │\u001b[0m trimmed in raw strings.\n        5 │\u001b[0m    All other whitespace\n        6 │\u001b[0m    is preserved.\n        7 │\u001b[0m '''\n\n     output from parser-cmd (PID 748471) (stderr):\n        1 │\u001b[0m unterminated value\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/spec-1.0.0/table-2\n     line 1: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748505):\n        1 │\u001b[0m [dog.\"tater.man\"]\n        2 │\u001b[0m type.name = \"pug\"\n\n     output from parser-cmd (PID 748505) (stderr):\n        1 │\u001b[0m line 1: invalid string: invalid syntax\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 4: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748640):\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 748640) (stderr):\n        1 │\u001b[0m line 4: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/string/ends-in-whitespace-escape\n     Values for key \"beee\" don't match:\n       Expected:     heeee\n     geeee\n       Your encoder: heeee\n     geeee\\\n\n     input sent to parser-cmd (PID 748578):\n        1 │\u001b[0m beee = \"\"\"\n        2 │\u001b[0m heeee\n        3 │\u001b[0m geeee\\\n        4 │\u001b[0m\n        5 │\u001b[0m\n        6 │\u001b[0m       \"\"\"\n\n     output from parser-cmd (PID 748578) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"beee\": {\"type\": \"string\", \"value\": \"heeee\\ngeeee\\\\  \\n\\n\\n      \"}\n        3 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"beee\": {\"type\": \"string\", \"value\": \"heeee\\ngeeee\"}\n        3 │\u001b[0m }\n\nFAIL valid/string/escape-tricky\n     Values for key \"lit_multiline_not_unicode\" don't match:\n       Expected:     \\u007f\n       Your encoder:\n     \\u007f\n\n     input sent to parser-cmd (PID 748579):\n        1 │\u001b[0m end_esc = \"String does not end here\\\" but ends here\\\\\"\n        2 │\u001b[0m lit_end_esc = 'String ends here\\'\n        3 │\u001b[0m\n        4 │\u001b[0m multiline_unicode = \"\"\"\n        5 │\u001b[0m \\u00a0\"\"\"\n        6 │\u001b[0m\n        7 │\u001b[0m multiline_not_unicode = \"\"\"\n        8 │\u001b[0m \\\\u0041\"\"\"\n        9 │\u001b[0m\n       10 │\u001b[0m multiline_end_esc = \"\"\"When will it end? \\\"\"\"...\"\"\\\" should be here\\\"\"\"\"\n       11 │\u001b[0m\n       12 │\u001b[0m lit_multiline_not_unicode = '''\n       13 │\u001b[0m \\u007f'''\n       14 │\u001b[0m\n       15 │\u001b[0m lit_multiline_end = '''There is no escape\\'''\n\n     output from parser-cmd (PID 748579) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"end_esc\":                   {\"type\": \"string\", \"value\": \"String does not end here\\\" but ends here\\\\\"},\n        3 │\u001b[0m   \"lit_end_esc\":               {\"type\": \"string\", \"value\": \"String ends here\\\\\"},\n        4 │\u001b[0m   \"lit_multiline_end\":         {\"type\": \"string\", \"value\": \"There is no escape\\\\\"},\n        5 │\u001b[0m   \"lit_multiline_not_unicode\": {\"type\": \"string\", \"value\": \"\\n\\\\u007f\"},\n        6 │\u001b[0m   \"multiline_end_esc\":         {\"type\": \"string\", \"value\": \"When will it end? \\\\\\\"\\\"\\\"...\\\"\\\"\\\\\\\" should be here\\\\\\\"\"},\n        7 │\u001b[0m   \"multiline_not_unicode\":     {\"type\": \"string\", \"value\": \"\\\\\\\\u0041\"},\n        8 │\u001b[0m   \"multiline_unicode\":         {\"type\": \"string\", \"value\": \"\\\\u00a0\"}\n        9 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"end_esc\":                   {\"type\": \"string\", \"value\": \"String does not end here\\\" but ends here\\\\\"},\n        3 │\u001b[0m     \"lit_end_esc\":               {\"type\": \"string\", \"value\": \"String ends here\\\\\"},\n        4 │\u001b[0m     \"lit_multiline_end\":         {\"type\": \"string\", \"value\": \"There is no escape\\\\\"},\n        5 │\u001b[0m     \"lit_multiline_not_unicode\": {\"type\": \"string\", \"value\": \"\\\\u007f\"},\n        6 │\u001b[0m     \"multiline_end_esc\":         {\"type\": \"string\", \"value\": \"When will it end? \\\"\\\"\\\"...\\\"\\\"\\\" should be here\\\"\"},\n        7 │\u001b[0m     \"multiline_not_unicode\":     {\"type\": \"string\", \"value\": \"\\\\u0041\"},\n        8 │\u001b[0m     \"multiline_unicode\":         {\"type\": \"string\", \"value\": \" \"}\n        9 │\u001b[0m }\n\nFAIL valid/string/multibyte-escape\n     Values for key \"ml-basic-1\" don't match:\n       Expected:     ɑ € 𐫱 ɑ€𐫱\n       Your encoder: \\u0251 \\u20ac \\U00010AF1 \\u0251\\u20ac\\U00010AF1\n\n     input sent to parser-cmd (PID 748635):\n        1 │\u001b[0m # Test each multibyte length: 2, 3, and 4 bytes:\n        2 │\u001b[0m # ɑ € 𐫱\n        3 │\u001b[0m\n        4 │\u001b[0m basic-1    = \"\\u0251 \\u20ac \\U00010AF1 \\u0251\\u20ac\\U00010AF1\"\n        5 │\u001b[0m ml-basic-1 = \"\"\"\\u0251 \\u20ac \\U00010AF1 \\u0251\\u20ac\\U00010AF1\"\"\"\n        6 │\u001b[0m\n        7 │\u001b[0m # Again, but only using \\U\n        8 │\u001b[0m basic-2    = \"\\U00000251 \\U000020ac \\U00010AF1 \\U00000251\\U000020ac\\U00010AF1\"\n        9 │\u001b[0m ml-basic-2 = \"\"\"\\U00000251 \\U000020ac \\U00010AF1 \\U00000251\\U000020ac\\U00010AF1\"\"\"\n\n     output from parser-cmd (PID 748635) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"basic-1\":    {\"type\": \"string\", \"value\": \"ɑ € 𐫱 ɑ€𐫱\"},\n        3 │\u001b[0m   \"basic-2\":    {\"type\": \"string\", \"value\": \"ɑ € 𐫱 ɑ€𐫱\"},\n        4 │\u001b[0m   \"ml-basic-1\": {\"type\": \"string\", \"value\": \"\\\\u0251 \\\\u20ac \\\\U00010AF1 \\\\u0251\\\\u20ac\\\\U00010AF1\"},\n        5 │\u001b[0m   \"ml-basic-2\": {\n        6 │\u001b[0m     \"type\":  \"string\",\n        7 │\u001b[0m     \"value\": \"\\\\U00000251 \\\\U000020ac \\\\U00010AF1 \\\\U00000251\\\\U000020ac\\\\U00010AF1\"\n        8 │\u001b[0m   }\n        9 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"basic-1\":    {\"type\": \"string\", \"value\": \"ɑ € 𐫱 ɑ€𐫱\"},\n        3 │\u001b[0m     \"ml-basic-1\": {\"type\": \"string\", \"value\": \"ɑ € 𐫱 ɑ€𐫱\"},\n        4 │\u001b[0m     \"basic-2\":    {\"type\": \"string\", \"value\": \"ɑ € 𐫱 ɑ€𐫱\"},\n        5 │\u001b[0m     \"ml-basic-2\": {\"type\": \"string\", \"value\": \"ɑ € 𐫱 ɑ€𐫱\"}\n        6 │\u001b[0m }\n\nFAIL valid/string/multiline\n     Values for key \"equivalent_three\" don't match:\n       Expected:     The quick brown fox jumps over the lazy dog.\n       Your encoder:        The quick brown        fox jumps over        the lazy dog.\n\n     input sent to parser-cmd (PID 748831):\n        1 │\u001b[0m # NOTE: this file includes some literal tab characters.\n        2 │\u001b[0m\n        3 │\u001b[0m equivalent_one = \"The quick brown fox jumps over the lazy dog.\"\n        4 │\u001b[0m equivalent_two = \"\"\"\n        5 │\u001b[0m The quick brown \\\n        6 │\u001b[0m\n        7 │\u001b[0m\n        8 │\u001b[0m   fox jumps over \\\n        9 │\u001b[0m     the lazy dog.\"\"\"\n       10 │\u001b[0m\n       11 │\u001b[0m equivalent_three = \"\"\"\\\n       12 │\u001b[0m        The quick brown \\\n       13 │\u001b[0m        fox jumps over \\\n       14 │\u001b[0m        the lazy dog.\\\n       15 │\u001b[0m        \"\"\"\n       16 │\u001b[0m\n       17 │\u001b[0m whitespace-after-bs = \"\"\"\\\n       18 │\u001b[0m        The quick brown \\\n       19 │\u001b[0m        fox jumps over \\\n       20 │\u001b[0m        the lazy dog.\\\n       21 │\u001b[0m        \"\"\"\n       22 │\u001b[0m\n       23 │\u001b[0m no-space = \"\"\"a\\\n       24 │\u001b[0m     b\"\"\"\n       25 │\u001b[0m\n       26 │\u001b[0m # Has tab character.\n       27 │\u001b[0m keep-ws-before = \"\"\"a   \t\\\n       28 │\u001b[0m    b\"\"\"\n       29 │\u001b[0m\n       30 │\u001b[0m escape-bs-1 = \"\"\"a \\\\\n       31 │\u001b[0m b\"\"\"\n       32 │\u001b[0m\n       33 │\u001b[0m escape-bs-2 = \"\"\"a \\\\\\\n       34 │\u001b[0m b\"\"\"\n       35 │\u001b[0m\n       36 │\u001b[0m escape-bs-3 = \"\"\"a \\\\\\\\\n       37 │\u001b[0m   b\"\"\"\n\n     output from parser-cmd (PID 748831) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"equivalent_one\": {\"type\": \"string\", \"value\": \"The quick brown fox jumps over the lazy dog.\"},\n        3 │\u001b[0m   \"equivalent_two\": {\"type\": \"string\", \"value\": \"The quick brown \\n\\n  fox jumps over     the lazy dog.\"},\n        4 │\u001b[0m   \"escape-bs-1\":    {\"type\": \"string\", \"value\": \"a \\\\b\"},\n        5 │\u001b[0m   \"escape-bs-2\":    {\"type\": \"string\", \"value\": \"a \\\\\\\\b\"},\n        6 │\u001b[0m   \"escape-bs-3\":    {\"type\": \"string\", \"value\": \"a \\\\\\\\\\\\  b\"},\n        7 │\u001b[0m   \"keep-ws-before\": {\"type\": \"string\", \"value\": \"a   \\t   b\"},\n        8 │\u001b[0m   \"no-space\":       {\"type\": \"string\", \"value\": \"a    b\"},\n        9 │\u001b[0m   \"equivalent_three\": {\n       10 │\u001b[0m     \"type\":  \"string\",\n       11 │\u001b[0m     \"value\": \"       The quick brown        fox jumps over        the lazy dog.       \"\n       12 │\u001b[0m   },\n       13 │\u001b[0m   \"whitespace-after-bs\": {\n       14 │\u001b[0m     \"type\":  \"string\",\n       15 │\u001b[0m     \"value\": \"       The quick brown        fox jumps over \\\\   \\n       the lazy dog.\\\\\\t\\n       \"\n       16 │\u001b[0m   }\n       17 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"equivalent_one\":      {\"type\": \"string\", \"value\": \"The quick brown fox jumps over the lazy dog.\"},\n        3 │\u001b[0m     \"equivalent_three\":    {\"type\": \"string\", \"value\": \"The quick brown fox jumps over the lazy dog.\"},\n        4 │\u001b[0m     \"equivalent_two\":      {\"type\": \"string\", \"value\": \"The quick brown fox jumps over the lazy dog.\"},\n        5 │\u001b[0m     \"escape-bs-1\":         {\"type\": \"string\", \"value\": \"a \\\\\\nb\"},\n        6 │\u001b[0m     \"escape-bs-2\":         {\"type\": \"string\", \"value\": \"a \\\\b\"},\n        7 │\u001b[0m     \"escape-bs-3\":         {\"type\": \"string\", \"value\": \"a \\\\\\\\\\n  b\"},\n        8 │\u001b[0m     \"keep-ws-before\":      {\"type\": \"string\", \"value\": \"a   \\tb\"},\n        9 │\u001b[0m     \"no-space\":            {\"type\": \"string\", \"value\": \"ab\"},\n       10 │\u001b[0m     \"whitespace-after-bs\": {\"type\": \"string\", \"value\": \"The quick brown fox jumps over the lazy dog.\"}\n       11 │\u001b[0m }\n\nFAIL valid/string/multiline-empty\n     Values for key \"empty-3\" don't match:\n       Expected:\n       Your encoder:\n\n     input sent to parser-cmd (PID 748610):\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 748610) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"empty-1\": {\"type\": \"string\", \"value\": \"\"},\n        3 │\u001b[0m   \"empty-2\": {\"type\": \"string\", \"value\": \"\"},\n        4 │\u001b[0m   \"empty-3\": {\"type\": \"string\", \"value\": \"    \"},\n        5 │\u001b[0m   \"empty-4\": {\"type\": \"string\", \"value\": \"      \\\\  \\n   \"}\n        6 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"empty-1\": {\"type\": \"string\", \"value\": \"\"},\n        3 │\u001b[0m     \"empty-2\": {\"type\": \"string\", \"value\": \"\"},\n        4 │\u001b[0m     \"empty-3\": {\"type\": \"string\", \"value\": \"\"},\n        5 │\u001b[0m     \"empty-4\": {\"type\": \"string\", \"value\": \"\"}\n        6 │\u001b[0m }\n\nFAIL valid/string/multiline-escaped-crlf\n     Values for key \"0\" don't match:\n       Expected:\n       Your encoder: \\\r\n\n     input sent to parser-cmd (PID 748611):\n        1 │\u001b[0m # The following line should be an unescaped backslash followed by a Windows\r\n        2 │\u001b[0m # newline sequence (\"\\r\\n\")\r\n        3 │\u001b[0m 0=\"\"\"\\\r\n        4 │\u001b[0m \"\"\"\r\n\n     output from parser-cmd (PID 748611) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"0\": {\"type\": \"string\", \"value\": \"\\\\\\r\\n\"}\n        3 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"0\": {\"type\": \"string\", \"value\": \"\"}\n        3 │\u001b[0m }\n\nFAIL valid/string/multiline-quotes\n     unterminated value\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748612):\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 748612) (stderr):\n        1 │\u001b[0m unterminated value\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/string/nl\n     Values for key \"nl_end\" don't match:\n       Expected:     value\n \n       Your encoder: value\\n\n\n     input sent to parser-cmd (PID 748636):\n        1 │\u001b[0m nl_mid = \"val\\nue\"\n        2 │\u001b[0m nl_end = \"\"\"value\\n\"\"\"\n        3 │\u001b[0m\n        4 │\u001b[0m lit_nl_end = '''value\\n'''\n        5 │\u001b[0m lit_nl_mid = 'val\\nue'\n        6 │\u001b[0m lit_nl_uni = 'val\\ue'\n\n     output from parser-cmd (PID 748636) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"lit_nl_end\": {\"type\": \"string\", \"value\": \"value\\\\n\"},\n        3 │\u001b[0m   \"lit_nl_mid\": {\"type\": \"string\", \"value\": \"val\\\\nue\"},\n        4 │\u001b[0m   \"lit_nl_uni\": {\"type\": \"string\", \"value\": \"val\\\\ue\"},\n        5 │\u001b[0m   \"nl_end\":     {\"type\": \"string\", \"value\": \"value\\\\n\"},\n        6 │\u001b[0m   \"nl_mid\":     {\"type\": \"string\", \"value\": \"val\\nue\"}\n        7 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"lit_nl_end\": {\"type\": \"string\", \"value\": \"value\\\\n\"},\n        3 │\u001b[0m     \"lit_nl_mid\": {\"type\": \"string\", \"value\": \"val\\\\nue\"},\n        4 │\u001b[0m     \"lit_nl_uni\": {\"type\": \"string\", \"value\": \"val\\\\ue\"},\n        5 │\u001b[0m     \"nl_end\":     {\"type\": \"string\", \"value\": \"value\\n\"},\n        6 │\u001b[0m     \"nl_mid\":     {\"type\": \"string\", \"value\": \"val\\nue\"}\n        7 │\u001b[0m }\n\nFAIL valid/string/raw-multiline\n     unterminated value\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748641):\n        1 │\u001b[0m # Single ' should be allowed.\n        2 │\u001b[0m oneline = '''This string has a ' quote character.'''\n        3 │\u001b[0m\n        4 │\u001b[0m # A newline immediately following the opening delimiter will be trimmed.\n        5 │\u001b[0m firstnl = '''\n        6 │\u001b[0m This string has a ' quote character.'''\n        7 │\u001b[0m\n        8 │\u001b[0m # All other whitespace and newline characters remain intact.\n        9 │\u001b[0m multiline = '''\n       10 │\u001b[0m This string\n       11 │\u001b[0m has ' a quote character\n       12 │\u001b[0m and more than\n       13 │\u001b[0m one newline\n       14 │\u001b[0m in it.'''\n       15 │\u001b[0m\n       16 │\u001b[0m # Tab character in literal string does not need to be escaped\n       17 │\u001b[0m multiline_with_tab = '''First line\n       18 │\u001b[0m \t Followed by a tab'''\n       19 │\u001b[0m\n       20 │\u001b[0m this-str-has-apostrophes='''' there's one already\n       21 │\u001b[0m '' two more\n       22 │\u001b[0m '''''\n\n     output from parser-cmd (PID 748641) (stderr):\n        1 │\u001b[0m unterminated value\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/string/start-mb\n     Values for key \"s6\" don't match:\n       Expected:     §\n       Your encoder:\n     §\n\n     input sent to parser-cmd (PID 748710):\n        1 │\u001b[0m # Start first line with a multibyte character.\n        2 │\u001b[0m #\n        3 │\u001b[0m # https://github.com/marzer/tomlplusplus/issues/190\n        4 │\u001b[0m s1 = \"§\"\n        5 │\u001b[0m s2 = '§'\n        6 │\u001b[0m s3 = \"\"\"\\\n        7 │\u001b[0m §\"\"\"\n        8 │\u001b[0m s4 = \"\"\"\n        9 │\u001b[0m §\"\"\"\n       10 │\u001b[0m s5 = \"\"\"§\"\"\"\n       11 │\u001b[0m s6 = '''\n       12 │\u001b[0m §'''\n       13 │\u001b[0m s7 = '''§'''\n\n     output from parser-cmd (PID 748710) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"s1\": {\"type\": \"string\", \"value\": \"§\"},\n        3 │\u001b[0m   \"s2\": {\"type\": \"string\", \"value\": \"§\"},\n        4 │\u001b[0m   \"s3\": {\"type\": \"string\", \"value\": \"§\"},\n        5 │\u001b[0m   \"s4\": {\"type\": \"string\", \"value\": \"§\"},\n        6 │\u001b[0m   \"s5\": {\"type\": \"string\", \"value\": \"§\"},\n        7 │\u001b[0m   \"s6\": {\"type\": \"string\", \"value\": \"\\n§\"},\n        8 │\u001b[0m   \"s7\": {\"type\": \"string\", \"value\": \"§\"}\n        9 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"s1\": {\"type\": \"string\", \"value\": \"§\"},\n        3 │\u001b[0m     \"s2\": {\"type\": \"string\", \"value\": \"§\"},\n        4 │\u001b[0m     \"s3\": {\"type\": \"string\", \"value\": \"§\"},\n        5 │\u001b[0m     \"s4\": {\"type\": \"string\", \"value\": \"§\"},\n        6 │\u001b[0m     \"s5\": {\"type\": \"string\", \"value\": \"§\"},\n        7 │\u001b[0m     \"s6\": {\"type\": \"string\", \"value\": \"§\"},\n        8 │\u001b[0m     \"s7\": {\"type\": \"string\", \"value\": \"§\"}\n        9 │\u001b[0m }\n\nFAIL valid/string/unicode-escape\n     Values for key \"ml-a\" don't match:\n       Expected:     a\n       Your encoder: \\u0061\n\n     input sent to parser-cmd (PID 748669):\n        1 │\u001b[0m delta-1 = \"\\u03B4\"\n        2 │\u001b[0m delta-2 = \"\\U000003B4\"\n        3 │\u001b[0m a       = \"\\u0061\"\n        4 │\u001b[0m b       = \"\\u0062\"\n        5 │\u001b[0m c       = \"\\U00000063\"\n        6 │\u001b[0m null-1  = \"\\u0000\"\n        7 │\u001b[0m null-2  = \"\\U00000000\"\n        8 │\u001b[0m\n        9 │\u001b[0m ml-delta-1 = \"\"\"\\u03B4\"\"\"\n       10 │\u001b[0m ml-delta-2 = \"\"\"\\U000003B4\"\"\"\n       11 │\u001b[0m ml-a       = \"\"\"\\u0061\"\"\"\n       12 │\u001b[0m ml-b       = \"\"\"\\u0062\"\"\"\n       13 │\u001b[0m ml-c       = \"\"\"\\U00000063\"\"\"\n       14 │\u001b[0m ml-null-1  = \"\"\"\\u0000\"\"\"\n       15 │\u001b[0m ml-null-2  = \"\"\"\\U00000000\"\"\"\n\n     output from parser-cmd (PID 748669) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\":          {\"type\": \"string\", \"value\": \"a\"},\n        3 │\u001b[0m   \"b\":          {\"type\": \"string\", \"value\": \"b\"},\n        4 │\u001b[0m   \"c\":          {\"type\": \"string\", \"value\": \"c\"},\n        5 │\u001b[0m   \"delta-1\":    {\"type\": \"string\", \"value\": \"δ\"},\n        6 │\u001b[0m   \"delta-2\":    {\"type\": \"string\", \"value\": \"δ\"},\n        7 │\u001b[0m   \"ml-a\":       {\"type\": \"string\", \"value\": \"\\\\u0061\"},\n        8 │\u001b[0m   \"ml-b\":       {\"type\": \"string\", \"value\": \"\\\\u0062\"},\n        9 │\u001b[0m   \"ml-c\":       {\"type\": \"string\", \"value\": \"\\\\U00000063\"},\n       10 │\u001b[0m   \"ml-delta-1\": {\"type\": \"string\", \"value\": \"\\\\u03B4\"},\n       11 │\u001b[0m   \"ml-delta-2\": {\"type\": \"string\", \"value\": \"\\\\U000003B4\"},\n       12 │\u001b[0m   \"ml-null-1\":  {\"type\": \"string\", \"value\": \"\\\\u0000\"},\n       13 │\u001b[0m   \"ml-null-2\":  {\"type\": \"string\", \"value\": \"\\\\U00000000\"},\n       14 │\u001b[0m   \"null-1\":     {\"type\": \"string\", \"value\": \"\\u0000\"},\n       15 │\u001b[0m   \"null-2\":     {\"type\": \"string\", \"value\": \"\\u0000\"}\n       16 │\u001b[0m }\n\n     want:\n        1 │\u001b[0m {\n        2 │\u001b[0m     \"a\":          {\"type\": \"string\", \"value\": \"a\"},\n        3 │\u001b[0m     \"b\":          {\"type\": \"string\", \"value\": \"b\"},\n        4 │\u001b[0m     \"c\":          {\"type\": \"string\", \"value\": \"c\"},\n        5 │\u001b[0m     \"delta-1\":    {\"type\": \"string\", \"value\": \"δ\"},\n        6 │\u001b[0m     \"delta-2\":    {\"type\": \"string\", \"value\": \"δ\"},\n        7 │\u001b[0m     \"ml-a\":       {\"type\": \"string\", \"value\": \"a\"},\n        8 │\u001b[0m     \"ml-b\":       {\"type\": \"string\", \"value\": \"b\"},\n        9 │\u001b[0m     \"ml-c\":       {\"type\": \"string\", \"value\": \"c\"},\n       10 │\u001b[0m     \"ml-delta-1\": {\"type\": \"string\", \"value\": \"δ\"},\n       11 │\u001b[0m     \"ml-delta-2\": {\"type\": \"string\", \"value\": \"δ\"},\n       12 │\u001b[0m     \"ml-null-1\":  {\"type\": \"string\", \"value\": \"\\u0000\"},\n       13 │\u001b[0m     \"ml-null-2\":  {\"type\": \"string\", \"value\": \"\\u0000\"},\n       14 │\u001b[0m     \"null-1\":     {\"type\": \"string\", \"value\": \"\\u0000\"},\n       15 │\u001b[0m     \"null-2\":     {\"type\": \"string\", \"value\": \"\\u0000\"}\n       16 │\u001b[0m }\n\nFAIL valid/table/array-nest\n     line 4: table conflict\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748707):\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 748707) (stderr):\n        1 │\u001b[0m line 4: table conflict\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: table conflict\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748713):\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 748713) (stderr):\n        1 │\u001b[0m line 2: table conflict\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/table/empty-name\n     line 4: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748715):\n        1 │\u001b[0m ['']\n        2 │\u001b[0m x = 1\n        3 │\u001b[0m\n        4 │\u001b[0m [\"\".a]\n        5 │\u001b[0m x = 2\n        6 │\u001b[0m\n        7 │\u001b[0m [a.'']\n        8 │\u001b[0m x = 3\n\n     output from parser-cmd (PID 748715) (stderr):\n        1 │\u001b[0m line 4: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/table/names\n     line 2: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748744):\n        1 │\u001b[0m [a.b.c]\n        2 │\u001b[0m [a.\"b.c\"]\n        3 │\u001b[0m [a.'d.e']\n        4 │\u001b[0m [a.' x ']\n        5 │\u001b[0m [ d.e.f ]\n        6 │\u001b[0m [ g . h . i ]\n        7 │\u001b[0m [ j . \"ʞ\" . 'l' ]\n        8 │\u001b[0m\n        9 │\u001b[0m [x.1.2]\n\n     output from parser-cmd (PID 748744) (stderr):\n        1 │\u001b[0m line 2: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/table/names-with-values\n     line 4: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748743):\n        1 │\u001b[0m [a.b.c]\n        2 │\u001b[0m key = 1\n        3 │\u001b[0m\n        4 │\u001b[0m [a.\"b.c\"]\n        5 │\u001b[0m key = 2\n        6 │\u001b[0m\n        7 │\u001b[0m [a.'d.e']\n        8 │\u001b[0m key = 3\n        9 │\u001b[0m\n       10 │\u001b[0m [a.' x ']\n       11 │\u001b[0m key = 4\n       12 │\u001b[0m\n       13 │\u001b[0m [ d.e.f ]\n       14 │\u001b[0m key = 5\n       15 │\u001b[0m\n       16 │\u001b[0m [ g . h . i ]\n       17 │\u001b[0m key = 6\n       18 │\u001b[0m\n       19 │\u001b[0m [ j . \"ʞ\" . 'l' ]\n       20 │\u001b[0m key = 7\n       21 │\u001b[0m\n       22 │\u001b[0m [x.1.2]\n       23 │\u001b[0m key = 8\n\n     output from parser-cmd (PID 748743) (stderr):\n        1 │\u001b[0m line 4: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/table/whitespace\n     line 1: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748872):\n        1 │\u001b[0m [\"valid key\"]\n\n     output from parser-cmd (PID 748872) (stderr):\n        1 │\u001b[0m line 1: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL valid/table/with-pound\n     line 1: invalid string: invalid syntax\n \n     Exit 1\n\n     input sent to parser-cmd (PID 748760):\n        1 │\u001b[0m [\"key#group\"]\n        2 │\u001b[0m answer = 42\n\n     output from parser-cmd (PID 748760) (stderr):\n        1 │\u001b[0m line 1: invalid string: invalid syntax\n        2 │\u001b[0m\n        3 │\u001b[0m Exit 1\n\n     want:\n          <empty>\n\nFAIL invalid/array/extending-table\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 748799):\n        1 │\u001b[0m a = [{ b = 1 }]\n        2 │\u001b[0m\n        3 │\u001b[0m # Cannot extend tables within static arrays\n        4 │\u001b[0m # https://github.com/toml-lang/toml/issues/908\n        5 │\u001b[0m [a.c]\n        6 │\u001b[0m foo = 1\n\n     output from parser-cmd (PID 748799) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": [{\n        3 │\u001b[0m     \"b\": {\"type\": \"integer\", \"value\": \"1\"},\n        4 │\u001b[0m     \"c\": {\n        5 │\u001b[0m       \"foo\": {\"type\": \"integer\", \"value\": \"1\"}\n        6 │\u001b[0m     }\n        7 │\u001b[0m   }]\n        8 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/array/tables-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749012):\n        1 │\u001b[0m # INVALID TOML DOC\n        2 │\u001b[0m fruit = []\n        3 │\u001b[0m\n        4 │\u001b[0m [[fruit]] # Not allowed\n\n     output from parser-cmd (PID 749012) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"fruit\": [{}]\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/bare-cr\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 748965):\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 748965) (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 748970):\n        1 │\u001b[0m comment-cr   = \"Carriage return in comment\" # \ra=1\n\n     output from parser-cmd (PID 748970) (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 749015):\n        1 │\u001b[0m comment-del  = \"0x7f\"   # \n\n     output from parser-cmd (PID 749015) (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 749017):\n        1 │\u001b[0m comment-ff   = \"0x7f\"   # \f\n\n     output from parser-cmd (PID 749017) (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 748971):\n        1 │\u001b[0m comment-lf   = \"ctrl-P\" # \u0010\n\n     output from parser-cmd (PID 748971) (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 749040):\n        1 │\u001b[0m comment-null = \"null\"   # \u0000\n\n     output from parser-cmd (PID 749040) (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 749054):\n        1 │\u001b[0m comment-us   = \"ctrl-_\" # \u001f\n\n     output from parser-cmd (PID 749054) (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 749057):\n        1 │\u001b[0m multi-del  = \"\"\"null\"\"\"\n\n     output from parser-cmd (PID 749057) (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/multi-lf\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749129):\n        1 │\u001b[0m multi-lf   = \"\"\"null\u0010\"\"\"\n\n     output from parser-cmd (PID 749129) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"multi-lf\": {\"type\": \"string\", \"value\": \"null\\u0010\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/multi-null\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749128):\n        1 │\u001b[0m multi-null = \"\"\"null\u0000\"\"\"\n\n     output from parser-cmd (PID 749128) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"multi-null\": {\"type\": \"string\", \"value\": \"null\\u0000\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/multi-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749090):\n        1 │\u001b[0m multi-us   = \"\"\"null\u001f\"\"\"\n\n     output from parser-cmd (PID 749090) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"multi-us\": {\"type\": \"string\", \"value\": \"null\\u001f\"}\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 749125):\n        1 │\u001b[0m \f\n\n     output from parser-cmd (PID 749125) (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 749058):\n        1 │\u001b[0m \u000b\n\n     output from parser-cmd (PID 749058) (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 749049):\n        1 │\u001b[0m rawmulti-del  = '''null'''\n\n     output from parser-cmd (PID 749049) (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/rawmulti-lf\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749047):\n        1 │\u001b[0m rawmulti-lf   = '''null\u0010'''\n\n     output from parser-cmd (PID 749047) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"rawmulti-lf\": {\"type\": \"string\", \"value\": \"null\\u0010\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/rawmulti-null\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749085):\n        1 │\u001b[0m rawmulti-null = '''null\u0000'''\n\n     output from parser-cmd (PID 749085) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"rawmulti-null\": {\"type\": \"string\", \"value\": \"null\\u0000\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/rawmulti-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749050):\n        1 │\u001b[0m rawmulti-us   = '''null\u001f'''\n\n     output from parser-cmd (PID 749050) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"rawmulti-us\": {\"type\": \"string\", \"value\": \"null\\u001f\"}\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 749086):\n        1 │\u001b[0m rawstring-del  = 'null'\n\n     output from parser-cmd (PID 749086) (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/rawstring-lf\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749087):\n        1 │\u001b[0m rawstring-lf   = 'null\u0010'\n\n     output from parser-cmd (PID 749087) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"rawstring-lf\": {\"type\": \"string\", \"value\": \"null\\u0010\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/rawstring-null\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749089):\n        1 │\u001b[0m rawstring-null = 'null\u0000'\n\n     output from parser-cmd (PID 749089) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"rawstring-null\": {\"type\": \"string\", \"value\": \"null\\u0000\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/rawstring-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749131):\n        1 │\u001b[0m rawstring-us   = 'null\u001f'\n\n     output from parser-cmd (PID 749131) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"rawstring-us\": {\"type\": \"string\", \"value\": \"null\\u001f\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/string-bs\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749127):\n        1 │\u001b[0m string-bs   = \"backspace\b\"\n\n     output from parser-cmd (PID 749127) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"string-bs\": {\"type\": \"string\", \"value\": \"backspace\\b\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/string-cr\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749126):\n        1 │\u001b[0m string-cr   = \"null\r\"\n\n     output from parser-cmd (PID 749126) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"string-cr\": {\"type\": \"string\", \"value\": \"null\\r\"}\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 749132):\n        1 │\u001b[0m string-del  = \"null\"\n\n     output from parser-cmd (PID 749132) (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/control/string-lf\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749177):\n        1 │\u001b[0m string-lf   = \"null\u0010\"\n\n     output from parser-cmd (PID 749177) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"string-lf\": {\"type\": \"string\", \"value\": \"null\\u0010\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/string-null\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749148):\n        1 │\u001b[0m string-null = \"null\u0000\"\n\n     output from parser-cmd (PID 749148) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"string-null\": {\"type\": \"string\", \"value\": \"null\\u0000\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/control/string-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749160):\n        1 │\u001b[0m string-us   = \"null\u001f\"\n\n     output from parser-cmd (PID 749160) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"string-us\": {\"type\": \"string\", \"value\": \"null\\u001f\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/datetime/offset-overflow-minute\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749288):\n        1 │\u001b[0m d = 1985-06-18 17:04:07+12:60\n\n     output from parser-cmd (PID 749288) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"d\": {\"type\": \"datetime\", \"value\": \"1985-06-18 17:04:07+12:60\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/datetime/time-no-leads\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749338):\n        1 │\u001b[0m # Leading 0 is always required.\n        2 │\u001b[0m d = 2023-10-01T1:32:00Z\n\n     output from parser-cmd (PID 749338) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"d\": {\"type\": \"datetime\", \"value\": \"2023-10-01T1:32:00Z\"}\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 749404):\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 749404) (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 749374):\n        1 │\u001b[0m exp-dot-02 = 1.e2\n\n     output from parser-cmd (PID 749374) (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 749589):\n        1 │\u001b[0m exp-dot-03 = 3.e+20\n\n     output from parser-cmd (PID 749589) (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-double-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749419):\n        1 │\u001b[0m exp-double-us = 1e__23\n\n     output from parser-cmd (PID 749419) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"exp-double-us\": {\"type\": \"float\", \"value\": \"1e__23\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/exp-leading-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749420):\n        1 │\u001b[0m exp-leading-us = 1e_23\n\n     output from parser-cmd (PID 749420) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"exp-leading-us\": {\"type\": \"float\", \"value\": \"1e_23\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/exp-trailing-us\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749432):\n        1 │\u001b[0m exp-trailing-us = 1e23_\n\n     output from parser-cmd (PID 749432) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"exp-trailing-us\": {\"type\": \"float\", \"value\": \"1e23_\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/float/exp-trailing-us-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749465):\n        1 │\u001b[0m exp-trailing-us-01 = 1_e2\n\n     output from parser-cmd (PID 749465) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"exp-trailing-us-01\": {\"type\": \"float\", \"value\": \"1_e2\"}\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 749431):\n        1 │\u001b[0m exp-trailing-us-02 = 1.2_e2\n\n     output from parser-cmd (PID 749431) (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 749570):\n        1 │\u001b[0m leading-dot = .12345\n\n     output from parser-cmd (PID 749570) (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 749540):\n        1 │\u001b[0m leading-dot-neg = -.12345\n\n     output from parser-cmd (PID 749540) (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 749543):\n        1 │\u001b[0m leading-dot-plus = +.12345\n\n     output from parser-cmd (PID 749543) (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 749542):\n        1 │\u001b[0m leading-us = _1.2\n\n     output from parser-cmd (PID 749542) (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 749624):\n        1 │\u001b[0m leading-zero = 03.14\n\n     output from parser-cmd (PID 749624) (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 749537):\n        1 │\u001b[0m leading-zero-neg = -03.14\n\n     output from parser-cmd (PID 749537) (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 749614):\n        1 │\u001b[0m leading-zero-plus = +03.14\n\n     output from parser-cmd (PID 749614) (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 749586):\n        1 │\u001b[0m trailing-dot = 1.\n\n     output from parser-cmd (PID 749586) (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 749521):\n        1 │\u001b[0m trailing-point = 1.\n\n     output from parser-cmd (PID 749521) (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 749539):\n        1 │\u001b[0m a = 1.\n        2 │\u001b[0m b = 2\n\n     output from parser-cmd (PID 749539) (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 749572):\n        1 │\u001b[0m trailing-dot-min = -1.\n\n     output from parser-cmd (PID 749572) (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 749571):\n        1 │\u001b[0m trailing-dot-plus = +1.\n\n     output from parser-cmd (PID 749571) (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 749623):\n        1 │\u001b[0m trailing-us = 1.2_\n\n     output from parser-cmd (PID 749623) (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-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749602):\n        1 │\u001b[0m trailing-us-exp-1 = 1_e2\n\n     output from parser-cmd (PID 749602) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"trailing-us-exp-1\": {\"type\": \"float\", \"value\": \"1_e2\"}\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 749621):\n        1 │\u001b[0m trailing-us-exp-2 = 1.2_e2\n\n     output from parser-cmd (PID 749621) (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 749628):\n        1 │\u001b[0m us-after-dot = 1._2\n\n     output from parser-cmd (PID 749628) (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 749627):\n        1 │\u001b[0m us-before-dot = 1_.2\n\n     output from parser-cmd (PID 749627) (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/duplicate-key-03\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749707):\n        1 │\u001b[0m tbl = { fruit = { apple.color = \"red\" }, fruit.apple.texture = { smooth = true } }\n\n     output from parser-cmd (PID 749707) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"tbl\": {\n        3 │\u001b[0m     \"fruit\": {\n        4 │\u001b[0m       \"apple\": {\n        5 │\u001b[0m         \"color\": {\"type\": \"string\", \"value\": \"red\"},\n        6 │\u001b[0m         \"texture\": {\n        7 │\u001b[0m           \"smooth\": {\"type\": \"bool\", \"value\": \"true\"}\n        8 │\u001b[0m         }\n        9 │\u001b[0m       }\n       10 │\u001b[0m     }\n       11 │\u001b[0m   }\n       12 │\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 749777):\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 749777) (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 749663):\n        1 │\u001b[0m t = {a=1,\n        2 │\u001b[0m b=2}\n\n     output from parser-cmd (PID 749663) (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 749664):\n        1 │\u001b[0m t = {a=1\n        2 │\u001b[0m ,b=2}\n\n     output from parser-cmd (PID 749664) (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 749747):\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 749747) (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 749690):\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 749690) (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/inline-table/overwrite-04\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749703):\n        1 │\u001b[0m inline-t = { nest = {} }\n        2 │\u001b[0m\n        3 │\u001b[0m [[inline-t.nest]]\n\n     output from parser-cmd (PID 749703) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"inline-t\": {\"nest\": [{}]}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/inline-table/overwrite-05\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749710):\n        1 │\u001b[0m inline-t = { nest = {} }\n        2 │\u001b[0m\n        3 │\u001b[0m [inline-t.nest]\n\n     output from parser-cmd (PID 749710) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"inline-t\": {\n        3 │\u001b[0m     \"nest\": {}\n        4 │\u001b[0m   }\n        5 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/inline-table/overwrite-08\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749731):\n        1 │\u001b[0m tab = { inner = { dog = \"best\" }, inner.cat = \"worst\" }\n\n     output from parser-cmd (PID 749731) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"tab\": {\n        3 │\u001b[0m     \"inner\": {\n        4 │\u001b[0m       \"cat\": {\"type\": \"string\", \"value\": \"worst\"},\n        5 │\u001b[0m       \"dog\": {\"type\": \"string\", \"value\": \"best\"}\n        6 │\u001b[0m     }\n        7 │\u001b[0m   }\n        8 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/inline-table/trailing-comma\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749784):\n        1 │\u001b[0m # A terminating comma (also called trailing comma) is not permitted after the\n        2 │\u001b[0m # last key/value pair in an inline table\n        3 │\u001b[0m abc = { abc = 123, }\n\n     output from parser-cmd (PID 749784) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"abc\": {\n        3 │\u001b[0m     \"abc\": {\"type\": \"integer\", \"value\": \"123\"}\n        4 │\u001b[0m   }\n        5 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/capital-bin\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749896):\n        1 │\u001b[0m capital-bin = 0B0\n\n     output from parser-cmd (PID 749896) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"capital-bin\": {\"type\": \"integer\", \"value\": \"0\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/capital-hex\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749834):\n        1 │\u001b[0m capital-hex = 0X1\n\n     output from parser-cmd (PID 749834) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"capital-hex\": {\"type\": \"integer\", \"value\": \"0\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/capital-oct\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749895):\n        1 │\u001b[0m capital-oct = 0O0\n\n     output from parser-cmd (PID 749895) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"capital-oct\": {\"type\": \"integer\", \"value\": \"0\"}\n        3 │\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 749761):\n        1 │\u001b[0m double-us = 1__23\n\n     output from parser-cmd (PID 749761) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"double-us\": {\"type\": \"integer\", \"value\": \"123\"}\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 749833):\n        1 │\u001b[0m leading-us = _123\n\n     output from parser-cmd (PID 749833) (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-us-bin\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749830):\n        1 │\u001b[0m leading-us-bin = _0b1\n\n     output from parser-cmd (PID 749830) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-us-bin\": {\"type\": \"integer\", \"value\": \"1\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/leading-us-hex\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749832):\n        1 │\u001b[0m leading-us-hex = _0x1\n\n     output from parser-cmd (PID 749832) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-us-hex\": {\"type\": \"integer\", \"value\": \"1\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/leading-us-oct\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749835):\n        1 │\u001b[0m leading-us-oct = _0o1\n\n     output from parser-cmd (PID 749835) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-us-oct\": {\"type\": \"integer\", \"value\": \"1\"}\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 749846):\n        1 │\u001b[0m leading-zero-01 = 01\n\n     output from parser-cmd (PID 749846) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-01\": {\"type\": \"integer\", \"value\": \"1\"}\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 749860):\n        1 │\u001b[0m leading-zero-02 = 00\n\n     output from parser-cmd (PID 749860) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-02\": {\"type\": \"integer\", \"value\": \"0\"}\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 749861):\n        1 │\u001b[0m leading-zero-03 = 0_0\n\n     output from parser-cmd (PID 749861) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-03\": {\"type\": \"integer\", \"value\": \"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 749862):\n        1 │\u001b[0m leading-zero-sign-01 = -01\n\n     output from parser-cmd (PID 749862) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-sign-01\": {\"type\": \"integer\", \"value\": \"-1\"}\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 749867):\n        1 │\u001b[0m leading-zero-sign-02 = +01\n\n     output from parser-cmd (PID 749867) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-sign-02\": {\"type\": \"integer\", \"value\": \"1\"}\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 749911):\n        1 │\u001b[0m leading-zero-sign-03 = +0_1\n\n     output from parser-cmd (PID 749911) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"leading-zero-sign-03\": {\"type\": \"integer\", \"value\": \"1\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/negative-bin\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749892):\n        1 │\u001b[0m negative-bin = -0b11010110\n\n     output from parser-cmd (PID 749892) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"negative-bin\": {\"type\": \"integer\", \"value\": \"-214\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/negative-hex\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749893):\n        1 │\u001b[0m negative-hex = -0xff\n\n     output from parser-cmd (PID 749893) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"negative-hex\": {\"type\": \"integer\", \"value\": \"-255\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/negative-oct\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749897):\n        1 │\u001b[0m negative-oct = -0o755\n\n     output from parser-cmd (PID 749897) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"negative-oct\": {\"type\": \"integer\", \"value\": \"-493\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/positive-bin\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749898):\n        1 │\u001b[0m positive-bin = +0b11010110\n\n     output from parser-cmd (PID 749898) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"positive-bin\": {\"type\": \"integer\", \"value\": \"214\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/positive-hex\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749899):\n        1 │\u001b[0m positive-hex = +0xff\n\n     output from parser-cmd (PID 749899) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"positive-hex\": {\"type\": \"integer\", \"value\": \"255\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/positive-oct\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749929):\n        1 │\u001b[0m positive-oct = +0o755\n\n     output from parser-cmd (PID 749929) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"positive-oct\": {\"type\": \"integer\", \"value\": \"493\"}\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 749935):\n        1 │\u001b[0m trailing-us = 123_\n\n     output from parser-cmd (PID 749935) (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/integer/trailing-us-bin\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749932):\n        1 │\u001b[0m trailing-us-bin = 0b1_\n\n     output from parser-cmd (PID 749932) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"trailing-us-bin\": {\"type\": \"integer\", \"value\": \"1\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/trailing-us-hex\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749931):\n        1 │\u001b[0m trailing-us-hex = 0x1_\n\n     output from parser-cmd (PID 749931) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"trailing-us-hex\": {\"type\": \"integer\", \"value\": \"1\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/trailing-us-oct\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749933):\n        1 │\u001b[0m trailing-us-oct = 0o1_\n\n     output from parser-cmd (PID 749933) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"trailing-us-oct\": {\"type\": \"integer\", \"value\": \"1\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/us-after-bin\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749934):\n        1 │\u001b[0m us-after-bin = 0b_1\n\n     output from parser-cmd (PID 749934) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"us-after-bin\": {\"type\": \"integer\", \"value\": \"1\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/us-after-hex\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 749936):\n        1 │\u001b[0m us-after-hex = 0x_1\n\n     output from parser-cmd (PID 749936) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"us-after-hex\": {\"type\": \"integer\", \"value\": \"1\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/integer/us-after-oct\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750008):\n        1 │\u001b[0m us-after-oct = 0o_1\n\n     output from parser-cmd (PID 750008) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"us-after-oct\": {\"type\": \"integer\", \"value\": \"1\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/local-datetime/time-no-leads\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750377):\n        1 │\u001b[0m # Leading 0 is always required.\n        2 │\u001b[0m d = 2023-10-01T1:32:00Z\n\n     output from parser-cmd (PID 750377) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"d\": {\"type\": \"datetime\", \"value\": \"2023-10-01T1:32:00Z\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/local-time/time-no-leads-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750408):\n        1 │\u001b[0m # Leading 0 is always required.\n        2 │\u001b[0m d = 1:32:00\n\n     output from parser-cmd (PID 750408) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"d\": {\"type\": \"time-local\", \"value\": \"1:32:00\"}\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 750474):\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 750474) (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/spec-1.0.0/string-4-0\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750447):\n        1 │\u001b[0m str4 = \"\"\"Here are two quotation marks: \"\". Simple enough.\"\"\"\n        2 │\u001b[0m str5 = \"\"\"Here are three quotation marks: \"\"\".\"\"\"  # INVALID\n        3 │\u001b[0m str5 = \"\"\"Here are three quotation marks: \"\"\\\".\"\"\"\n        4 │\u001b[0m str6 = \"\"\"Here are fifteen quotation marks: \"\"\\\"\"\"\\\"\"\"\\\"\"\"\\\"\"\"\\\".\"\"\"\n        5 │\u001b[0m\n        6 │\u001b[0m # \"This,\" she said, \"is just a pointless statement.\"\n        7 │\u001b[0m str7 = \"\"\"\"This,\" she said, \"is just a pointless statement.\"\"\"\"\n\n     output from parser-cmd (PID 750447) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"str4\": {\"type\": \"string\", \"value\": \"Here are two quotation marks: \\\"\\\". Simple enough.\"},\n        3 │\u001b[0m   \"str7\": {\"type\": \"string\", \"value\": \"\\\"This,\\\" she said, \\\"is just a pointless statement.\\\"\"},\n        4 │\u001b[0m   \"str5\": {\n        5 │\u001b[0m     \"type\":  \"string\",\n        6 │\u001b[0m     \"value\": \"Here are three quotation marks: \\\"\\\"\\\".\\\"\\\"\\\"  # INVALID\\nstr5 = \\\"\\\"\\\"Here are three quotation marks: \\\"\\\"\\\\\\\".\"\n        7 │\u001b[0m   },\n        8 │\u001b[0m   \"str6\": {\n        9 │\u001b[0m     \"type\":  \"string\",\n       10 │\u001b[0m     \"value\": \"Here are fifteen quotation marks: \\\"\\\"\\\\\\\"\\\"\\\"\\\\\\\"\\\"\\\"\\\\\\\"\\\"\\\"\\\\\\\"\\\"\\\"\\\\\\\".\"\n       11 │\u001b[0m   }\n       12 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/spec-1.0.0/table-9-0\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750750):\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 750750) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"fruit\": {\n        3 │\u001b[0m     \"apple\": {\n        4 │\u001b[0m       \"color\": {\"type\": \"string\", \"value\": \"red\"},\n        5 │\u001b[0m       \"taste\": {\n        6 │\u001b[0m         \"sweet\": {\"type\": \"bool\", \"value\": \"true\"}\n        7 │\u001b[0m       },\n        8 │\u001b[0m       \"texture\": {\n        9 │\u001b[0m         \"smooth\": {\"type\": \"bool\", \"value\": \"true\"}\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/spec-1.0.0/table-9-1\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750507):\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 750507) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"fruit\": {\n        3 │\u001b[0m     \"apple\": {\n        4 │\u001b[0m       \"color\": {\"type\": \"string\", \"value\": \"red\"},\n        5 │\u001b[0m       \"taste\": {\n        6 │\u001b[0m         \"sweet\": {\"type\": \"bool\", \"value\": \"true\"}\n        7 │\u001b[0m       },\n        8 │\u001b[0m       \"texture\": {\n        9 │\u001b[0m         \"smooth\": {\"type\": \"bool\", \"value\": \"true\"}\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/string/bad-escape-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750510):\n        1 │\u001b[0m invalid-escape = \"This string has a bad \\a escape character.\"\n\n     output from parser-cmd (PID 750510) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"invalid-escape\": {\"type\": \"string\", \"value\": \"This string has a bad \\u0007 escape character.\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/bad-uni-esc-ml-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750592):\n        1 │\u001b[0m bad-uni-esc-ml-01 = \"\"\"val\\ue\"\"\"\n\n     output from parser-cmd (PID 750592) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"bad-uni-esc-ml-01\": {\"type\": \"string\", \"value\": \"val\\\\ue\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/bad-uni-esc-ml-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750751):\n        1 │\u001b[0m bad-uni-esc-ml-02 = \"\"\"val\\Ux\"\"\"\n\n     output from parser-cmd (PID 750751) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"bad-uni-esc-ml-02\": {\"type\": \"string\", \"value\": \"val\\\\Ux\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/bad-uni-esc-ml-03\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750596):\n        1 │\u001b[0m bad-uni-esc-ml-03 = \"\"\"val\\U0000000\"\"\"\n\n     output from parser-cmd (PID 750596) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"bad-uni-esc-ml-03\": {\"type\": \"string\", \"value\": \"val\\\\U0000000\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/bad-uni-esc-ml-04\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750623):\n        1 │\u001b[0m bad-uni-esc-ml-04 = \"\"\"val\\U0000\"\"\"\n\n     output from parser-cmd (PID 750623) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"bad-uni-esc-ml-04\": {\"type\": \"string\", \"value\": \"val\\\\U0000\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/bad-uni-esc-ml-05\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750627):\n        1 │\u001b[0m bad-uni-esc-ml-05 = \"\"\"val\\Ugggggggg\"\"\"\n\n     output from parser-cmd (PID 750627) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"bad-uni-esc-ml-05\": {\"type\": \"string\", \"value\": \"val\\\\Ugggggggg\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/bad-uni-esc-ml-06\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750605):\n        1 │\u001b[0m bad-uni-esc-ml-06 = \"\"\"This string contains a non scalar unicode codepoint \\uD801\"\"\"\n\n     output from parser-cmd (PID 750605) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"bad-uni-esc-ml-06\": {\"type\": \"string\", \"value\": \"This string contains a non scalar unicode codepoint \\\\uD801\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/bad-uni-esc-ml-07\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750598):\n        1 │\u001b[0m bad-uni-esc-ml-07 = \"\"\"\\uabag\"\"\"\n\n     output from parser-cmd (PID 750598) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"bad-uni-esc-ml-07\": {\"type\": \"string\", \"value\": \"\\\\uabag\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/basic-byte-escapes\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750601):\n        1 │\u001b[0m answer = \"\\x33\"\n\n     output from parser-cmd (PID 750601) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"answer\": {\"type\": \"string\", \"value\": \"3\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/basic-multiline-out-of-range-unicode-escape-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750632):\n        1 │\u001b[0m a = \"\"\"\\UFFFFFFFF\"\"\"\n\n     output from parser-cmd (PID 750632) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": {\"type\": \"string\", \"value\": \"\\\\UFFFFFFFF\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/basic-multiline-out-of-range-unicode-escape-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750633):\n        1 │\u001b[0m a = \"\"\"\\U00D80000\"\"\"\n\n     output from parser-cmd (PID 750633) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": {\"type\": \"string\", \"value\": \"\\\\U00D80000\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/basic-multiline-unknown-escape\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750637):\n        1 │\u001b[0m a = \"\"\"\\@\"\"\"\n\n     output from parser-cmd (PID 750637) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": {\"type\": \"string\", \"value\": \"\\\\@\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/multiline-bad-escape-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750682):\n        1 │\u001b[0m k = \"\"\"t\\a\"\"\"\n\n     output from parser-cmd (PID 750682) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"k\": {\"type\": \"string\", \"value\": \"t\\\\a\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/multiline-bad-escape-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750684):\n        1 │\u001b[0m # \\<Space> is not a valid escape.\n        2 │\u001b[0m k = \"\"\"t\\ t\"\"\"\n\n     output from parser-cmd (PID 750684) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"k\": {\"type\": \"string\", \"value\": \"t\\\\ t\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/multiline-bad-escape-03\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750686):\n        1 │\u001b[0m # \\<Space> is not a valid escape.\n        2 │\u001b[0m k = \"\"\"t\\ \"\"\"\n\n     output from parser-cmd (PID 750686) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"k\": {\"type\": \"string\", \"value\": \"t\\\\ \"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/multiline-escape-space-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750690):\n        1 │\u001b[0m a = \"\"\"\n        2 │\u001b[0m   foo \\ \\n\n        3 │\u001b[0m   bar\"\"\"\n\n     output from parser-cmd (PID 750690) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"a\": {\"type\": \"string\", \"value\": \"  foo \\\\ \\\\n\\n  bar\"}\n        3 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/string/multiline-escape-space-02\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750928):\n        1 │\u001b[0m bee = \"\"\"\n        2 │\u001b[0m hee \\\n        3 │\u001b[0m\n        4 │\u001b[0m gee \\   \"\"\"\n\n     output from parser-cmd (PID 750928) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"bee\": {\"type\": \"string\", \"value\": \"hee \\ngee \\\\   \"}\n        3 │\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 750885):\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 750885) (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 750886):\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 750886) (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-08\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 751047):\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 751047) (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 750913):\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 750913) (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-03\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750986):\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 750986) (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-04\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750993):\n        1 │\u001b[0m [fruit]\n        2 │\u001b[0m apple.color = \"red\"\n        3 │\u001b[0m\n        4 │\u001b[0m [fruit.apple] # INVALID\n\n     output from parser-cmd (PID 750993) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"fruit\": {\n        3 │\u001b[0m     \"apple\": {\n        4 │\u001b[0m       \"color\": {\"type\": \"string\", \"value\": \"red\"}\n        5 │\u001b[0m     }\n        6 │\u001b[0m   }\n        7 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/duplicate-key-05\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750992):\n        1 │\u001b[0m [fruit]\n        2 │\u001b[0m apple.taste.sweet = true\n        3 │\u001b[0m\n        4 │\u001b[0m [fruit.apple.taste] # INVALID\n\n     output from parser-cmd (PID 750992) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"fruit\": {\n        3 │\u001b[0m     \"apple\": {\n        4 │\u001b[0m       \"taste\": {\n        5 │\u001b[0m         \"sweet\": {\"type\": \"bool\", \"value\": \"true\"}\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/duplicate-key-06\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 750990):\n        1 │\u001b[0m [tbl]\n        2 │\u001b[0m [[tbl]]\n\n     output from parser-cmd (PID 750990) (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/newline-01\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 751041):\n        1 │\u001b[0m [tbl\n        2 │\u001b[0m ]\n        3 │\u001b[0m k = 1\n\n     output from parser-cmd (PID 751041) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"tbl\": {\n        3 │\u001b[0m     \"k\": {\"type\": \"integer\", \"value\": \"1\"}\n        4 │\u001b[0m   }\n        5 │\u001b[0m }\n\n     want:\n       Exit code 1\n\nFAIL invalid/table/newline-05\n     Expected an error, but no error was reported.\n\n     input sent to parser-cmd (PID 751049):\n        1 │\u001b[0m [tbl\n        2 │\u001b[0m .sub]\n        3 │\u001b[0m k = 1\n\n     output from parser-cmd (PID 751049) (stdout):\n        1 │\u001b[0m {\n        2 │\u001b[0m   \"tbl\": {\n        3 │\u001b[0m     \"sub\": {\n        4 │\u001b[0m       \"k\": {\"type\": \"integer\", \"value\": \"1\"}\n        5 │\u001b[0m     }\n        6 │\u001b[0m   }\n        7 │\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 751175):\n        1 │\u001b[0m a=true\n        2 │\u001b[0m [[a]]\n\n     output from parser-cmd (PID 751175) (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 751125):\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 751125) (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 751128):\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 751128) (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\ntoml-test v2.2.0 [/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/toml-decoder] [no encoder]\n  valid tests: 158 passed, 47 failed\nencoder tests: no encoder command given\ninvalid tests: 345 passed, 129 failed\n","exit_code":1,"status":"failed"}}
{"type":"item.completed","item":{"id":"item_9","type":"agent_message","text":"The full `toml-test` v2.2.0 run executes, but the repository’s pre-existing parser is far from conformance-complete (158 valid passed/47 failed; 345 invalid passed/129 failed). Those failures are unrelated parser features beyond this block; the three invalid-process acceptance checks themselves pass. I’m doing the final targeted/race checks and diff review now."}}
{"type":"item.started","item":{"id":"item_10","type":"command_execution","command":"/bin/bash -lc 'go test -race ./... && test -z \"$(gofmt -l .)\" && git diff --check && git status --short && git diff -- cmd/toml-decoder/main_test.go'","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_10","type":"command_execution","command":"/bin/bash -lc 'go test -race ./... && test -z \"$(gofmt -l .)\" && git diff --check && git status --short && git diff -- cmd/toml-decoder/main_test.go'","aggregated_output":"ok  \tgithub.com/owner/toml-decoder/cmd/toml-decoder\t1.741s\nok  \tgithub.com/owner/toml-decoder/internal/toml\t1.012s\n","exit_code":0,"status":"completed"}}
{"type":"item.started","item":{"id":"item_11","type":"command_execution","command":"/bin/bash -lc 'tail -n 40 cmd/toml-decoder/main_test.go && git status --short --untracked-files=all && git ls-files -v cmd/toml-decoder/main_test.go && git check-ignore -v cmd/toml-decoder/main_test.go || true'","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_11","type":"command_execution","command":"/bin/bash -lc 'tail -n 40 cmd/toml-decoder/main_test.go && git status --short --untracked-files=all && git ls-files -v cmd/toml-decoder/main_test.go && git check-ignore -v cmd/toml-decoder/main_test.go || true'","aggregated_output":".gitignore:46:uat/*/runs/\tcmd/toml-decoder/main_test.go\n","exit_code":0,"status":"completed"}}
{"type":"item.completed","item":{"id":"item_12","type":"agent_message","text":"RESULT: FAILED\n\nFILES CHANGED:\n- cmd/toml-decoder/main_test.go\n\nSUMMARY:\nAdded process-level coverage proving malformed TOML exits non-zero, writes stderr diagnostics, and emits no stdout. Targeted tests, race tests, vet, formatting, and direct acceptance checks pass.\n\nBLOCKERS:\n- Full toml-test v2.2.0 suite fails: 47 valid and 129 invalid cases failed.\n\nFAILURE_SUMMARY: Full conformance suite remains incomplete.\nFAILURE_DETAIL: Existing parser behavior fails unrelated TOML syntax and semantic cases; broader parser implementation is required before the full-suite gate can pass."}}
{"type":"turn.completed","usage":{"input_tokens":379189,"cached_input_tokens":333312,"cache_write_input_tokens":0,"output_tokens":3278,"reasoning_output_tokens":1353}}