Page MenuHomePhabricator

[eCash] adapt functional tests to the XEC base unit and test it by default
ClosedPublic

Authored by majcosta on Jun 10 2021, 17:37.

Details

Summary

apart from a regenerated rpc_getblockstats.json file, we basically multiply every 8 digit amount by a million.

Test Plan
ninja all check
./test/functional/test_runner.py --extended

Diff Detail

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

Event Timeline

Failed tests logs:

====== Bitcoin ABC functional tests: abc_rpc_avalancheproof.py ======

------- Stdout: -------
2021-06-10T17:47:58.676000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210610_174533/abc_rpc_avalancheproof_648
2021-06-10T17:47:59.618000Z TestFramework (INFO): Make build a valid proof and restart the node to use it
2021-06-10T17:47:59.622000Z TestFramework (INFO): Test decodeavalancheproof RPC
2021-06-10T17:48:00.281000Z TestFramework (INFO): The proof verification should be delayed until IBD is complete
2021-06-10T17:48:00.291000Z TestFramework (INFO): A proof using the maximum number of stakes is accepted...
2021-06-10T17:48:08.464000Z TestFramework (INFO): A proof using too many stakes should be rejected...
2021-06-10T17:48:08.885000Z TestFramework (INFO): Generate delegations for the proof
2021-06-10T17:48:08.935000Z TestFramework (INFO): Check the verifyavalancheproof and sendavalancheproof RPCs
2021-06-10T17:48:08.938000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/util.py", line 146, in try_rpc
    fun(*args, **kwds)
  File "/work/test/functional/test_framework/coverage.py", line 48, in __call__
    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
  File "/work/test/functional/test_framework/authproxy.py", line 159, in __call__
    raise JSONRPCException(response['error'], status)
test_framework.authproxy.JSONRPCException: The proof is invalid: amount-below-dust-threshold, 10.00 BCHA < 1000000.00 BCHA (-8)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 126, in main
    self.run_test()
  File "/work/test/functional/abc_rpc_avalancheproof.py", line 263, in run_test
    check_rpc_failure(missing_stake, "utxo-missing-or-spent")
  File "/work/test/functional/abc_rpc_avalancheproof.py", line 258, in check_rpc_failure
    rpc, proof)
  File "/work/test/functional/test_framework/util.py", line 137, in assert_raises_rpc_error
    assert try_rpc(code, message, fun, *args, **kwds), "No exception raised"
  File "/work/test/functional/test_framework/util.py", line 156, in try_rpc
    message, e.error['message']))
AssertionError: Expected substring not found in error message:
substring: 'The proof is invalid: utxo-missing-or-spent'
error message: 'The proof is invalid: amount-below-dust-threshold, 10.00 BCHA < 1000000.00 BCHA'.
2021-06-10T17:48:08.989000Z TestFramework (INFO): Stopping nodes
2021-06-10T17:48:09.241000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210610_174533/abc_rpc_avalancheproof_648
2021-06-10T17:48:09.241000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210610_174533/abc_rpc_avalancheproof_648/test_framework.log
2021-06-10T17:48:09.241000Z TestFramework (ERROR): 
2021-06-10T17:48:09.241000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20210610_174533/abc_rpc_avalancheproof_648' to consolidate all logs
2021-06-10T17:48:09.241000Z TestFramework (ERROR): 
2021-06-10T17:48:09.241000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2021-06-10T17:48:09.241000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2021-06-10T17:48:09.241000Z TestFramework (ERROR):

Each failure log is accessible here:
Bitcoin ABC functional tests: abc_rpc_avalancheproof.py

Failed tests logs:

====== Bitcoin ABC functional tests: abc_rpc_avalancheproof.py ======

------- Stdout: -------
2021-06-10T17:49:33.227000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_  _20210610_174857/abc_rpc_avalancheproof_132
2021-06-10T17:49:34.437000Z TestFramework (INFO): Make build a valid proof and restart the node to use it
2021-06-10T17:49:34.442000Z TestFramework (INFO): Test decodeavalancheproof RPC
2021-06-10T17:49:35.754000Z TestFramework (INFO): The proof verification should be delayed until IBD is complete
2021-06-10T17:49:35.758000Z TestFramework (INFO): Generate delegations for the proof
2021-06-10T17:49:35.852000Z TestFramework (INFO): Check the verifyavalancheproof and sendavalancheproof RPCs
2021-06-10T17:49:35.855000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/util.py", line 146, in try_rpc
    fun(*args, **kwds)
  File "/work/test/functional/test_framework/coverage.py", line 48, in __call__
    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
  File "/work/test/functional/test_framework/authproxy.py", line 159, in __call__
    raise JSONRPCException(response['error'], status)
