• frezik@midwest.social
    link
    fedilink
    arrow-up
    113
    ·
    10 months ago

    rand() will be infrequent < 10 (at least ten in 2^15 times, if not exponentially more), so automated tests are likely to pass. If they don’t, they’re likely to pass on the second try, and then everyone shrugs and continues. If it’s buried in 500 other lines, then it’s likely the code reviewer will give it all a quick scan and say “it’s fine”. It’s the three line diffs that get lots of scrutiny.

    In other words, you seem to have a lot more faith in the process than I do.

      • frezik@midwest.social
        link
        fedilink
        arrow-up
        26
        arrow-down
        1
        ·
        10 months ago

        If it’s a 16-bit integer platform, it might hit every once in a while.

        If it’s a 32-bit integer platform, it’ll hit very rarely.

        If it’s a 64-bit integer platform, someone would have to do the math with some reasonable assumptions, but I wouldn’t be surprised if it would never hit before the universe becomes nothing but black holes.

        • Morphit @feddit.uk
          link
          fedilink
          arrow-up
          12
          ·
          10 months ago

          The point being made is that it also depends how often the ‘true’ value gets used in the code. Tests might only evaluate it a few times per run, or they could cause billions of evaluations per run. You can’t know the probability of a test failure without knowing the occurrence rate of that expression.

          • killeronthecorner@lemmy.world
            link
            fedilink
            English
            arrow-up
            4
            ·
            edit-2
            10 months ago

            Yes you’re correct, this was the point I was making.

            To elaborate: could be 100s of times in a codebase, even 1000s, being executed in tests on local machines and build servers 100s of times a day, etc. etc.

            • themusicman@lemmy.world
              link
              fedilink
              arrow-up
              3
              arrow-down
              1
              ·
              10 months ago

              But it would hit a different place every time… Most developers wouldn’t even consider checking for this, and the chance of getting a repro in a debugger is slim to none