tests: reset fIsBareMultisigStd after bare-multisig tests

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.

2. 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).

The new test was introduced in 1bb5d517aa616c1d5b5801d2ea36a2de5fb61eba.
This commit is contained in:
fanquake 2020-01-29 13:11:58 +08:00
parent 638239de75
commit 1b96a3cd1e
No known key found for this signature in database
GPG Key ID: 2EEB9F5CC09526C1

View File

@ -831,6 +831,7 @@ BOOST_AUTO_TEST_CASE(test_IsStandard)
reason.clear();
BOOST_CHECK(!IsStandardTx(CTransaction(t), reason));
BOOST_CHECK_EQUAL(reason, "bare-multisig");
fIsBareMultisigStd = DEFAULT_PERMIT_BAREMULTISIG;
}
BOOST_AUTO_TEST_SUITE_END()