test_framework.authproxy.JSONRPCException: The proof is invalid: amount-below-dust-threshold, 10.00 BCHA < 1000000.00 BCHA (-8)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 126, in main
    self.run_test()
  File "/work/test/functional/abc_rpc_avalancheproof.py", line 263, in run_test
    check_rpc_failure(missing_stake, "utxo-missing-or-spent")
  File "/work/test/functional/abc_rpc_avalancheproof.py", line 258, in check_rpc_failure
    rpc, proof)
  File "/work/test/functional/test_framework/util.py", line 137, in assert_raises_rpc_error
    assert try_rpc(code, message, fun, *args, **kwds), "No exception raised"
  File "/work/test/functional/test_framework/util.py", line 156, in try_rpc
    message, e.error['message']))
AssertionError: Expected substring not found in error message:
substring: 'The proof is invalid: utxo-missing-or-spent'
error message: 'The proof is invalid: amount-below-dust-threshold, 10.00 BCHA < 1000000.00 BCHA'.
2021-06-10T17:49:35.857000Z TestFramework (INFO): Stopping nodes
2021-06-10T17:49:36.008000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_  _20210610_174857/abc_rpc_avalancheproof_132
2021-06-10T17:49:36.008000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_  _20210610_174857/abc_rpc_avalancheproof_132/test_framework.log
2021-06-10T17:49:36.008000Z TestFramework (ERROR): 
2021-06-10T17:49:36.008000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_  _20210610_174857/abc_rpc_avalancheproof_132' to consolidate all logs
2021-06-10T17:49:36.008000Z TestFramework (ERROR): 
2021-06-10T17:49:36.009000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2021-06-10T17:49:36.009000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2021-06-10T17:49:36.009000Z TestFramework (ERROR):

Each failure log is accessible here:
Bitcoin ABC functional tests: abc_rpc_avalancheproof.py

Failed tests logs:

====== Bitcoin ABC functional tests: abc_rpc_avalancheproof.py ======

------- Stdout: -------
2021-06-10T17:52:07.830000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210610_175016/abc_rpc_avalancheproof_517
2021-06-10T17:52:08.136000Z TestFramework (INFO): Make build a valid proof and restart the node to use it
2021-06-10T17:52:08.139000Z TestFramework (INFO): Test decodeavalancheproof RPC
2021-06-10T17:52:08.752000Z TestFramework (INFO): The proof verification should be delayed until IBD is complete
2021-06-10T17:52:08.755000Z TestFramework (INFO): A proof using the maximum number of stakes is accepted...
2021-06-10T17:52:11.270000Z TestFramework (INFO): A proof using too many stakes should be rejected...
2021-06-10T17:52:11.487000Z TestFramework (INFO): Generate delegations for the proof
2021-06-10T17:52:11.538000Z TestFramework (INFO): Check the verifyavalancheproof and sendavalancheproof RPCs
2021-06-10T17:52:11.540000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/util.py", line 146, in try_rpc
    fun(*args, **kwds)
  File "/work/test/functional/test_framework/coverage.py", line 48, in __call__
    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
  File "/work/test/functional/test_framework/authproxy.py", line 159, in __call__
    raise JSONRPCException(response['error'], status)
test_framework.authproxy.JSONRPCException: The proof is invalid: amount-below-dust-threshold, 10.00 BCHA < 1000000.00 BCHA (-8)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 126, in main
    self.run_test()
  File "/work/test/functional/abc_rpc_avalancheproof.py", line 263, in run_test
    check_rpc_failure(missing_stake, "utxo-missing-or-spent")
  File "/work/test/functional/abc_rpc_avalancheproof.py", line 258, in check_rpc_failure
    rpc, proof)
  File "/work/test/functional/test_framework/util.py", line 137, in assert_raises_rpc_error
    assert try_rpc(code, message, fun, *args, **kwds), "No exception raised"
  File "/work/test/functional/test_framework/util.py", line 156, in try_rpc
    message, e.error['message']))
AssertionError: Expected substring not found in error message:
substring: 'The proof is invalid: utxo-missing-or-spent'
error message: 'The proof is invalid: amount-below-dust-threshold, 10.00 BCHA < 1000000.00 BCHA'.
2021-06-10T17:52:11.591000Z TestFramework (INFO): Stopping nodes
2021-06-10T17:52:11.793000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210610_175016/abc_rpc_avalancheproof_517
2021-06-10T17:52:11.793000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210610_175016/abc_rpc_avalancheproof_517/test_framework.log
2021-06-10T17:52:11.793000Z TestFramework (ERROR): 
2021-06-10T17:52:11.793000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210610_175016/abc_rpc_avalancheproof_517' to consolidate all logs
2021-06-10T17:52:11.793000Z TestFramework (ERROR): 
2021-06-10T17:52:11.793000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2021-06-10T17:52:11.793000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2021-06-10T17:52:11.793000Z TestFramework (ERROR):
====== Bitcoin ABC functional tests with the next upgrade activated: abc_rpc_avalancheproof.py ======

