Page MenuHomePhabricator

tests: reset fIsBareMultisigStd after bare-multisig tests
ClosedPublic

Authored by PiRK on Nov 9 2020, 07:23.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Commits
rABC89268501a650: tests: reset fIsBareMultisigStd after bare-multisig tests
Summary

This fixes a bug in the unit tests that was introduced in D8308

The bug this fixes is two-part.

1.The fIsBareMultisigStd global is being reused by other tests,
i.e script_p2sh_tests(set), after being set to false.

  1. The order our tests run in doesn't always? seem to be random,

which meant that the script_p2sh tests would only fail if they
were run in an order where transaction_tests ran first, mutating
the fIsBareMultisigStd global.

This doesn't seem to happen when running make check, but if you
run src/test/test_bitcoin and pass --random=99999, the failure
in script_p2sh:

test/script_p2sh_tests.cpp:200: error: in "script_p2sh_tests/set": txTo[1].IsStandard

will occur (on most systems).

This is a backport of Core PR18018

Test Plan

I tested with the random seed mentioned in the PR description (but this does not cause the bug on my system)

src/test/test_bitcoin --random=99999

I was able to reproduce the error with seed 874756305. This fails before this commit, and succeeded after:

src/test/test_bitcoin --log_level=test_suite --run_test=transaction_tests,script_p2sh_tests --random=874756305

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable