breakhoundcase files

Case index

Every case Sniff has worked

Four guides on the bugs breakhound looks for and on running it in CI, plus the eight oracles. Filter by topic or search for a rule.

12 of 12 files

Case file G-01Guide Time zone bugs in JavaScript datesHow mixing UTC and local getters breaks date code in other time zones, and how breakhound catches it. Dates and time4 min read Case file G-02Guide Surrogate pairs and split emojiWhy slicing a JavaScript string can cut an emoji in half, how to fix it, and how breakhound finds it. Unicode3 min read Case file G-03Guide Negative zero and lost minus signsHow -0 and Math.trunc drop the minus sign of values between -1 and 0, and how to catch it. Numbers3 min read Case file G-04Guide Running breakhound in GitHub ActionsA workflow that fails pull requests on new bugs, with annotations, a job summary and reproducible seeds. CI3 min read Case 01Oracle Split emojiA string result holds half of a surrogate pair, so an emoji is cut in two. Oracle id lone-surrogate-output. UnicodeRecorded on truncate Case 02Oracle Time zone dependenceThe same call answers differently when only the host TZ changes. Oracle id timezone-dependent. Dates and timeRecorded on yearLabel Case 03Oracle Crash on valid inputA value the types allow makes the engine throw a TypeError. Oracle id unexpected-crash. InvariantsRecorded on initials Case 04Oracle NaN leakFinite numbers go in and NaN comes out where a number was expected. Oracle id nan-leak. NumbersRecorded on average Case 05Oracle Broken roundtripA decode and encode pair does not give the input back. Oracle id roundtrip. InvariantsRecorded on encodeBase Case 06Oracle Not idempotentNormalizing twice changes the result again. Oracle id not-idempotent. InvariantsRecorded on slugify Case 07Oracle Lost minus signValues between -1 and 0 are printed as if they were positive. Oracle id negative-zero-sign. NumbersRecorded on formatFixed Case 08Oracle NondeterminismSame call, same input, a different result from hidden state. Oracle id nondeterministic. InvariantsRecorded on label

Suggestions

No case matches. Sniff is still searching.