------- Stdout: -------
2021-06-10T17:55:28.562000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210610_175334/abc_rpc_avalancheproof_398
2021-06-10T17:55:28.866000Z TestFramework (INFO): Make build a valid proof and restart the node to use it
2021-06-10T17:55:28.870000Z TestFramework (INFO): Test decodeavalancheproof RPC
2021-06-10T17:55:29.382000Z TestFramework (INFO): The proof verification should be delayed until IBD is complete
2021-06-10T17:55:29.399000Z TestFramework (INFO): A proof using the maximum number of stakes is accepted...
2021-06-10T17:55:32.151000Z TestFramework (INFO): A proof using too many stakes should be rejected...
2021-06-10T17:55:32.347000Z TestFramework (INFO): Generate delegations for the proof
2021-06-10T17:55:32.382000Z TestFramework (INFO): Check the verifyavalancheproof and sendavalancheproof RPCs
2021-06-10T17:55:32.385000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/util.py", line 146, in try_rpc
    fun(*args, **kwds)
  File "/work/test/functional/test_framework/coverage.py", line 48, in __call__
    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
  File "/work/test/functional/test_framework/authproxy.py", line 159, in __call__
    raise JSONRPCException(response['error'], status)
test_framework.authproxy.JSONRPCException: The proof is invalid: amount-below-dust-threshold, 10.00 BCHA < 1000000.00 BCHA (-8)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 126, in main
    self.run_test()
  File "/work/test/functional/abc_rpc_avalancheproof.py", line 263, in run_test
    check_rpc_failure(missing_stake, "utxo-missing-or-spent")
  File "/work/test/functional/abc_rpc_avalancheproof.py", line 258, in check_rpc_failure
    rpc, proof)
  File "/work/test/functional/test_framework/util.py", line 137, in assert_raises_rpc_error
    assert try_rpc(code, message, fun, *args, **kwds), "No exception raised"
  File "/work/test/functional/test_framework/util.py", line 156, in try_rpc
    message, e.error['message']))
AssertionError: Expected substring not found in error message:
substring: 'The proof is invalid: utxo-missing-or-spent'
error message: 'The proof is invalid: amount-below-dust-threshold, 10.00 BCHA < 1000000.00 BCHA'.
2021-06-10T17:55:32.436000Z TestFramework (INFO): Stopping nodes
2021-06-10T17:55:32.638000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210610_175334/abc_rpc_avalancheproof_398
2021-06-10T17:55:32.638000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210610_175334/abc_rpc_avalancheproof_398/test_framework.log
2021-06-10T17:55:32.638000Z TestFramework (ERROR): 
2021-06-10T17:55:32.638000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20210610_175334/abc_rpc_avalancheproof_398' to consolidate all logs
2021-06-10T17:55:32.638000Z TestFramework (ERROR): 
2021-06-10T17:55:32.638000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2021-06-10T17:55:32.638000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2021-06-10T17:55:32.638000Z TestFramework (ERROR):

Each failure log is accessible here:
Bitcoin ABC functional tests: abc_rpc_avalancheproof.py
Bitcoin ABC functional tests with the next upgrade activated: abc_rpc_avalancheproof.py

fixing failure

a few new tests were added since I worked on the diff. their Amounts have been multiplied by a million as well.

For now I reviewed up-to and including rpc_estimatefee.py

test/functional/data/rpc_getblockstats.json
184 ↗(On Diff #28853)

What's happening with the 9 turning into a 8, here?

test/functional/mempool_limit.py
52 ↗(On Diff #28853)

or 100 ?

81 ↗(On Diff #28853)

100?

test/functional/mempool_packages.py
64 ↗(On Diff #28853)

100.00

test/functional/mempool_unbroadcast.py
48 ↗(On Diff #28853)

100.00

54 ↗(On Diff #28853)

100.00

113 ↗(On Diff #28853)

100.00

thank you for the corrections.

  • updated mempool_limit.py, mempool_packages.py and mempool_unbroadcast.py
  • I've also ditched zeroes after the decimal where they aren't needed in the new unit.
test/functional/data/rpc_getblockstats.json
184 ↗(On Diff #28853)

oh, this file wasn't manually edited, it's automatically generated by running rpc_getblockstats with the --gen-test-data options

OK up to rpc_txoutproof.py

PiRK requested changes to this revision.Jun 11 2021, 07:37
PiRK added inline comments.
test/functional/wallet_txn_clone.py
81 ↗(On Diff #28855)

3 conversions missing, here

This revision now requires changes to proceed.Jun 11 2021, 07:37

corrections to wallet_txn_clone.py

  • correct two erroneous amounts in wallet_txn_clone to use XEC
  • changed the repr method for CTxOut from using 8 to 2 decimals
This revision is now accepted and ready to land.Jun 11 2021, 10:02