Repository navigation
tests: the escape-spelling cases really contain escapes - #45
Merged
Merged
Conversation
Two cases in the merged tests, and a sentence in canonical-json.md, were meant to carry a u-escape and did not: the tool that wrote them had turned the escape into the character it stands for, so the plan-noop 'escaped text' case compared the same text twice, the m4a 'escapes' spelling was identical to the plain one, and the spec said '"a" is "a"'. The canonicalizer was never wrong and the language-neutral vectors (written another way) do contain real escapes, but those two Go cases could not fail. The backslash is now a hex-escaped constant, the escapes row asserts that it carries a u-escape, and the spec sentence is restored. Shown with a mutant that stops decoding u-escapes: the two repaired cases fail, and they passed under the same mutant before. --- [signing-metadata] key = cic-my-sign-key signature = vault:v1:MEYCIQD15Hiy8IcjBJu4nTEPjqTsuYRv3mcSTUgz6AsdzvipIQIhAI0vYKOleMecnrrbV6/zuitxGCAsMGN1w83wAL9mml6C hash-algorithm = sha256 digest = TVa6vWHN8U7jxEzkCqpS8hnHd2/6h//soXCwxZ7bHcM= [certificate] -----BEGIN CERTIFICATE----- MIICBjCCAaygAwIBAgIUSnRMR6RPnEbg296XWPOqq/u5PCwwCgYIKoZIzj0EAwIw QzELMAkGA1UEBhMCSFUxGTAXBgNVBAoMEENlbnRyYWxJbmZyYUNvcmUxGTAXBgNV BAMMEENJQyBEZXZlbG9wZXIgQ0EwHhcNMjYwMzIwMTMyMjU5WhcNMjYxMjMxMTMy MjU5WjBFMQswCQYDVQQGEwJIVTEZMBcGA1UECgwQQ2VudHJhbEluZnJhQ29yZTEb MBkGA1UEAwwSR2Fib3IgWm9sdGFuIFNpbmtvMFkwEwYHKoZIzj0CAQYIKoZIzj0D AQcDQgAEIG2CVmTfmLB9pLLclj7YmP2eedAjklpy4LGrU2ijoiy6Xqpuybv7OgJe i+ez31s65NEV8+X/ByeX1cstR988z6N8MHowCQYDVR0TBAIwADAdBgNVHQ4EFgQU yZN6AIX/TNnIJ9GwAa/NRN3ujHAwHwYDVR0jBBgwFoAUXn6CHYzPUqU4JVP8g+OS WeDYjhcwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF BQcDBDAKBggqhkjOPQQDAgNIADBFAiEA+bFzXRoJ4PCQbhAAtpkcMjt0vNj5rEW0 lOMBGDNyaWkCIB1vmM7PcZzv/c9bIrxF5kqv6QXomouhByUfeNUTbpKW -----END CERTIFICATE-----
sinkog
marked this pull request as ready for review
November 8, 2026 13:50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Tests and one spec sentence only. Two cases in the merged tests, and a sentence in
canonical-json.md, were meant to carry a u-escape and did not: the tool that wrote them had turned the escape into the character it stands for.plan_noop_exactness_test.go, "escaped text": it compared the same text twice, so it could not fail.m4a_gate_test.go, the "escapes" spelling inTestEquivalentSpellingsOfDesiredAndObservedGiveOnePlanDigest: identical to the plain spelling.canonical-json.md: the sentence read("a" is "a")instead of("<u-escape of a>" is "a").The canonicalizer was never wrong, and the language-neutral vectors (
canonical_json_vectors.json,plan_digest_vectors.json, written by a different route) do contain real escapes, so the property itself was covered. These two Go cases and the sentence were not what they claimed to be.The change
backslashis a hex-escaped constant ("\x5c") inm4a_helpers_test.go, so nothing between the file and the compiler can rewrite an escape built on it.Evidence
devel). That is the point of the PR.Not in this PR
No behaviour change in the module. No
module.wasmchange. No merge without explicit owner GO.🤖 Generated with Claude Code