commit 5b144c8e18a3f12c4f9f2d005ad76ee5bdd59c68
parent b636bbabf77676f7ab45a562a2070024719c620a
Author: triesap <tyson@radroots.org>
Date: Mon, 21 Sep 2026 14:06:57 +0000
core: fuzz bounded parsers and protocol inputs
Diffstat:
1 file changed, 33 insertions(+), 0 deletions(-)
diff --git a/tests/test_journeys.mojo b/tests/test_journeys.mojo
@@ -231,3 +231,36 @@ def test_seeded_guard_faults_are_detected() raises:
# revision bypass must be observable
assert_true(seeded_revision_check_bypass("r1", "r2"))
assert_true(not correct_revision_check("r1", "r2"))
+
+
+from hyf_stdio.codec import decode_request
+from json import loads as _json_loads2
+
+
+def test_bounded_parser_fuzz_never_crashes() raises:
+ var inputs = List[String]()
+ inputs.append("")
+ inputs.append("{")
+ inputs.append("[]")
+ inputs.append("null")
+ inputs.append('{"version":"one"}')
+ inputs.append('{"version":1,"request_id":"","capability":""}')
+ inputs.append('{"version":1,"request_id":"r","capability":"x","input":"not-object"}')
+ inputs.append('{"version":1,"request_id":"r","capability":"x","input":{},"extra":1}')
+ var handled = 0
+ for candidate in inputs:
+ try:
+ _ = decode_request(candidate)
+ except:
+ handled += 1
+ assert_equal(handled, len(inputs))
+
+ var malformed_json = List[String]()
+ malformed_json.append("{")
+ malformed_json.append("NaN")
+ malformed_json.append('[1,2,3,')
+ for candidate in malformed_json:
+ try:
+ _ = _json_loads2(candidate)
+ except:
+ pass