<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Testing on BXM.net</title>
    <link>https://bxm.net/tags/testing/</link>
    <description>Recent content in Testing on BXM.net</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 22 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://bxm.net/tags/testing/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How BXM Was Tested With Two Million Damaged Inputs, Sixteen Processes and a Killed Run</title>
      <link>https://bxm.net/how-bxm-was-tested-with-two-million-damaged-inputs-sixteen-processes-and-a-killed-run/</link>
      <pubDate>Thu, 22 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://bxm.net/how-bxm-was-tested-with-two-million-damaged-inputs-sixteen-processes-and-a-killed-run/</guid>
      <description>&lt;p&gt;Each BXM tool makes one main promise. Canon promises that every value has exactly one encoding. Memo promises that it never hands you a wrong or half-restored output. Most of the testing went into trying to break those two promises, and the results are recorded in the repository&amp;rsquo;s &lt;code&gt;test/results&lt;/code&gt; folder by a script anyone can run again.&lt;/p&gt;&#xA;&lt;h2 id=&#34;canon&#34;&gt;Canon&lt;/h2&gt;&#xA;&lt;p&gt;The property behind Canon is short to state: if the decoder accepts a byte string, encoding the decoded value gives back exactly the same bytes. If that holds, no value can have a second accepted spelling.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Replaying 13 Commits Through Memo Cut Test Time From 228 to 79 Seconds and Turned Up Two Flaky Tests</title>
      <link>https://bxm.net/replaying-13-commits-through-memo-cut-test-time-from-228-to-79-seconds-and-turned-up-two-flaky-tests/</link>
      <pubDate>Thu, 22 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://bxm.net/replaying-13-commits-through-memo-cut-test-time-from-228-to-79-seconds-and-turned-up-two-flaky-tests/</guid>
      <description>&lt;p&gt;BXM&amp;rsquo;s repository has two packages with their own test suites: Canon, tested with &lt;code&gt;cargo test&lt;/code&gt;, and Memo, tested with &lt;code&gt;go test&lt;/code&gt;. Most commits touch one of them, or neither. A docs change or a new JavaScript build script doesn&amp;rsquo;t change either suite&amp;rsquo;s result, yet a plain CI job runs both every time.&lt;/p&gt;&#xA;&lt;p&gt;So we replayed the repository&amp;rsquo;s own history. All 13 commits from 0.1.0 to the end of 0.3.0 were checked out one after another, and both suites ran at each one. That happened twice: once plain, and once with each suite behind Memo. Canon&amp;rsquo;s suite takes &lt;code&gt;canon/**&lt;/code&gt; and the spec&amp;rsquo;s test vectors as inputs. Memo&amp;rsquo;s takes &lt;code&gt;memo/**&lt;/code&gt;. Memo needs a declared output, so each suite writes its log to a file and that file is the output.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
