{"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}}
Run artifact