Merge pull request #1232 from delta1/script-assets-test

test: re-enable and fix script assets test
This commit is contained in:
Pablo Greco 2023-06-05 14:14:27 -03:00 committed by GitHub
commit cfc10a5dd6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 6 deletions

View file

@ -86,7 +86,7 @@ DOCKER_EXEC df -h
if [ "$RUN_FUZZ_TESTS" = "true" ] || [ "$RUN_UNIT_TESTS" = "true" ] || [ "$RUN_UNIT_TESTS_SEQUENTIAL" = "true" ]; then
if [ ! -d ${DIR_QA_ASSETS} ]; then
DOCKER_EXEC git clone --depth=1 https://github.com/bitcoin-core/qa-assets ${DIR_QA_ASSETS}
DOCKER_EXEC git clone --depth=1 https://github.com/ElementsProject/qa-assets ${DIR_QA_ASSETS}
fi
export DIR_FUZZ_IN=${DIR_QA_ASSETS}/fuzz_seed_corpus/

View file

@ -1684,7 +1684,7 @@ static void AssetTest(const UniValue& test)
size_t idx = test["index"].get_int64();
unsigned int test_flags = ParseScriptFlags(test["flags"].get_str());
bool fin = test.exists("final") && test["final"].get_bool();
// ELEMENTS FIXME: update feature_taproot.py --dumptests to actually output these
// ELEMENTS: feature_taproot.py --dumptests outputs this field
uint256 hash_genesis_block = test.exists("hash_genesis_block") ? uint256S(test["hash_genesis_block"].get_str()) : uint256{};
if (test.exists("success")) {
@ -1725,6 +1725,8 @@ BOOST_AUTO_TEST_CASE(script_assets_test)
{
// See src/test/fuzz/script_assets_test_minimizer.cpp for information on how to generate
// the script_assets_test.json file used by this test.
// ELEMENTS: qa-assets repo can be cloned here https://github.com/ElementsProject/qa-assets
// then set DIR_UNIT_TEST_DATA env var to /path/to/qa-assets/unit_test_data when running this test
const char* dir = std::getenv("DIR_UNIT_TEST_DATA");
BOOST_WARN_MESSAGE(dir != nullptr, "Variable DIR_UNIT_TEST_DATA unset, skipping script_assets_test");
@ -1744,12 +1746,11 @@ BOOST_AUTO_TEST_CASE(script_assets_test)
BOOST_CHECK(tests.isArray());
BOOST_CHECK(tests.size() > 0);
/*
ELEMENTS: temporarily disabled until we implement the new Taproot sighash and upload new qa-assets
g_con_elementsmode = true;
for (size_t i = 0; i < tests.size(); i++) {
AssetTest(tests[i]);
}
*/
g_con_elementsmode = false;
file.close();
}

View file

@ -21,6 +21,7 @@ from test_framework.messages import (
CTxOut,
CTxOutValue,
CTxOutWitness,
ser_uint256,
uint256_from_str,
)
from test_framework.script import (
@ -1179,12 +1180,15 @@ def dump_json_test(tx, input_utxos, idx, success, failure):
# Determine flags to dump
flags = LEGACY_FLAGS if spender.comment.startswith("legacy/") or spender.comment.startswith("inactive/") else TAPROOT_FLAGS
hash_genesis_block = bytearray(ser_uint256(g_genesis_hash))
hash_genesis_block.reverse()
fields = [
("tx", tx.serialize().hex()),
("prevouts", [x.output.serialize().hex() for x in input_utxos]),
("index", idx),
("flags", flags),
("comment", spender.comment)
("comment", spender.comment),
("hash_genesis_block", hash_genesis_block.hex())
]
# The "final" field indicates that a spend should be always valid, even with more validation flags enabled