title: Fuzzing for boolean checks?
body: <p>I have a function that checks if a string is a valid representation of an hexadecimal number ('0xdEAdBEef' and that sort of strings.) Now I have a check on isHexaString(string) which returns a bool that is false when it's not. But running go -fuzz=Fuzz with a bunch of seeds and they the checks with errors, I am not getting anything meaningful (no panics). Does that mean my code (<code>isHexaString</code>) is okay?</p>
  <pre><code>func FuzzIsHexAddress(f *testing.F) {
      testcases := []string{
          &quot;0x5aaeb6053f3e94c9b9a09f33669435e7ef1beaed&quot;,
          &quot;5aaeb6053f3e94c9b9a09f33669435e7ef1beaed&quot;,
          &quot;0X5aaeb6053f3e94c9b9a09f33669435e7ef1beaed&quot;,
          &quot;0XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&quot;,
          &quot;0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&quot;,
      }
      for _, tc := range testcases {
          f.Add(tc) // Use f.Add to provide a seed corpus
      }
  
      f.Fuzz(func(t *testing.T, orig string) {
          if result := isHexaString(orig); !result {
              t.Errorf(&quot;IsHexAddress(%s) == %v&quot;,
                  orig, result)
          }
      })
  } 
  </code></pre>
  <p>What's the best way to fuzz test this type of unit tests?</p>
  <p>Oh and running on one package only triggers the whole unit tests to be ran (must be a behaviour of Go to want to run unit tests first?)</p>