{"type":"thread.started","thread_id":"019ffeae-676d-77b2-894b-1bb94136a73f"}
{"type":"turn.started"}
{"type":"item.completed","item":{"id":"item_0","type":"agent_message","text":"I’m inspecting the existing build tree and verifying the Go toolchain floor before implementing the decoder boundary. I’ll preserve the staged `sources/` assets and keep changes scoped to this build directory."}}
{"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; printf '\\\\nGit status:\\\\n'; git status --short\"","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; printf '\\\\nGit status:\\\\n'; git status --short\"","aggregated_output":"go version go1.24.6 linux/amd64\ncmd/toml-decoder/main.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\nGit status:\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; sed -n '1,280p' internal/toml/decode.go; sed -n '1,220p' internal/toml/value.go; sed -n '1,260p' internal/toml/value_test.go; cat go.mod; sed -n '1,200p' sources/full_test.sh; sed -n '1,240p' sources/run_conformance.sh\"","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; sed -n '1,280p' internal/toml/decode.go; sed -n '1,220p' internal/toml/value.go; sed -n '1,260p' internal/toml/value_test.go; cat go.mod; sed -n '1,200p' sources/full_test.sh; sed -n '1,240p' sources/run_conformance.sh\"","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\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}\npackage toml\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Decode parses a TOML document and returns its internal value model.\n// The empty document is a valid empty table; scalar parsing is intentionally\n// kept behind this boundary so lexical and structural rules can evolve there.\nfunc Decode(document string) (Object, error) {\n\tresult := Object{}\n\tif strings.TrimSpace(document) == \"\" {\n\t\treturn result, nil\n\t}\n\tfor lineNumber, line := range strings.Split(document, \"\\n\") {\n\t\tline = strings.TrimSpace(strings.SplitN(line, \"#\", 2)[0])\n\t\tif line == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(line, \"[\") {\n\t\t\treturn nil, fmt.Errorf(\"line %d: table declarations are not implemented\", lineNumber+1)\n\t\t}\n\t\tparts := strings.SplitN(line, \"=\", 2)\n\t\tif len(parts) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"line %d: expected key/value pair\", lineNumber+1)\n\t\t}\n\t\tkey := strings.TrimSpace(parts[0])\n\t\tif key == \"\" || strings.ContainsAny(key, \" \\t\") {\n\t\t\treturn nil, fmt.Errorf(\"line %d: invalid key\", lineNumber+1)\n\t\t}\n\t\tif _, exists := result[key]; exists {\n\t\t\treturn nil, fmt.Errorf(\"line %d: duplicate key %q\", lineNumber+1, key)\n\t\t}\n\t\tvalue, err := scalar(strings.TrimSpace(parts[1]))\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"line %d: %w\", lineNumber+1, err)\n\t\t}\n\t\tresult[key] = value\n\t}\n\treturn result, nil\n}\n\nfunc scalar(text string) (Value, error) {\n\tif len(text) >= 2 && ((text[0] == '\"' && text[len(text)-1] == '\"') || (text[0] == '\\'' && text[len(text)-1] == '\\'')) {\n\t\treturn Value{Kind: String, Lexeme: text[1 : len(text)-1]}, nil\n\t}\n\tif text == \"true\" || text == \"false\" {\n\t\treturn Value{Kind: Bool, Lexeme: text}, nil\n\t}\n\tif _, err := strconv.ParseInt(text, 10, 64); err == nil {\n\t\treturn Value{Kind: Integer, Lexeme: text}, nil\n\t}\n\treturn Value{}, fmt.Errorf(\"unsupported scalar %q\", text)\n}\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}\npackage toml\n\nimport (\n\t\"encoding/json\"\n\t\"reflect\"\n\t\"testing\"\n)\n\nfunc TestDecodeEmptyDocumentIsEmptyObject(t *testing.T) {\n\tgot, err := Decode(\"\\n# comment\\n\")\n\tif err != nil {\n\t\tt.Fatalf(\"Decode returned error: %v\", err)\n\t}\n\tif !reflect.DeepEqual(got, Object{}) {\n\t\tt.Fatalf(\"Decode returned %#v, want empty object\", got)\n\t}\n}\n\nfunc TestTaggedPreservesScalarLexemes(t *testing.T) {\n\tgot, err := Tagged(Object{\"n\": Value{Kind: Integer, Lexeme: \"9223372036854775807\"}})\n\tif err != nil {\n\t\tt.Fatalf(\"Tagged returned error: %v\", err)\n\t}\n\twant := map[string]any{\"n\": map[string]any{\"type\": \"integer\", \"value\": \"9223372036854775807\"}}\n\tdata, err := json.Marshal(got)\n\tif err != nil {\n\t\tt.Fatalf(\"Marshal returned error: %v\", err)\n\t}\n\tvar decoded map[string]any\n\tif err := json.Unmarshal(data, &decoded); err != nil {\n\t\tt.Fatalf(\"Unmarshal returned error: %v\", err)\n\t}\n\tif !reflect.DeepEqual(decoded, want) {\n\t\tt.Fatalf(\"JSON = %#v, want %#v\", decoded, want)\n\t}\n}\n\nfunc TestDecodeRejectsDuplicateKeys(t *testing.T) {\n\tif _, err := Decode(\"a = 1\\na = 2\"); err == nil {\n\t\tt.Fatal(\"Decode accepted duplicate key\")\n\t}\n}\nmodule github.com/owner/toml-decoder\n\ngo 1.24\n#!/bin/sh\n# full_test.sh — scoring entry point. Do not filter, skip, or reinterpret.\nset -eu\n# The version setup_harness.sh installs. run_conformance.sh refuses a different one, so a\n# passing verdict names a specific exam rather than whichever harness was on PATH.\nTOML_TEST_VERSION=\"${TOML_TEST_VERSION:-v2.2.0}\"\nexport TOML_TEST_VERSION\ngo build -o toml-decoder ./cmd/toml-decoder\nDECODER=\"$PWD/toml-decoder\" exec sh sources/run_conformance.sh\n#!/bin/sh\n# Run the upstream toml-test conformance suite against the built decoder.\n#\n# Imported sources land in sources/ inside the application directory, so this is\n# normally invoked as `sh sources/run_conformance.sh` from that directory.\n#\n# Usage:\n# DECODER=./toml-decoder sh sources/run_conformance.sh # full suite\n# DECODER=./toml-decoder sh sources/run_conformance.sh -run 'valid/string/*' # one group\n# DECODER=./toml-decoder sh sources/run_conformance.sh -json # machine-readable\n#\n# Environment:\n# DECODER decoder command. Required — this harness is language-neutral and\n# deliberately has no default implementation language.\n# TOML_TEST absolute path to the toml-test binary (default: found on PATH)\n#\n# Exit code is the harness exit code: 0 only when every test passes.\n\nset -u\n\nif [ -z \"${DECODER:-}\" ]; then\n echo \"error: DECODER is not set; give the command that runs your decoder.\" >&2\n exit 2\nfi\n\nif [ -n \"${TOML_TEST:-}\" ] && [ -x \"${TOML_TEST}\" ]; then\n HARNESS=\"${TOML_TEST}\"\nelif command -v toml-test >/dev/null 2>&1; then\n HARNESS=\"$(command -v toml-test)\"\nelse\n cat >&2 <<'EOF'\nerror: toml-test not found.\n\nInstall the harness once:\n\n sh sources/setup_harness.sh\n\nor set TOML_TEST to an existing binary:\n\n TOML_TEST=/path/to/toml-test sh sources/run_conformance.sh\nEOF\n exit 127\nfi\n\n# The suite's identity is part of the verdict. Without this, \"the authoritative suite passed\"\n# names no particular suite: whichever toml-test happened to be on PATH decided the run, and a\n# different version on a different machine is a different exam. Recorded always, and enforced\n# when the caller states which version it expects.\nHARNESS_VERSION=\"$(\"${HARNESS}\" version 2>/dev/null | head -n 1 || true)\"\necho \"harness: ${HARNESS} ${HARNESS_VERSION:-(version unknown)}\" >&2\nif [ -n \"${TOML_TEST_VERSION:-}\" ] && [ -n \"${HARNESS_VERSION}\" ]; then\n case \"${HARNESS_VERSION}\" in\n *\"${TOML_TEST_VERSION}\"*) ;;\n *)\n echo \"error: harness is ${HARNESS_VERSION}, expected ${TOML_TEST_VERSION}.\" >&2\n echo \"Run: sh sources/setup_harness.sh\" >&2\n exit 2\n ;;\n esac\nfi\n\nNO_COLOR=1 exec \"${HARNESS}\" test -toml 1.0 -decoder \"${DECODER}\" \"$@\"\n","exit_code":0,"status":"completed"}}
{"type":"item.started","item":{"id":"item_3","type":"command_execution","command":"/bin/bash -lc \"command -v toml-test || true; find . -maxdepth 3 -type f -not -path './sources/*' -print; sed -n '1,220p' sources/stage_test.sh\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_3","type":"command_execution","command":"/bin/bash -lc \"command -v toml-test || true; find . -maxdepth 3 -type f -not -path './sources/*' -print; sed -n '1,220p' sources/stage_test.sh\"","aggregated_output":"/home/barlo/.local/bin/toml-test\n./cmd/toml-decoder/main.go\n./go.mod\n./internal/toml/decode.go\n./internal/toml/value.go\n./internal/toml/value_test.go\n./toml-decoder\n#!/bin/sh\n# stage_test.sh — governed stage gate. Runs one slice of the authoritative suite.\n#\n# Same contract as full_test.sh, scoped to the cases a single story owns: build the decoder,\n# then run the installed toml-test suite over the pattern given as $1. Exit status is the\n# verdict and the whole verdict. Do not filter, skip, or reinterpret.\nset -eu\nif [ $# -ne 1 ]; then\n echo \"usage: stage_test.sh <toml-test -run pattern>\" >&2\n exit 2\nfi\nTOML_TEST_VERSION=\"${TOML_TEST_VERSION:-v2.2.0}\"\nexport TOML_TEST_VERSION\ngo build -o toml-decoder ./cmd/toml-decoder\nDECODER=\"$PWD/toml-decoder\" exec sh sources/run_conformance.sh -run \"$1\"\n","exit_code":0,"status":"completed"}}
{"type":"item.completed","item":{"id":"item_4","type":"agent_message","text":"The tree already contains the command shell and a minimal parser, but the parser does not yet satisfy the contract beyond simple scalar assignments. I’m extending the existing `internal/toml` boundary in place, including structured values, table headers, lexical validation, and process-level contract coverage without touching staged harness files."}}
{"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/internal/toml/decode.go","kind":"add"}],"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/internal/toml/decode.go","kind":"add"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_6","type":"command_execution","command":"/bin/bash -lc 'gofmt -w internal/toml/decode.go && go test ./...'","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_6","type":"command_execution","command":"/bin/bash -lc 'gofmt -w internal/toml/decode.go && go test ./...'","aggregated_output":"# github.com/owner/toml-decoder/internal/toml\ninternal/toml/decode.go:322:5: declared and not used: i\ninternal/toml/decode.go:333:6: undefined: i\nFAIL\tgithub.com/owner/toml-decoder/cmd/toml-decoder [build failed]\nFAIL\tgithub.com/owner/toml-decoder/internal/toml [build failed]\nFAIL\n","exit_code":1,"status":"failed"}}
{"type":"item.started","item":{"id":"item_7","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_7","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_8","type":"command_execution","command":"/bin/bash -lc \"gofmt -w internal/toml/decode.go && go test ./... && go build -o toml-decoder ./cmd/toml-decoder && printf 'answer = 42\\\\nenabled = true\\\\nname = \\\"ok\\\"\\\\nnums = [1, 2]\\\\n[table]\\\\nx = 1\\\\n' | ./toml-decoder; printf '\\\\ninvalid status: '; printf 'a = [1\\\\n' | ./toml-decoder >/tmp/toml-out 2>/tmp/toml-err; echo \"'$?; cat /tmp/toml-err'","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_8","type":"command_execution","command":"/bin/bash -lc \"gofmt -w internal/toml/decode.go && go test ./... && go build -o toml-decoder ./cmd/toml-decoder && printf 'answer = 42\\\\nenabled = true\\\\nname = \\\"ok\\\"\\\\nnums = [1, 2]\\\\n[table]\\\\nx = 1\\\\n' | ./toml-decoder; printf '\\\\ninvalid status: '; printf 'a = [1\\\\n' | ./toml-decoder >/tmp/toml-out 2>/tmp/toml-err; echo \"'$?; cat /tmp/toml-err'","aggregated_output":"? \tgithub.com/owner/toml-decoder/cmd/toml-decoder\t[no test files]\nok \tgithub.com/owner/toml-decoder/internal/toml\t0.015s\n{\"answer\":{\"type\":\"integer\",\"value\":\"42\"},\"enabled\":{\"type\":\"bool\",\"value\":\"true\"},\"name\":{\"type\":\"string\",\"value\":\"ok\"},\"nums\":[{\"type\":\"integer\",\"value\":\"1\"},{\"type\":\"integer\",\"value\":\"2\"}],\"table\":{\"x\":{\"type\":\"integer\",\"value\":\"1\"}}}\n\ninvalid status: 1\nunterminated value\n","exit_code":0,"status":"completed"}}
{"type":"item.completed","item":{"id":"item_9","type":"agent_message","text":"The decoder now builds and the existing unit tests pass; manual checks confirm tagged JSON on stdout and non-zero rejection with stderr diagnostics for malformed input. I’m adding the declared process-level tests next, then I’ll run the full available conformance entry point and the standard Go verification checks."}}
{"type":"item.started","item":{"id":"item_10","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":"add"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_10","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":"add"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_11","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_11","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_12","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_12","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_13","type":"command_execution","command":"/bin/bash -lc 'gofmt -w cmd/toml-decoder/main_test.go internal/toml/decode.go && go test ./... && go vet ./... && sh sources/full_test.sh'","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_13","type":"command_execution","command":"/bin/bash -lc 'gofmt -w cmd/toml-decoder/main_test.go internal/toml/decode.go && go test ./... && go vet ./... && sh sources/full_test.sh'","aggregated_output":"--- FAIL: TestDecoderRejectsArguments (0.20s)\n main_test.go:30: decoder accepted an argument\nFAIL\nFAIL\tgithub.com/owner/toml-decoder/cmd/toml-decoder\t0.536s\nok \tgithub.com/owner/toml-decoder/internal/toml\t(cached)\nFAIL\n","exit_code":1,"status":"failed"}}
{"type":"item.started","item":{"id":"item_14","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/cmd/toml-decoder/main.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_14","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/cmd/toml-decoder/main.go","kind":"update"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_15","type":"command_execution","command":"/bin/bash -lc 'gofmt -w cmd/toml-decoder/main.go cmd/toml-decoder/main_test.go && go test ./... && go vet ./... && sh sources/full_test.sh'","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_15","type":"command_execution","command":"/bin/bash -lc 'gofmt -w cmd/toml-decoder/main.go cmd/toml-decoder/main_test.go && go test ./... && go vet ./... && sh sources/full_test.sh'","aggregated_output":"ok \tgithub.com/owner/toml-decoder/cmd/toml-decoder\t2.431s\nok \tgithub.com/owner/toml-decoder/internal/toml\t(cached)\nharness: /home/barlo/.local/bin/toml-test toml-test v2.2.0; go1.24.6 linux/amd64; race=false; cgo=true\nFAIL valid/array/array\n line 5: unterminated array\n \n Exit 1\n\n input sent to parser-cmd (PID 736243):\n 1 │\u001b[0m ints = [1, 2, 3, ]\n 2 │\u001b[0m floats = [1.1, 2.1, 3.1]\n 3 │\u001b[0m strings = [\"a\", \"b\", \"c\"]\n 4 │\u001b[0m dates = [\n 5 │\u001b[0m \t1987-07-05T17:45:00Z,\n 6 │\u001b[0m \t1979-05-27T07:32:00,\n 7 │\u001b[0m \t2006-06-01,\n 8 │\u001b[0m \t11:00:00,\n 9 │\u001b[0m ]\n 10 │\u001b[0m comments = [\n 11 │\u001b[0m 1,\n 12 │\u001b[0m 2, #this is ok\n 13 │\u001b[0m ]\n\n output from parser-cmd (PID 736243) (stderr):\n 1 │\u001b[0m line 5: unterminated array\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/array/array-subtables\n line 2: table conflict\n \n Exit 1\n\n input sent to parser-cmd (PID 736252):\n 1 │\u001b[0m [[arr]]\n 2 │\u001b[0m [arr.subtab]\n 3 │\u001b[0m val=1\n 4 │\u001b[0m\n 5 │\u001b[0m [[arr]]\n 6 │\u001b[0m [arr.subtab]\n 7 │\u001b[0m val=2\n\n output from parser-cmd (PID 736252) (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/array/mixed-string-table\n unterminated value\n \n Exit 1\n\n input sent to parser-cmd (PID 736249):\n 1 │\u001b[0m contributors = [\n 2 │\u001b[0m \"Foo Bar <foo@example.com>\",\n 3 │\u001b[0m { name = \"Baz Qux\", email = \"bazqux@example.com\", url = \"https://example.com/bazqux\" }\n 4 │\u001b[0m ]\n 5 │\u001b[0m\n 6 │\u001b[0m # Start with a table as the first element. This tests a case that some libraries\n 7 │\u001b[0m # might have where they will check if the first entry is a table/map/hash/assoc\n 8 │\u001b[0m # array and then encode it as a table array. This was a reasonable thing to do\n 9 │\u001b[0m # before TOML 1.0 since arrays could only contain one type, but now it's no\n 10 │\u001b[0m # longer.\n 11 │\u001b[0m mixed = [{k=\"a\"}, \"b\", 1]\n\n output from parser-cmd (PID 736249) (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/array/string-with-comma-02\n line 1: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 736318):\n 1 │\u001b[0m title = [\n 2 │\u001b[0m \"\"\"Client: XXXX,\n 3 │\u001b[0m Job: XXXX\"\"\",\n 4 │\u001b[0m \"Code: XXXX\"\n 5 │\u001b[0m ]\n\n output from parser-cmd (PID 736318) (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/array/strings\n line 1: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 736245):\n 1 │\u001b[0m string_array = [ \"all\", 'strings', \"\"\"are the same\"\"\", '''type''']\n\n output from parser-cmd (PID 736245) (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/comment/after-literal-no-ws\n line 1: invalid value \"inf\"\n \n Exit 1\n\n input sent to parser-cmd (PID 736242):\n 1 │\u001b[0m inf=inf#infinity\n 2 │\u001b[0m nan=nan#not a number\n 3 │\u001b[0m true=true#true\n 4 │\u001b[0m false=false#false\n\n output from parser-cmd (PID 736242) (stderr):\n 1 │\u001b[0m line 1: invalid value \"inf\"\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/comment/everywhere\n unexpected closing delimiter\n \n Exit 1\n\n input sent to parser-cmd (PID 736306):\n 1 │\u001b[0m # Top comment.\n 2 │\u001b[0m # Top comment.\n 3 │\u001b[0m # Top comment.\n 4 │\u001b[0m\n 5 │\u001b[0m # [no-extraneous-groups-please]\n 6 │\u001b[0m\n 7 │\u001b[0m [group] # Comment\n 8 │\u001b[0m answer = 42 # Comment\n 9 │\u001b[0m # no-extraneous-keys-please = 999\n 10 │\u001b[0m # Inbetween comment.\n 11 │\u001b[0m more = [ # Comment\n 12 │\u001b[0m # What about multiple # comments?\n 13 │\u001b[0m # Can you handle it?\n 14 │\u001b[0m #\n 15 │\u001b[0m # Evil.\n 16 │\u001b[0m # Evil.\n 17 │\u001b[0m 42, 42, # Comments within arrays are fun.\n 18 │\u001b[0m # What about multiple # comments?\n 19 │\u001b[0m # Can you handle it?\n 20 │\u001b[0m #\n 21 │\u001b[0m # Evil.\n 22 │\u001b[0m # Evil.\n 23 │\u001b[0m # ] Did I fool you?\n 24 │\u001b[0m ] # Hopefully not.\n 25 │\u001b[0m\n 26 │\u001b[0m # Make sure the space between the datetime and \"#\" isn't lexed.\n 27 │\u001b[0m dt = 1979-05-27T07:32:12-07:00 # c\n 28 │\u001b[0m d = 1979-05-27 # Comment\n 29 │\u001b[0m\n 30 │\u001b[0m [[aot]] # Comment\n 31 │\u001b[0m k = 98 # Comment\n 32 │\u001b[0m [[aot]]# Comment\n 33 │\u001b[0m k = 99# Comment\n\n output from parser-cmd (PID 736306) (stderr):\n 1 │\u001b[0m unexpected closing delimiter\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/comment/tricky\n unexpected closing delimiter\n \n Exit 1\n\n input sent to parser-cmd (PID 736311):\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 736311) (stderr):\n 1 │\u001b[0m unexpected closing delimiter\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/datetime/datetime\n line 1: invalid value \"1987-07-05 17:45:00Z\"\n \n Exit 1\n\n input sent to parser-cmd (PID 736313):\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 736313) (stderr):\n 1 │\u001b[0m line 1: invalid value \"1987-07-05 17:45:00Z\"\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/datetime/edge\n line 1: invalid value \"0001-01-01 00:00:00Z\"\n \n Exit 1\n\n input sent to parser-cmd (PID 736399):\n 1 │\u001b[0m first-offset = 0001-01-01 00:00:00Z\n 2 │\u001b[0m first-local = 0001-01-01 00:00:00\n 3 │\u001b[0m first-date = 0001-01-01\n 4 │\u001b[0m\n 5 │\u001b[0m last-offset = 9999-12-31 23:59:59Z\n 6 │\u001b[0m last-local = 9999-12-31 23:59:59\n 7 │\u001b[0m last-date = 9999-12-31\n\n output from parser-cmd (PID 736399) (stderr):\n 1 │\u001b[0m line 1: invalid value \"0001-01-01 00:00:00Z\"\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/datetime/leap-year\n line 1: invalid value \"2000-02-29 15:15:15Z\"\n \n Exit 1\n\n input sent to parser-cmd (PID 736386):\n 1 │\u001b[0m 2000-datetime = 2000-02-29 15:15:15Z\n 2 │\u001b[0m 2000-datetime-local = 2000-02-29 15:15:15\n 3 │\u001b[0m 2000-date = 2000-02-29\n 4 │\u001b[0m\n 5 │\u001b[0m 2024-datetime = 2024-02-29 15:15:15Z\n 6 │\u001b[0m 2024-datetime-local = 2024-02-29 15:15:15\n 7 │\u001b[0m 2024-date = 2024-02-29\n\n output from parser-cmd (PID 736386) (stderr):\n 1 │\u001b[0m line 1: invalid value \"2000-02-29 15:15:15Z\"\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/datetime/local\n line 3: invalid value \"1987-07-05 17:45:00\"\n \n Exit 1\n\n input sent to parser-cmd (PID 736435):\n 1 │\u001b[0m local = 1987-07-05T17:45:00\n 2 │\u001b[0m milli = 1977-12-21T10:32:00.555\n 3 │\u001b[0m space = 1987-07-05 17:45:00\n\n output from parser-cmd (PID 736435) (stderr):\n 1 │\u001b[0m line 3: invalid value \"1987-07-05 17:45:00\"\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/float/inf-and-nan\n unterminated value\n \n Exit 1\n\n input sent to parser-cmd (PID 736443):\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 736443) (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/inline-table/empty\n line 6: invalid inline key\n \n Exit 1\n\n input sent to parser-cmd (PID 736516):\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 736516) (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 736717):\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 736717) (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 1: invalid inline key\n \n Exit 1\n\n input sent to parser-cmd (PID 736629):\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 736629) (stderr):\n 1 │\u001b[0m line 1: 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-02\n line 1: invalid inline key\n \n Exit 1\n\n input sent to parser-cmd (PID 736696):\n 1 │\u001b[0m many.dots.here.dot.dot.dot = {a.b.c = 1, a.b.d = 2}\n\n output from parser-cmd (PID 736696) (stderr):\n 1 │\u001b[0m line 1: 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-03\n line 2: invalid inline key\n \n Exit 1\n\n input sent to parser-cmd (PID 736517):\n 1 │\u001b[0m [tbl]\n 2 │\u001b[0m a.b.c = {d.e=1}\n 3 │\u001b[0m\n 4 │\u001b[0m [tbl.x]\n 5 │\u001b[0m a.b.c = {d.e=1}\n\n output from parser-cmd (PID 736517) (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/key-dotted-04\n line 2: invalid inline key\n \n Exit 1\n\n input sent to parser-cmd (PID 736533):\n 1 │\u001b[0m [[arr]]\n 2 │\u001b[0m t = {a.b=1}\n 3 │\u001b[0m T = {a.b=1}\n 4 │\u001b[0m\n 5 │\u001b[0m [[arr]]\n 6 │\u001b[0m t = {a.b=2}\n 7 │\u001b[0m T = {a.b=2}\n\n output from parser-cmd (PID 736533) (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/key-dotted-05\n line 1: invalid inline key\n \n Exit 1\n\n input sent to parser-cmd (PID 736540):\n 1 │\u001b[0m arr-1 = [{a.b = 1}]\n 2 │\u001b[0m arr-2 = [\"str\", {a.b = 1}]\n 3 │\u001b[0m\n 4 │\u001b[0m arr-3 = [{a.b = 1}, {a.b = 2}]\n 5 │\u001b[0m arr-4 = [\"str\", {a.b = 1}, {a.b = 2}]\n\n output from parser-cmd (PID 736540) (stderr):\n 1 │\u001b[0m line 1: 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-06\n line 1: invalid inline key\n \n Exit 1\n\n input sent to parser-cmd (PID 736542):\n 1 │\u001b[0m top.dot.dot = [\n 2 │\u001b[0m \t{dot.dot.dot = 1},\n 3 │\u001b[0m \t{dot.dot.dot = 2},\n 4 │\u001b[0m ]\n\n output from parser-cmd (PID 736542) (stderr):\n 1 │\u001b[0m line 1: 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-07\n line 1: invalid inline key\n \n Exit 1\n\n input sent to parser-cmd (PID 736534):\n 1 │\u001b[0m arr = [\n 2 │\u001b[0m \t{a.b = [{c.d = 1}]}\n 3 │\u001b[0m ]\n\n output from parser-cmd (PID 736534) (stderr):\n 1 │\u001b[0m line 1: invalid inline key\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/inline-table/multiline\n line 1: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 736545):\n 1 │\u001b[0m tbl_multiline = { a = 1, b = \"\"\"\n 2 │\u001b[0m multiline\n 3 │\u001b[0m \"\"\", c = \"\"\"and yet\n 4 │\u001b[0m another line\"\"\", d = 4 }\n\n output from parser-cmd (PID 736545) (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/inline-table/spaces\n line 5: invalid inline key\n \n Exit 1\n\n input sent to parser-cmd (PID 736562):\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 736562) (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/float64-max\n Values for key \"max_int\" don't match:\n Expected: 9007199254740991\n Your encoder: 9_007_199_254_740_991\n\n input sent to parser-cmd (PID 736576):\n 1 │\u001b[0m # Maximum and minimum safe float64 natural numbers. Mainly here for\n 2 │\u001b[0m # -int-as-float.\n 3 │\u001b[0m max_int = 9_007_199_254_740_991\n 4 │\u001b[0m min_int = -9_007_199_254_740_991\n\n output from parser-cmd (PID 736576) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"max_int\": {\"type\": \"integer\", \"value\": \"9_007_199_254_740_991\"},\n 3 │\u001b[0m \"min_int\": {\"type\": \"integer\", \"value\": \"-9_007_199_254_740_991\"}\n 4 │\u001b[0m }\n\n want:\n 1 │\u001b[0m {\n 2 │\u001b[0m \"max_int\": {\"type\": \"integer\", \"value\": \"9007199254740991\"},\n 3 │\u001b[0m \"min_int\": {\"type\": \"integer\", \"value\": \"-9007199254740991\"}\n 4 │\u001b[0m }\n\nFAIL valid/integer/integer\n Values for key \"posanswer\" don't match:\n Expected: 42\n Your encoder: +42\n\n input sent to parser-cmd (PID 736582):\n 1 │\u001b[0m answer = 42\n 2 │\u001b[0m posanswer = +42\n 3 │\u001b[0m neganswer = -42\n 4 │\u001b[0m zero = 0\n\n output from parser-cmd (PID 736582) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"answer\": {\"type\": \"integer\", \"value\": \"42\"},\n 3 │\u001b[0m \"neganswer\": {\"type\": \"integer\", \"value\": \"-42\"},\n 4 │\u001b[0m \"posanswer\": {\"type\": \"integer\", \"value\": \"+42\"},\n 5 │\u001b[0m \"zero\": {\"type\": \"integer\", \"value\": \"0\"}\n 6 │\u001b[0m }\n\n want:\n 1 │\u001b[0m {\n 2 │\u001b[0m \"answer\": {\"type\": \"integer\", \"value\": \"42\"},\n 3 │\u001b[0m \"neganswer\": {\"type\": \"integer\", \"value\": \"-42\"},\n 4 │\u001b[0m \"posanswer\": {\"type\": \"integer\", \"value\": \"42\"},\n 5 │\u001b[0m \"zero\": {\"type\": \"integer\", \"value\": \"0\"}\n 6 │\u001b[0m }\n\nFAIL valid/integer/literals\n line 8: invalid value \"0xDEADBEEF\"\n \n Exit 1\n\n input sent to parser-cmd (PID 736581):\n 1 │\u001b[0m bin1 = 0b11010110\n 2 │\u001b[0m bin2 = 0b1_0_1\n 3 │\u001b[0m\n 4 │\u001b[0m oct1 = 0o01234567\n 5 │\u001b[0m oct2 = 0o755\n 6 │\u001b[0m oct3 = 0o7_6_5\n 7 │\u001b[0m\n 8 │\u001b[0m hex1 = 0xDEADBEEF\n 9 │\u001b[0m hex2 = 0xdeadbeef\n 10 │\u001b[0m hex3 = 0xdead_beef\n 11 │\u001b[0m hex4 = 0x00987\n\n output from parser-cmd (PID 736581) (stderr):\n 1 │\u001b[0m line 8: invalid value \"0xDEADBEEF\"\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/integer/long\n unterminated value\n \n Exit 1\n\n input sent to parser-cmd (PID 736930):\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 736930) (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/integer/underscore\n Values for key \"kilo\" don't match:\n Expected: 1000\n Your encoder: 1_000\n\n input sent to parser-cmd (PID 736591):\n 1 │\u001b[0m kilo = 1_000\n 2 │\u001b[0m x = 1_1_1_1\n\n output from parser-cmd (PID 736591) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"kilo\": {\"type\": \"integer\", \"value\": \"1_000\"},\n 3 │\u001b[0m \"x\": {\"type\": \"integer\", \"value\": \"1_1_1_1\"}\n 4 │\u001b[0m }\n\n want:\n 1 │\u001b[0m {\n 2 │\u001b[0m \"kilo\": {\"type\": \"integer\", \"value\": \"1000\"},\n 3 │\u001b[0m \"x\": {\"type\": \"integer\", \"value\": \"1111\"}\n 4 │\u001b[0m }\n\nFAIL valid/integer/zero\n Values for key \"a2\" don't match:\n Expected: 0\n Your encoder: 0o00\n\n input sent to parser-cmd (PID 736593):\n 1 │\u001b[0m d1 = 0\n 2 │\u001b[0m d2 = +0\n 3 │\u001b[0m d3 = -0\n 4 │\u001b[0m\n 5 │\u001b[0m h1 = 0x0\n 6 │\u001b[0m h2 = 0x00\n 7 │\u001b[0m h3 = 0x00000\n 8 │\u001b[0m\n 9 │\u001b[0m o1 = 0o0\n 10 │\u001b[0m a2 = 0o00\n 11 │\u001b[0m a3 = 0o00000\n 12 │\u001b[0m\n 13 │\u001b[0m b1 = 0b0\n 14 │\u001b[0m b2 = 0b00\n 15 │\u001b[0m b3 = 0b00000\n\n output from parser-cmd (PID 736593) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"a2\": {\"type\": \"integer\", \"value\": \"0o00\"},\n 3 │\u001b[0m \"a3\": {\"type\": \"integer\", \"value\": \"0o00000\"},\n 4 │\u001b[0m \"b1\": {\"type\": \"integer\", \"value\": \"0b0\"},\n 5 │\u001b[0m \"b2\": {\"type\": \"integer\", \"value\": \"0b00\"},\n 6 │\u001b[0m \"b3\": {\"type\": \"integer\", \"value\": \"0b00000\"},\n 7 │\u001b[0m \"d1\": {\"type\": \"integer\", \"value\": \"0\"},\n 8 │\u001b[0m \"d2\": {\"type\": \"integer\", \"value\": \"+0\"},\n 9 │\u001b[0m \"d3\": {\"type\": \"integer\", \"value\": \"-0\"},\n 10 │\u001b[0m \"h1\": {\"type\": \"integer\", \"value\": \"0x0\"},\n 11 │\u001b[0m \"h2\": {\"type\": \"integer\", \"value\": \"0x00\"},\n 12 │\u001b[0m \"h3\": {\"type\": \"integer\", \"value\": \"0x00000\"},\n 13 │\u001b[0m \"o1\": {\"type\": \"integer\", \"value\": \"0o0\"}\n 14 │\u001b[0m }\n\n want:\n 1 │\u001b[0m {\n 2 │\u001b[0m \"a2\": {\"type\": \"integer\", \"value\": \"0\"},\n 3 │\u001b[0m \"a3\": {\"type\": \"integer\", \"value\": \"0\"},\n 4 │\u001b[0m \"b1\": {\"type\": \"integer\", \"value\": \"0\"},\n 5 │\u001b[0m \"b2\": {\"type\": \"integer\", \"value\": \"0\"},\n 6 │\u001b[0m \"b3\": {\"type\": \"integer\", \"value\": \"0\"},\n 7 │\u001b[0m \"d1\": {\"type\": \"integer\", \"value\": \"0\"},\n 8 │\u001b[0m \"d2\": {\"type\": \"integer\", \"value\": \"0\"},\n 9 │\u001b[0m \"d3\": {\"type\": \"integer\", \"value\": \"0\"},\n 10 │\u001b[0m \"h1\": {\"type\": \"integer\", \"value\": \"0\"},\n 11 │\u001b[0m \"h2\": {\"type\": \"integer\", \"value\": \"0\"},\n 12 │\u001b[0m \"h3\": {\"type\": \"integer\", \"value\": \"0\"},\n 13 │\u001b[0m \"o1\": {\"type\": \"integer\", \"value\": \"0\"}\n 14 │\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 736605):\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 736605) (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 736606):\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 736606) (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 736609):\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 736609) (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 736704):\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 736704) (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 736646):\n 1 │\u001b[0m \"\" = \"blank\"\n\n output from parser-cmd (PID 736646) (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 736650):\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 736650) (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 unterminated value\n \n Exit 1\n\n input sent to parser-cmd (PID 736654):\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 736654) (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/key/quoted-dots\n line 2: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 736737):\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 736737) (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 736726):\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 736726) (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 736725):\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 736725) (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 736728):\n 1 │\u001b[0m \"=~!@$^&*()_+-`1234567890[]|/?><.,;:'=\" = 1\n\n output from parser-cmd (PID 736728) (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 unexpected closing delimiter\n \n Exit 1\n\n input sent to parser-cmd (PID 736732):\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 736732) (stderr):\n 1 │\u001b[0m unexpected closing delimiter\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/spec-1.0.0/array-0\n line 5: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 736974):\n 1 │\u001b[0m integers = [ 1, 2, 3 ]\n 2 │\u001b[0m colors = [ \"red\", \"yellow\", \"green\" ]\n 3 │\u001b[0m nested_arrays_of_ints = [ [ 1, 2 ], [3, 4, 5] ]\n 4 │\u001b[0m nested_mixed_array = [ [ 1, 2 ], [\"a\", \"b\", \"c\"] ]\n 5 │\u001b[0m string_array = [ \"all\", 'strings', \"\"\"are the same\"\"\", '''type''' ]\n 6 │\u001b[0m\n 7 │\u001b[0m # Mixed-type arrays are allowed\n 8 │\u001b[0m numbers = [ 0.1, 0.2, 0.5, 1, 2, 5 ]\n 9 │\u001b[0m contributors = [\n 10 │\u001b[0m \"Foo Bar <foo@example.com>\",\n 11 │\u001b[0m { name = \"Baz Qux\", email = \"bazqux@example.com\", url = \"https://example.com/bazqux\" }\n 12 │\u001b[0m ]\n\n output from parser-cmd (PID 736974) (stderr):\n 1 │\u001b[0m line 5: 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-1\n line 3: unterminated array\n \n Exit 1\n\n input sent to parser-cmd (PID 736779):\n 1 │\u001b[0m integers2 = [\n 2 │\u001b[0m 1, 2, 3\n 3 │\u001b[0m ]\n 4 │\u001b[0m\n 5 │\u001b[0m integers3 = [\n 6 │\u001b[0m 1,\n 7 │\u001b[0m 2, # this is ok\n 8 │\u001b[0m ]\n\n output from parser-cmd (PID 736779) (stderr):\n 1 │\u001b[0m line 3: unterminated array\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/spec-1.0.0/array-of-tables-1\n line 4: table conflict\n \n Exit 1\n\n input sent to parser-cmd (PID 736791):\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 736791) (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/spec-1.0.0/float-2\n line 2: invalid value \"inf\"\n \n Exit 1\n\n input sent to parser-cmd (PID 736824):\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 736824) (stderr):\n 1 │\u001b[0m line 2: invalid value \"inf\"\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/spec-1.0.0/inline-table-0\n line 3: invalid inline key\n \n Exit 1\n\n input sent to parser-cmd (PID 736818):\n 1 │\u001b[0m name = { first = \"Tom\", last = \"Preston-Werner\" }\n 2 │\u001b[0m point = { x = 1, y = 2 }\n 3 │\u001b[0m animal = { type.name = \"pug\" }\n\n output from parser-cmd (PID 736818) (stderr):\n 1 │\u001b[0m line 3: invalid inline key\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/spec-1.0.0/integer-0\n Values for key \"int1\" don't match:\n Expected: 99\n Your encoder: +99\n\n input sent to parser-cmd (PID 736821):\n 1 │\u001b[0m int1 = +99\n 2 │\u001b[0m int2 = 42\n 3 │\u001b[0m int3 = 0\n 4 │\u001b[0m int4 = -17\n\n output from parser-cmd (PID 736821) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"int1\": {\"type\": \"integer\", \"value\": \"+99\"},\n 3 │\u001b[0m \"int2\": {\"type\": \"integer\", \"value\": \"42\"},\n 4 │\u001b[0m \"int3\": {\"type\": \"integer\", \"value\": \"0\"},\n 5 │\u001b[0m \"int4\": {\"type\": \"integer\", \"value\": \"-17\"}\n 6 │\u001b[0m }\n\n want:\n 1 │\u001b[0m {\n 2 │\u001b[0m \"int1\": {\"type\": \"integer\", \"value\": \"99\"},\n 3 │\u001b[0m \"int2\": {\"type\": \"integer\", \"value\": \"42\"},\n 4 │\u001b[0m \"int3\": {\"type\": \"integer\", \"value\": \"0\"},\n 5 │\u001b[0m \"int4\": {\"type\": \"integer\", \"value\": \"-17\"}\n 6 │\u001b[0m }\n\nFAIL valid/spec-1.0.0/integer-1\n Values for key \"int5\" don't match:\n Expected: 1000\n Your encoder: 1_000\n\n input sent to parser-cmd (PID 736827):\n 1 │\u001b[0m int5 = 1_000\n 2 │\u001b[0m int6 = 5_349_221\n 3 │\u001b[0m int7 = 53_49_221 # Indian number system grouping\n 4 │\u001b[0m int8 = 1_2_3_4_5 # VALID but discouraged\n\n output from parser-cmd (PID 736827) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"int5\": {\"type\": \"integer\", \"value\": \"1_000\"},\n 3 │\u001b[0m \"int6\": {\"type\": \"integer\", \"value\": \"5_349_221\"},\n 4 │\u001b[0m \"int7\": {\"type\": \"integer\", \"value\": \"53_49_221\"},\n 5 │\u001b[0m \"int8\": {\"type\": \"integer\", \"value\": \"1_2_3_4_5\"}\n 6 │\u001b[0m }\n\n want:\n 1 │\u001b[0m {\n 2 │\u001b[0m \"int5\": {\"type\": \"integer\", \"value\": \"1000\"},\n 3 │\u001b[0m \"int6\": {\"type\": \"integer\", \"value\": \"5349221\"},\n 4 │\u001b[0m \"int7\": {\"type\": \"integer\", \"value\": \"5349221\"},\n 5 │\u001b[0m \"int8\": {\"type\": \"integer\", \"value\": \"12345\"}\n 6 │\u001b[0m }\n\nFAIL valid/spec-1.0.0/integer-2\n line 2: invalid value \"0xDEADBEEF\"\n \n Exit 1\n\n input sent to parser-cmd (PID 736834):\n 1 │\u001b[0m # hexadecimal with prefix `0x`\n 2 │\u001b[0m hex1 = 0xDEADBEEF\n 3 │\u001b[0m hex2 = 0xdeadbeef\n 4 │\u001b[0m hex3 = 0xdead_beef\n 5 │\u001b[0m\n 6 │\u001b[0m # octal with prefix `0o`\n 7 │\u001b[0m oct1 = 0o01234567\n 8 │\u001b[0m oct2 = 0o755 # useful for Unix file permissions\n 9 │\u001b[0m\n 10 │\u001b[0m # binary with prefix `0b`\n 11 │\u001b[0m bin1 = 0b11010110\n\n output from parser-cmd (PID 736834) (stderr):\n 1 │\u001b[0m line 2: invalid value \"0xDEADBEEF\"\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/spec-1.0.0/keys-1\n line 1: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 736829):\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 736829) (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 736826):\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 736826) (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/offset-date-time-1\n line 1: invalid value \"1979-05-27 07:32:00Z\"\n \n Exit 1\n\n input sent to parser-cmd (PID 736928):\n 1 │\u001b[0m odt4 = 1979-05-27 07:32:00Z\n\n output from parser-cmd (PID 736928) (stderr):\n 1 │\u001b[0m line 1: invalid value \"1979-05-27 07:32:00Z\"\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/spec-1.0.0/string-1\n line 1: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 736931):\n 1 │\u001b[0m str1 = \"\"\"\n 2 │\u001b[0m Roses are red\n 3 │\u001b[0m Violets are blue\"\"\"\n\n output from parser-cmd (PID 736931) (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/string-3\n line 4: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 736946):\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 736946) (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-4\n line 1: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 736964):\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 736964) (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/string-6\n unterminated value\n \n Exit 1\n\n input sent to parser-cmd (PID 736960):\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 736960) (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/string-7\n unterminated value\n \n Exit 1\n\n input sent to parser-cmd (PID 737027):\n 1 │\u001b[0m quot15 = '''Here are fifteen quotation marks: \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"'''\n 2 │\u001b[0m\n 3 │\u001b[0m # apos15 = '''Here are fifteen apostrophes: '''''''''''''''''' # INVALID\n 4 │\u001b[0m apos15 = \"Here are fifteen apostrophes: '''''''''''''''\"\n 5 │\u001b[0m\n 6 │\u001b[0m # 'That,' she said, 'is still pointless.'\n 7 │\u001b[0m str = ''''That,' she said, 'is still pointless.''''\n\n output from parser-cmd (PID 737027) (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 736969):\n 1 │\u001b[0m [dog.\"tater.man\"]\n 2 │\u001b[0m type.name = \"pug\"\n\n output from parser-cmd (PID 736969) (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 736968):\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 736968) (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/table-4\n unterminated value\n \n Exit 1\n\n input sent to parser-cmd (PID 736970):\n 1 │\u001b[0m # [x] you\n 2 │\u001b[0m # [x.y] don't\n 3 │\u001b[0m # [x.y.z] need these\n 4 │\u001b[0m [x.y.z.w] # for this to work\n 5 │\u001b[0m\n 6 │\u001b[0m [x] # defining a super-table afterward is ok\n\n output from parser-cmd (PID 736970) (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-example-1\n unterminated value\n \n Exit 1\n\n input sent to parser-cmd (PID 737044):\n 1 │\u001b[0m # This is a TOML document. Boom.\n 2 │\u001b[0m\n 3 │\u001b[0m title = \"TOML Example\"\n 4 │\u001b[0m\n 5 │\u001b[0m [owner]\n 6 │\u001b[0m name = \"Lance Uppercut\"\n 7 │\u001b[0m dob = 1979-05-27T07:32:00-08:00 # First class dates? Why not?\n 8 │\u001b[0m\n 9 │\u001b[0m [database]\n 10 │\u001b[0m server = \"192.168.1.1\"\n 11 │\u001b[0m ports = [ 8001, 8001, 8002 ]\n 12 │\u001b[0m connection_max = 5000\n 13 │\u001b[0m enabled = true\n 14 │\u001b[0m\n 15 │\u001b[0m [servers]\n 16 │\u001b[0m\n 17 │\u001b[0m # You can indent as you please. Tabs or spaces. TOML don't care.\n 18 │\u001b[0m [servers.alpha]\n 19 │\u001b[0m ip = \"10.0.0.1\"\n 20 │\u001b[0m dc = \"eqdc10\"\n 21 │\u001b[0m\n 22 │\u001b[0m [servers.beta]\n 23 │\u001b[0m ip = \"10.0.0.2\"\n 24 │\u001b[0m dc = \"eqdc10\"\n 25 │\u001b[0m\n 26 │\u001b[0m [clients]\n 27 │\u001b[0m data = [ [\"gamma\", \"delta\"], [1, 2] ]\n 28 │\u001b[0m\n 29 │\u001b[0m # Line breaks are OK when inside arrays\n 30 │\u001b[0m hosts = [\n 31 │\u001b[0m \"alpha\",\n 32 │\u001b[0m \"omega\"\n 33 │\u001b[0m ]\n\n output from parser-cmd (PID 737044) (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/basic-escape-01\n Could not find key \"test\" in parser output.\n\n input sent to parser-cmd (PID 737135):\n 1 │\u001b[0m # Escape \"\n 2 │\u001b[0m test = \"\\\"one\\\"\"\n\n output from parser-cmd (PID 737135) (stdout):\n 1 │\u001b[0m {}\n\n want:\n 1 │\u001b[0m {\n 2 │\u001b[0m \"test\": {\"type\": \"string\", \"value\": \"\\\"one\\\"\"}\n 3 │\u001b[0m }\n\nFAIL valid/string/basic-escape-02\n Could not find key \"test\" in parser output.\n\n input sent to parser-cmd (PID 737166):\n 1 │\u001b[0m # Escape \\ and then \"\n 2 │\u001b[0m test = \"\\\\\\\"one\"\n\n output from parser-cmd (PID 737166) (stdout):\n 1 │\u001b[0m {}\n\n want:\n 1 │\u001b[0m {\n 2 │\u001b[0m \"test\": {\"type\": \"string\", \"value\": \"\\\\\\\"one\"}\n 3 │\u001b[0m }\n\nFAIL valid/string/basic-escape-03\n Could not find key \"test\" in parser output.\n\n input sent to parser-cmd (PID 737194):\n 1 │\u001b[0m # Escape \\ four times and then \"\n 2 │\u001b[0m test = \"\\\\\\\\\\\\\\\\\\\"one\"\n\n output from parser-cmd (PID 737194) (stdout):\n 1 │\u001b[0m {}\n\n want:\n 1 │\u001b[0m {\n 2 │\u001b[0m \"test\": {\"type\": \"string\", \"value\": \"\\\\\\\\\\\\\\\\\\\"one\"}\n 3 │\u001b[0m }\n\nFAIL valid/string/ends-in-whitespace-escape\n line 1: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 737060):\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 737060) (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/string/escape-tricky\n line 4: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 737285):\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 737285) (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/multibyte\n line 6: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 737063):\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 = \"ɑ € 𐫱 ɑ€𐫱\"\n 5 │\u001b[0m raw = 'ɑ € 𐫱 ɑ€𐫱'\n 6 │\u001b[0m ml-basic = \"\"\"ɑ € 𐫱 ɑ€𐫱\"\"\"\n 7 │\u001b[0m ml-raw = '''ɑ € 𐫱 ɑ€𐫱'''\n\n output from parser-cmd (PID 737063) (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/string/multibyte-escape\n line 5: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 737065):\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 737065) (stderr):\n 1 │\u001b[0m line 5: invalid string: invalid syntax\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/string/multiline\n line 4: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 737133):\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 737133) (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/multiline-empty\n line 1: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 737078):\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 737078) (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/string/multiline-escaped-crlf\n line 3: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 737081):\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 737081) (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/string/multiline-quotes\n unterminated value\n \n Exit 1\n\n input sent to parser-cmd (PID 737075):\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 737075) (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 line 2: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 737080):\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 737080) (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/string/raw-multiline\n line 4: newline in string\n \n Exit 1\n\n input sent to parser-cmd (PID 737074):\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 737074) (stderr):\n 1 │\u001b[0m line 4: newline in string\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/string/start-mb\n line 6: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 737067):\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 737067) (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/string/unicode-escape\n line 9: invalid string: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 737070):\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 737070) (stderr):\n 1 │\u001b[0m line 9: invalid string: invalid syntax\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/table/array-nest\n line 4: table conflict\n \n Exit 1\n\n input sent to parser-cmd (PID 737173):\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 737173) (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 737185):\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 737185) (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 737187):\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 737187) (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 737193):\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 737193) (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 737195):\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 737195) (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 737197):\n 1 │\u001b[0m [\"valid key\"]\n\n output from parser-cmd (PID 737197) (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 737201):\n 1 │\u001b[0m [\"key#group\"]\n 2 │\u001b[0m answer = 42\n\n output from parser-cmd (PID 737201) (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/without-super\n unterminated value\n \n Exit 1\n\n input sent to parser-cmd (PID 737202):\n 1 │\u001b[0m # [x] you\n 2 │\u001b[0m # [x.y] don't\n 3 │\u001b[0m # [x.y.z] need these\n 4 │\u001b[0m [x.y.z.w] # for this to work\n 5 │\u001b[0m [x] # defining a super-table afterwards is ok\n\n output from parser-cmd (PID 737202) (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/table/without-super-with-values\n unterminated value\n \n Exit 1\n\n input sent to parser-cmd (PID 737198):\n 1 │\u001b[0m # [x] you\n 2 │\u001b[0m # [x.y] don't\n 3 │\u001b[0m # [x.y.z] need these\n 4 │\u001b[0m [x.y.z.w] # for this to work\n 5 │\u001b[0m a = 1\n 6 │\u001b[0m b = 2\n 7 │\u001b[0m [x] # defining a super-table afterwards is ok\n 8 │\u001b[0m c = 3\n 9 │\u001b[0m d = 4\n\n output from parser-cmd (PID 737198) (stderr):\n 1 │\u001b[0m unterminated value\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL invalid/array/tables-01\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 737481):\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 737481) (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 737476):\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 737476) (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 737503):\n 1 │\u001b[0m comment-cr = \"Carriage return in comment\" # \ra=1\n\n output from parser-cmd (PID 737503) (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 737490):\n 1 │\u001b[0m comment-del = \"0x7f\" # \n\n output from parser-cmd (PID 737490) (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 737495):\n 1 │\u001b[0m comment-ff = \"0x7f\" # \f\n\n output from parser-cmd (PID 737495) (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 737509):\n 1 │\u001b[0m comment-lf = \"ctrl-P\" # \u0010\n\n output from parser-cmd (PID 737509) (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 737510):\n 1 │\u001b[0m comment-null = \"null\" # \u0000\n\n output from parser-cmd (PID 737510) (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 737512):\n 1 │\u001b[0m comment-us = \"ctrl-_\" # \u001f\n\n output from parser-cmd (PID 737512) (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/only-ff\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 737563):\n 1 │\u001b[0m \f\n\n output from parser-cmd (PID 737563) (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 737560):\n 1 │\u001b[0m \u000b\n\n output from parser-cmd (PID 737560) (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 737562):\n 1 │\u001b[0m rawmulti-del = '''null'''\n\n output from parser-cmd (PID 737562) (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 737584):\n 1 │\u001b[0m rawmulti-lf = '''null\u0010'''\n\n output from parser-cmd (PID 737584) (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 737577):\n 1 │\u001b[0m rawmulti-null = '''null\u0000'''\n\n output from parser-cmd (PID 737577) (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 737594):\n 1 │\u001b[0m rawmulti-us = '''null\u001f'''\n\n output from parser-cmd (PID 737594) (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 737596):\n 1 │\u001b[0m rawstring-del = 'null'\n\n output from parser-cmd (PID 737596) (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 737598):\n 1 │\u001b[0m rawstring-lf = 'null\u0010'\n\n output from parser-cmd (PID 737598) (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 737600):\n 1 │\u001b[0m rawstring-null = 'null\u0000'\n\n output from parser-cmd (PID 737600) (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 737604):\n 1 │\u001b[0m rawstring-us = 'null\u001f'\n\n output from parser-cmd (PID 737604) (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 737768):\n 1 │\u001b[0m string-bs = \"backspace\b\"\n\n output from parser-cmd (PID 737768) (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 737620):\n 1 │\u001b[0m string-cr = \"null\r\"\n\n output from parser-cmd (PID 737620) (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 737635):\n 1 │\u001b[0m string-del = \"null\"\n\n output from parser-cmd (PID 737635) (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 737645):\n 1 │\u001b[0m string-lf = \"null\u0010\"\n\n output from parser-cmd (PID 737645) (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 737636):\n 1 │\u001b[0m string-null = \"null\u0000\"\n\n output from parser-cmd (PID 737636) (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 737637):\n 1 │\u001b[0m string-us = \"null\u001f\"\n\n output from parser-cmd (PID 737637) (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/time-no-leads\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 737806):\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 737806) (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 737864):\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 737864) (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 737882):\n 1 │\u001b[0m exp-dot-02 = 1.e2\n\n output from parser-cmd (PID 737882) (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 737903):\n 1 │\u001b[0m exp-dot-03 = 3.e+20\n\n output from parser-cmd (PID 737903) (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 737938):\n 1 │\u001b[0m exp-double-us = 1e__23\n\n output from parser-cmd (PID 737938) (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 737918):\n 1 │\u001b[0m exp-leading-us = 1e_23\n\n output from parser-cmd (PID 737918) (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 738157):\n 1 │\u001b[0m exp-trailing-us = 1e23_\n\n output from parser-cmd (PID 738157) (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 737920):\n 1 │\u001b[0m exp-trailing-us-01 = 1_e2\n\n output from parser-cmd (PID 737920) (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 737928):\n 1 │\u001b[0m exp-trailing-us-02 = 1.2_e2\n\n output from parser-cmd (PID 737928) (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 738071):\n 1 │\u001b[0m leading-dot = .12345\n\n output from parser-cmd (PID 738071) (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 737959):\n 1 │\u001b[0m leading-dot-neg = -.12345\n\n output from parser-cmd (PID 737959) (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 737956):\n 1 │\u001b[0m leading-dot-plus = +.12345\n\n output from parser-cmd (PID 737956) (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 737953):\n 1 │\u001b[0m leading-us = _1.2\n\n output from parser-cmd (PID 737953) (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 737993):\n 1 │\u001b[0m leading-zero = 03.14\n\n output from parser-cmd (PID 737993) (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 737991):\n 1 │\u001b[0m leading-zero-neg = -03.14\n\n output from parser-cmd (PID 737991) (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 738016):\n 1 │\u001b[0m leading-zero-plus = +03.14\n\n output from parser-cmd (PID 738016) (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 738054):\n 1 │\u001b[0m trailing-dot = 1.\n\n output from parser-cmd (PID 738054) (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 738022):\n 1 │\u001b[0m trailing-point = 1.\n\n output from parser-cmd (PID 738022) (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 738021):\n 1 │\u001b[0m a = 1.\n 2 │\u001b[0m b = 2\n\n output from parser-cmd (PID 738021) (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 738019):\n 1 │\u001b[0m trailing-dot-min = -1.\n\n output from parser-cmd (PID 738019) (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 738053):\n 1 │\u001b[0m trailing-dot-plus = +1.\n\n output from parser-cmd (PID 738053) (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 738076):\n 1 │\u001b[0m trailing-us = 1.2_\n\n output from parser-cmd (PID 738076) (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 738074):\n 1 │\u001b[0m trailing-us-exp-1 = 1_e2\n\n output from parser-cmd (PID 738074) (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 738075):\n 1 │\u001b[0m trailing-us-exp-2 = 1.2_e2\n\n output from parser-cmd (PID 738075) (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 738077):\n 1 │\u001b[0m us-after-dot = 1._2\n\n output from parser-cmd (PID 738077) (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 738088):\n 1 │\u001b[0m us-before-dot = 1_.2\n\n output from parser-cmd (PID 738088) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"us-before-dot\": {\"type\": \"float\", \"value\": \"1_.2\"}\n 3 │\u001b[0m }\n\n want:\n Exit code 1\n\nFAIL invalid/inline-table/linebreak-01\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 738128):\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 738128) (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 738129):\n 1 │\u001b[0m t = {a=1,\n 2 │\u001b[0m b=2}\n\n output from parser-cmd (PID 738129) (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 738125):\n 1 │\u001b[0m t = {a=1\n 2 │\u001b[0m ,b=2}\n\n output from parser-cmd (PID 738125) (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 738159):\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 738159) (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-04\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 738204):\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 738204) (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 738440):\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 738440) (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/trailing-comma\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 738231):\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 738231) (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 738230):\n 1 │\u001b[0m capital-bin = 0B0\n\n output from parser-cmd (PID 738230) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"capital-bin\": {\"type\": \"integer\", \"value\": \"0B0\"}\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 738291):\n 1 │\u001b[0m capital-hex = 0X1\n\n output from parser-cmd (PID 738291) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"capital-hex\": {\"type\": \"integer\", \"value\": \"0X1\"}\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 738313):\n 1 │\u001b[0m capital-oct = 0O0\n\n output from parser-cmd (PID 738313) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"capital-oct\": {\"type\": \"integer\", \"value\": \"0O0\"}\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 738210):\n 1 │\u001b[0m double-us = 1__23\n\n output from parser-cmd (PID 738210) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"double-us\": {\"type\": \"integer\", \"value\": \"1__23\"}\n 3 │\u001b[0m }\n\n want:\n Exit code 1\n\nFAIL invalid/integer/leading-us\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 738297):\n 1 │\u001b[0m leading-us = _123\n\n output from parser-cmd (PID 738297) (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 738308):\n 1 │\u001b[0m leading-us-bin = _0b1\n\n output from parser-cmd (PID 738308) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"leading-us-bin\": {\"type\": \"integer\", \"value\": \"_0b1\"}\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 738287):\n 1 │\u001b[0m leading-us-hex = _0x1\n\n output from parser-cmd (PID 738287) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"leading-us-hex\": {\"type\": \"integer\", \"value\": \"_0x1\"}\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 738312):\n 1 │\u001b[0m leading-us-oct = _0o1\n\n output from parser-cmd (PID 738312) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"leading-us-oct\": {\"type\": \"integer\", \"value\": \"_0o1\"}\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 738367):\n 1 │\u001b[0m leading-zero-01 = 01\n\n output from parser-cmd (PID 738367) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"leading-zero-01\": {\"type\": \"integer\", \"value\": \"01\"}\n 3 │\u001b[0m }\n\n want:\n Exit code 1\n\nFAIL invalid/integer/leading-zero-02\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 738294):\n 1 │\u001b[0m leading-zero-02 = 00\n\n output from parser-cmd (PID 738294) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"leading-zero-02\": {\"type\": \"integer\", \"value\": \"00\"}\n 3 │\u001b[0m }\n\n want:\n Exit code 1\n\nFAIL invalid/integer/leading-zero-03\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 738296):\n 1 │\u001b[0m leading-zero-03 = 0_0\n\n output from parser-cmd (PID 738296) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"leading-zero-03\": {\"type\": \"integer\", \"value\": \"0_0\"}\n 3 │\u001b[0m }\n\n want:\n Exit code 1\n\nFAIL invalid/integer/leading-zero-sign-01\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 738307):\n 1 │\u001b[0m leading-zero-sign-01 = -01\n\n output from parser-cmd (PID 738307) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"leading-zero-sign-01\": {\"type\": \"integer\", \"value\": \"-01\"}\n 3 │\u001b[0m }\n\n want:\n Exit code 1\n\nFAIL invalid/integer/leading-zero-sign-02\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 738298):\n 1 │\u001b[0m leading-zero-sign-02 = +01\n\n output from parser-cmd (PID 738298) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"leading-zero-sign-02\": {\"type\": \"integer\", \"value\": \"+01\"}\n 3 │\u001b[0m }\n\n want:\n Exit code 1\n\nFAIL invalid/integer/leading-zero-sign-03\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 738303):\n 1 │\u001b[0m leading-zero-sign-03 = +0_1\n\n output from parser-cmd (PID 738303) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"leading-zero-sign-03\": {\"type\": \"integer\", \"value\": \"+0_1\"}\n 3 │\u001b[0m }\n\n want:\n Exit code 1\n\nFAIL invalid/integer/negative-bin\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 738391):\n 1 │\u001b[0m negative-bin = -0b11010110\n\n output from parser-cmd (PID 738391) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"negative-bin\": {\"type\": \"integer\", \"value\": \"-0b11010110\"}\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 738310):\n 1 │\u001b[0m negative-oct = -0o755\n\n output from parser-cmd (PID 738310) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"negative-oct\": {\"type\": \"integer\", \"value\": \"-0o755\"}\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 738309):\n 1 │\u001b[0m positive-bin = +0b11010110\n\n output from parser-cmd (PID 738309) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"positive-bin\": {\"type\": \"integer\", \"value\": \"+0b11010110\"}\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 738369):\n 1 │\u001b[0m positive-oct = +0o755\n\n output from parser-cmd (PID 738369) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"positive-oct\": {\"type\": \"integer\", \"value\": \"+0o755\"}\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 738401):\n 1 │\u001b[0m trailing-us = 123_\n\n output from parser-cmd (PID 738401) (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 738390):\n 1 │\u001b[0m trailing-us-bin = 0b1_\n\n output from parser-cmd (PID 738390) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"trailing-us-bin\": {\"type\": \"integer\", \"value\": \"0b1_\"}\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 738392):\n 1 │\u001b[0m trailing-us-hex = 0x1_\n\n output from parser-cmd (PID 738392) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"trailing-us-hex\": {\"type\": \"integer\", \"value\": \"0x1_\"}\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 738562):\n 1 │\u001b[0m trailing-us-oct = 0o1_\n\n output from parser-cmd (PID 738562) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"trailing-us-oct\": {\"type\": \"integer\", \"value\": \"0o1_\"}\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 738402):\n 1 │\u001b[0m us-after-bin = 0b_1\n\n output from parser-cmd (PID 738402) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"us-after-bin\": {\"type\": \"integer\", \"value\": \"0b_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 738803):\n 1 │\u001b[0m us-after-hex = 0x_1\n\n output from parser-cmd (PID 738803) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"us-after-hex\": {\"type\": \"integer\", \"value\": \"0x_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 738491):\n 1 │\u001b[0m us-after-oct = 0o_1\n\n output from parser-cmd (PID 738491) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"us-after-oct\": {\"type\": \"integer\", \"value\": \"0o_1\"}\n 3 │\u001b[0m }\n\n want:\n Exit code 1\n\nFAIL invalid/key/newline-03\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 738559):\n 1 │\u001b[0m 'quoted\n 2 │\u001b[0m key' = 1\n\n output from parser-cmd (PID 738559) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"quoted\\nkey\": {\"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 738839):\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 738839) (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 738878):\n 1 │\u001b[0m # Leading 0 is always required.\n 2 │\u001b[0m d = 1:32:00\n\n output from parser-cmd (PID 738878) (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 738912):\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 738912) (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/table-9-0\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 738926):\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 738926) (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 738927):\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 738927) (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 738967):\n 1 │\u001b[0m invalid-escape = \"This string has a bad \\a escape character.\"\n\n output from parser-cmd (PID 738967) (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/basic-byte-escapes\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 739078):\n 1 │\u001b[0m answer = \"\\x33\"\n\n output from parser-cmd (PID 739078) (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/table/append-with-dotted-keys-02\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 739581):\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 739581) (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 739370):\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 739370) (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 739374):\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 739374) (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 739414):\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 739414) (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 739416):\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 739416) (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 739418):\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 739418) (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 739420):\n 1 │\u001b[0m [tbl]\n 2 │\u001b[0m [[tbl]]\n\n output from parser-cmd (PID 739420) (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/empty\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 739486):\n 1 │\u001b[0m []\n\n output from parser-cmd (PID 739486) (stdout):\n 1 │\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 739487):\n 1 │\u001b[0m [tbl\n 2 │\u001b[0m ]\n 3 │\u001b[0m k = 1\n\n output from parser-cmd (PID 739487) (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-04\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 739495):\n 1 │\u001b[0m [tbl.\n 2 │\u001b[0m ]\n 3 │\u001b[0m k = 1\n\n output from parser-cmd (PID 739495) (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 739496):\n 1 │\u001b[0m [tbl\n 2 │\u001b[0m .sub]\n 3 │\u001b[0m k = 1\n\n output from parser-cmd (PID 739496) (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 739635):\n 1 │\u001b[0m a=true\n 2 │\u001b[0m [[a]]\n\n output from parser-cmd (PID 739635) (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 739663):\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 739663) (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 739575):\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 739575) (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/trailing-dot\n Expected an error, but no error was reported.\n\n input sent to parser-cmd (PID 739676):\n 1 │\u001b[0m [a.]\n\n output from parser-cmd (PID 739676) (stdout):\n 1 │\u001b[0m {\n 2 │\u001b[0m \"a\": {}\n 3 │\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: 119 passed, 86 failed\nencoder tests: no encoder command given\ninvalid tests: 369 passed, 105 failed\n","exit_code":1,"status":"failed"}}
{"type":"item.started","item":{"id":"item_16","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_16","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_17","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_17","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_18","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_18","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_19","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_19","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_20","type":"command_execution","command":"/bin/bash -lc 'gofmt -w internal/toml/decode.go && go test ./... && go build -o toml-decoder ./cmd/toml-decoder && DECODER=$PWD/toml-decoder sh sources/run_conformance.sh -run '\"'valid/array/*'\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_20","type":"command_execution","command":"/bin/bash -lc 'gofmt -w internal/toml/decode.go && go test ./... && go build -o toml-decoder ./cmd/toml-decoder && DECODER=$PWD/toml-decoder sh sources/run_conformance.sh -run '\"'valid/array/*'\"","aggregated_output":"ok \tgithub.com/owner/toml-decoder/cmd/toml-decoder\t(cached)\nok \tgithub.com/owner/toml-decoder/internal/toml\t0.015s\nharness: /home/barlo/.local/bin/toml-test toml-test v2.2.0; go1.24.6 linux/amd64; race=false; cgo=true\nFAIL valid/array/array\n line 5: unterminated array\n \n Exit 1\n\n input sent to parser-cmd (PID 740226):\n 1 │\u001b[0m ints = [1, 2, 3, ]\n 2 │\u001b[0m floats = [1.1, 2.1, 3.1]\n 3 │\u001b[0m strings = [\"a\", \"b\", \"c\"]\n 4 │\u001b[0m dates = [\n 5 │\u001b[0m \t1987-07-05T17:45:00Z,\n 6 │\u001b[0m \t1979-05-27T07:32:00,\n 7 │\u001b[0m \t2006-06-01,\n 8 │\u001b[0m \t11:00:00,\n 9 │\u001b[0m ]\n 10 │\u001b[0m comments = [\n 11 │\u001b[0m 1,\n 12 │\u001b[0m 2, #this is ok\n 13 │\u001b[0m ]\n\n output from parser-cmd (PID 740226) (stderr):\n 1 │\u001b[0m line 5: unterminated array\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\nFAIL valid/array/array-subtables\n line 2: table conflict\n \n Exit 1\n\n input sent to parser-cmd (PID 740185):\n 1 │\u001b[0m [[arr]]\n 2 │\u001b[0m [arr.subtab]\n 3 │\u001b[0m val=1\n 4 │\u001b[0m\n 5 │\u001b[0m [[arr]]\n 6 │\u001b[0m [arr.subtab]\n 7 │\u001b[0m val=2\n\n output from parser-cmd (PID 740185) (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/array/string-with-comma-02\n line 1: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 740187):\n 1 │\u001b[0m title = [\n 2 │\u001b[0m \"\"\"Client: XXXX,\n 3 │\u001b[0m Job: XXXX\"\"\",\n 4 │\u001b[0m \"Code: XXXX\"\n 5 │\u001b[0m ]\n\n output from parser-cmd (PID 740187) (stderr):\n 1 │\u001b[0m line 1: invalid syntax\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\ntoml-test v2.2.0 [/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/toml-decoder] [no encoder]\nskipped tests: 863\n valid tests: 18 passed, 3 failed\nencoder tests: no encoder command given\ninvalid tests: 0 passed, 0 failed\n","exit_code":1,"status":"failed"}}
{"type":"item.started","item":{"id":"item_21","type":"command_execution","command":"/bin/bash -lc \"printf 'dates = [\\\\n1987-07-05T17:45:00Z,\\\\n1979-05-27T07:32:00,\\\\n2006-06-01,\\\\n11:00:00,\\\\n]\\\\n' | ./toml-decoder; echo status:\"'$?'","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_21","type":"command_execution","command":"/bin/bash -lc \"printf 'dates = [\\\\n1987-07-05T17:45:00Z,\\\\n1979-05-27T07:32:00,\\\\n2006-06-01,\\\\n11:00:00,\\\\n]\\\\n' | ./toml-decoder; echo status:\"'$?'","aggregated_output":"{\"dates\":[{\"type\":\"datetime\",\"value\":\"1987-07-05T17:45:00Z\"},{\"type\":\"datetime-local\",\"value\":\"1979-05-27T07:32:00\"},{\"type\":\"date-local\",\"value\":\"2006-06-01\"},{\"type\":\"time-local\",\"value\":\"11:00:00\"}]}\nstatus:0\n","exit_code":0,"status":"completed"}}
{"type":"item.started","item":{"id":"item_22","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_22","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_23","type":"command_execution","command":"/bin/bash -lc \"sed -n '155,205p' internal/toml/decode.go\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_23","type":"command_execution","command":"/bin/bash -lc \"sed -n '155,205p' internal/toml/decode.go\"","aggregated_output":"\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\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\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 == '#' {\n\t\t\tfor i < len(s) && s[i] != '\\n' { i++ }\n\t\t\tif i < len(s) { out.WriteByte('\\n') }\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","exit_code":0,"status":"completed"}}
{"type":"item.started","item":{"id":"item_24","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_24","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_25","type":"command_execution","command":"/bin/bash -lc 'gofmt -w internal/toml/decode.go && go test ./... && go build -o toml-decoder ./cmd/toml-decoder && DECODER=$PWD/toml-decoder sh sources/run_conformance.sh -run '\"'valid/array/*'\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_25","type":"command_execution","command":"/bin/bash -lc 'gofmt -w internal/toml/decode.go && go test ./... && go build -o toml-decoder ./cmd/toml-decoder && DECODER=$PWD/toml-decoder sh sources/run_conformance.sh -run '\"'valid/array/*'\"","aggregated_output":"ok \tgithub.com/owner/toml-decoder/cmd/toml-decoder\t(cached)\nok \tgithub.com/owner/toml-decoder/internal/toml\t0.008s\nharness: /home/barlo/.local/bin/toml-test toml-test v2.2.0; go1.24.6 linux/amd64; race=false; cgo=true\nFAIL valid/array/array-subtables\n line 2: table conflict\n \n Exit 1\n\n input sent to parser-cmd (PID 740894):\n 1 │\u001b[0m [[arr]]\n 2 │\u001b[0m [arr.subtab]\n 3 │\u001b[0m val=1\n 4 │\u001b[0m\n 5 │\u001b[0m [[arr]]\n 6 │\u001b[0m [arr.subtab]\n 7 │\u001b[0m val=2\n\n output from parser-cmd (PID 740894) (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/array/string-with-comma-02\n line 1: invalid syntax\n \n Exit 1\n\n input sent to parser-cmd (PID 740898):\n 1 │\u001b[0m title = [\n 2 │\u001b[0m \"\"\"Client: XXXX,\n 3 │\u001b[0m Job: XXXX\"\"\",\n 4 │\u001b[0m \"Code: XXXX\"\n 5 │\u001b[0m ]\n\n output from parser-cmd (PID 740898) (stderr):\n 1 │\u001b[0m line 1: invalid syntax\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\ntoml-test v2.2.0 [/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/toml-decoder] [no encoder]\nskipped tests: 863\n valid tests: 19 passed, 2 failed\nencoder tests: no encoder command given\ninvalid tests: 0 passed, 0 failed\n","exit_code":1,"status":"failed"}}
{"type":"item.started","item":{"id":"item_26","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_26","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_27","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_27","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"completed"}}
{"type":"item.started","item":{"id":"item_28","type":"command_execution","command":"/bin/bash -lc 'gofmt -w internal/toml/decode.go && go test ./... && go build -o toml-decoder ./cmd/toml-decoder && DECODER=$PWD/toml-decoder sh sources/run_conformance.sh -run '\"'valid/array/*'\"","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_28","type":"command_execution","command":"/bin/bash -lc 'gofmt -w internal/toml/decode.go && go test ./... && go build -o toml-decoder ./cmd/toml-decoder && DECODER=$PWD/toml-decoder sh sources/run_conformance.sh -run '\"'valid/array/*'\"","aggregated_output":"ok \tgithub.com/owner/toml-decoder/cmd/toml-decoder\t(cached)\nok \tgithub.com/owner/toml-decoder/internal/toml\t0.008s\nharness: /home/barlo/.local/bin/toml-test toml-test v2.2.0; go1.24.6 linux/amd64; race=false; cgo=true\nFAIL valid/array/array-subtables\n line 6: table redefinition\n \n Exit 1\n\n input sent to parser-cmd (PID 741567):\n 1 │\u001b[0m [[arr]]\n 2 │\u001b[0m [arr.subtab]\n 3 │\u001b[0m val=1\n 4 │\u001b[0m\n 5 │\u001b[0m [[arr]]\n 6 │\u001b[0m [arr.subtab]\n 7 │\u001b[0m val=2\n\n output from parser-cmd (PID 741567) (stderr):\n 1 │\u001b[0m line 6: table redefinition\n 2 │\u001b[0m\n 3 │\u001b[0m Exit 1\n\n want:\n <empty>\n\ntoml-test v2.2.0 [/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/toml-decoder] [no encoder]\nskipped tests: 863\n valid tests: 20 passed, 1 failed\nencoder tests: no encoder command given\ninvalid tests: 0 passed, 0 failed\n","exit_code":1,"status":"failed"}}
{"type":"item.started","item":{"id":"item_29","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_29","type":"file_change","changes":[{"path":"/mnt/c/Users/barlo/projects/drydock/uat/Toml/runs/20260814.050011/build/toml/internal/toml/decode.go","kind":"update"}],"status":"completed"}}
{"type":"item.completed","item":{"id":"item_30","type":"agent_message","text":"The focused array slice is now down to one table-array bookkeeping issue, and the broader run exposed that the available parser needs substantially more TOML grammar work than this decoder-contract slice can safely complete. I’m doing the final build/test checks and recording the full harness verdict accurately rather than treating partial conformance as success."}}
{"type":"item.started","item":{"id":"item_31","type":"command_execution","command":"/bin/bash -lc 'gofmt -w internal/toml/decode.go && go test ./... && go vet ./... && go build -o toml-decoder ./cmd/toml-decoder; set +e; sh sources/full_test.sh > /tmp/toml-full.log 2>&1; status=$?; tail -n 12 /tmp/toml-full.log; echo FULL_STATUS:$status; git status --short'","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_31","type":"command_execution","command":"/bin/bash -lc 'gofmt -w internal/toml/decode.go && go test ./... && go vet ./... && go build -o toml-decoder ./cmd/toml-decoder; set +e; sh sources/full_test.sh > /tmp/toml-full.log 2>&1; status=$?; tail -n 12 /tmp/toml-full.log; echo FULL_STATUS:$status; git status --short'","aggregated_output":"ok \tgithub.com/owner/toml-decoder/cmd/toml-decoder\t(cached)\nok \tgithub.com/owner/toml-decoder/internal/toml\t0.003s\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\nFULL_STATUS:1\n","exit_code":0,"status":"completed"}}
{"type":"item.started","item":{"id":"item_32","type":"command_execution","command":"/bin/bash -lc 'git diff --stat; git status --short --untracked-files=all; git diff -- cmd/toml-decoder/main.go | head -80; git check-ignore -v cmd/toml-decoder/main.go internal/toml/decode.go cmd/toml-decoder/main_test.go || true'","aggregated_output":"","exit_code":null,"status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_32","type":"command_execution","command":"/bin/bash -lc 'git diff --stat; git status --short --untracked-files=all; git diff -- cmd/toml-decoder/main.go | head -80; git check-ignore -v cmd/toml-decoder/main.go internal/toml/decode.go cmd/toml-decoder/main_test.go || true'","aggregated_output":".gitignore:46:uat/*/runs/\tcmd/toml-decoder/main.go\n.gitignore:46:uat/*/runs/\tinternal/toml/decode.go\n.gitignore:46:uat/*/runs/\tcmd/toml-decoder/main_test.go\n","exit_code":0,"status":"completed"}}
{"type":"item.completed","item":{"id":"item_33","type":"agent_message","text":"RESULT: FAILED\n\nFILES CHANGED:\n- cmd/toml-decoder/main.go\n- cmd/toml-decoder/main_test.go\n- internal/toml/decode.go\n\nSUMMARY:\nImplemented stdin decoding, tagged JSON output, argument rejection, diagnostics, structured values, tables, arrays, and process-level tests. Unit tests and `go vet` pass.\n\nFull conformance: 158 valid passed / 47 failed; 345 invalid passed / 129 failed.\n\nBLOCKERS:\n- Full TOML 1.0 conformance is not yet passing.\n\nFAILURE_SUMMARY: Authoritative conformance suite failed.\nFAILURE_DETAIL: `sh sources/full_test.sh` completed with exit status 1 due to remaining parser grammar and table-semantics failures. Further TOML 1.0 parser implementation is required."}}
{"type":"turn.completed","usage":{"input_tokens":1355681,"cached_input_tokens":1288704,"cache_write_input_tokens":0,"output_tokens":12322,"reasoning_output_tokens":2152}}
Run artifact