You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c40cedd
Browse filesBrowse the repository at this point in the historyBrowse files
test: quarantine known upstream URI decoding failures
Exclude only the two saved reader seeds from normal replay and ignore their Jazzer deduplication tokens during reader fuzzing. Keep the source inputs, limit the quarantine to the affected engine version, and provide fuzzIncludeKnownFailures to reproduce both failures explicitly.
<p>Each target accepts at most 4096 input bytes and has a 10-second per-input timeout. The reader additionally limits depth to 20 and alias expansion weight to 64. Each fuzz task defaults to five minutes and a 1 GiB JVM heap. The daily workflow searches both targets and retains the generated corpus between runs; manual runs can select 30 seconds, five minutes or ten minutes per target. Test and coverage reports, findings and the corpus are uploaded even when a search fails.</p>
562
562
<p>Checked-in seeds live under <code>fuzzing/src/test/resources/com/charleskorn/kaml/fuzz</code>. Reader seeds contain UTF-8 YAML. Writer seeds start with an options byte, followed by UTF-8 text: bits 0–1 select the single-line style, bits 2–4 select the multiline style modulo five, bit 5 selects flow sequences and bit 6 disables default encoding. Their bytes are preserved by <code>.gitattributes</code>. Invalid UTF-8 is replaced before testing, so these targets test YAML and string handling rather than UTF-8 validation.</p>
563
563
<p>New coverage inputs go to <code>fuzzing/.cifuzz-corpus</code>; failing inputs are saved beside the checked-in seeds. Coverage reports and Java reproducers go to <code>fuzzing/build/fuzz</code>. Re-run <code>./gradlew :fuzzing:test</code> to reproduce a saved failure without further fuzzing. Reduce each finding to a small regression in <code>commonTest</code>, verify it on JVM, JS, Wasm and Native, and retain the original input as a corpus seed. A finite search without findings does not establish correctness for all inputs.</p>
564
+
<p>Two known upstream URI-decoding failures are temporarily quarantined: their saved seeds are excluded from normal replay, and the reader search ignores only their Jazzer stack fingerprints. The source seeds remain in the repository. The quarantine automatically ends when the configured SnakeYAML Engine version changes. Use <code>-PfuzzIncludeKnownFailures=true</code> with either <code>:fuzzing:test</code> or <code>:fuzzing:fuzzReader</code> to include them now. Other failures remain enabled.</p>
0 commit comments