forked from dashpay/dash
-
Notifications
You must be signed in to change notification settings - Fork 725
[Tests] Functional Tests Suite Overhaul #1218
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
random-zebra
merged 38 commits into
PIVX-Project:master
from
random-zebra:2019_functionalTests_overhaul
Jan 6, 2020
Merged
[Tests] Functional Tests Suite Overhaul #1218
random-zebra
merged 38 commits into
PIVX-Project:master
from
random-zebra:2019_functionalTests_overhaul
Jan 6, 2020
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
backports bitcoin/bitcoin 4aabadb
in test_framework.util: - set_spork - get_spork - activate_spork - deactivate_spork - is_spork_active And update zerocoin_valid_public_spend to use them
Unify code used to manually assemble PoS blocks (get_prevouts, stake_block) and fix it in: - p2p_pos_fakestake - p2p_pos_fakestake_accepted - p2p_pos_doublespend - feature_coldstaking
- reorg parameters check and mints fetch - add isPublicSpend argument to spendzerocoinmints for regtest - us v2 spends in createrawzerocoinstake and lock it for regtest - uniform naming for public spend flag to isPublicSpend
This leaves more room to mint, mature and perform v2 spends from PoS cache
Set nMintRequiredConfirmations and nZerocoinRequiredStakeDepth to 10. Also update zerocoin_valid_public_spend.py
- fix test with updated rpc functions and chain params - re add it to test_runner
txid and time fields can be grouped outside of the mints list as it is the same transaction.
Mint zerocoins with node2 and node3 in PoS cache - node2 mints one coin for each denomination at block 301 - node3 mints one coin for each denomination at block 302 So they both have 6666 mature zPIV at block 330 (but node3 can't spend them as it holds the last mints added to the accumulators). This allows us to save some time in all zerocoin tests.
Use PoS cache with pre-minted zerocoins in node2. Test also v2 spends. Test balances.
Add ability to create v2 spends on regtest and rename the function.
Also trivial fix btc-->pivx in createrawtransaction help Also move coldStaking test from 'feature' group to 'mining_pos' group.
public zpiv spends (v3 and v4) cannot be used to stake. No reason to add these expensive tests to the test runner anymore.
When the mint selected for double spend is the 5000-denom one, the spend (createrawzerocoinspend) fails for "not enough balance" as zerocoin remaining balance is only 1666.
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
This leaves more room to mint, mature and perform v2 spends from PoS cache Github-Pull: PIVX-Project#1218 Rebased-From: 991510a
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: acf8fea
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Set nMintRequiredConfirmations and nZerocoinRequiredStakeDepth to 10. Also update zerocoin_valid_public_spend.py Github-Pull: PIVX-Project#1218 Rebased-From: 4163c47
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
- fix test with updated rpc functions and chain params - re add it to test_runner Github-Pull: PIVX-Project#1218 Rebased-From: 78e2def
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
txid and time fields can be grouped outside of the mints list as it is the same transaction. Github-Pull: PIVX-Project#1218 Rebased-From: f80b5e9
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Mint zerocoins with node2 and node3 in PoS cache - node2 mints one coin for each denomination at block 301 - node3 mints one coin for each denomination at block 302 So they both have 6666 mature zPIV at block 330 (but node3 can't spend them as it holds the last mints added to the accumulators). This allows us to save some time in all zerocoin tests. Github-Pull: PIVX-Project#1218 Rebased-From: 0b27009
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Use PoS cache with pre-minted zerocoins in node2. Test also v2 spends. Test balances. Github-Pull: PIVX-Project#1218 Rebased-From: 5821e0b
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Add ability to create v2 spends on regtest and rename the function. Github-Pull: PIVX-Project#1218 Rebased-From: 4b42592
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: b3f0c59
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: d2c1ef2
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: 0417f66
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: 8949e38
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: 384c636
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Also trivial fix btc-->pivx in createrawtransaction help Also move coldStaking test from 'feature' group to 'mining_pos' group. Github-Pull: PIVX-Project#1218 Rebased-From: 0f2349b
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: cb54381
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
public zpiv spends (v3 and v4) cannot be used to stake. No reason to add these expensive tests to the test runner anymore. Github-Pull: PIVX-Project#1218 Rebased-From: d24626c
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
When the mint selected for double spend is the 5000-denom one, the spend (createrawzerocoinspend) fails for "not enough balance" as zerocoin remaining balance is only 1666. Github-Pull: PIVX-Project#1218 Rebased-From: 2d7724a
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: b3af5bd
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: ddf18d9
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: 039c220
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
now tests in in mining_pos_reorg Github-Pull: PIVX-Project#1218 Rebased-From: c304007
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: 35ea5bc
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: 6a2a3b9
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
- start only working nodes (4). Copy blockchain to other nodes at the end. - change PoS schedule to have less sync_blocks operations Average caches generation time ~500 seconds. Github-Pull: PIVX-Project#1218 Rebased-From: ad65ac5
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
thus remove the edge case resulting in exception ""You don't have enough Zerocoins in your wallet" when the double. Github-Pull: PIVX-Project#1218 Rebased-From: 7851bc9
Fuzzbawls
pushed a commit
to Fuzzbawls/PIVX
that referenced
this pull request
Jan 11, 2020
Github-Pull: PIVX-Project#1218 Rebased-From: 1fb9dd3
Fuzzbawls
added a commit
that referenced
this pull request
Jan 12, 2020
d209897 [RPC] Notate all account stuff as deprecated (Fuzzbawls) 10bbf9e [Qt] Initialize isLoading to false for CS view (Fuzzbawls) b7c63b8 [Trivial] Set log2_work decimals to 16 in the logs Github-Pull: #1252 Rebased-From: d83e67c (random-zebra) a80e2e9 [RPC] Fix getstakingstatus removing compile-time conditional (random-zebra) 876d393 [Wallet][Cleanup][GUI] minor updates to staking status (random-zebra) f9f437a [Wallet] CStakerStatus: save a pointer to the tip instead of the hash Github-Pull: #1245 Rebased-From: 968d861 (random-zebra) f9022cf [GUI] Refactor updateStakingStatus and set it to inactive after locking (random-zebra) cd6f6cb [Trivial] Fix lastHashTime type in miner Github-Pull: #1245 Rebased-From: d2aebc5 (random-zebra) 6845d18 [RPC] Add CStakerStatus data to getstakingstatus Github-Pull: #1245 Rebased-From: b8ed76f (random-zebra) b63d963 [PoS] Lock cs_main when getting chainActive data in miner Github-Pull: #1245 Rebased-From: d2d5f08 (random-zebra) 6fac9b9 [Cleanup] Remove unused variables in miner (random-zebra) 7128945 [Core][PoS] Replace mapHashedBlocks and nLastCoinStakeSearchInterval (random-zebra) c546ac1 [Cleanup][Wallet] Remove unused nSearchInterval field in CreateCoinStake Github-Pull: #1245 Rebased-From: 6b2b813 (random-zebra) 5dbda15 [GUI] Every masternode action checking for tier two network synced. (furszy) 499dac8 [Trivial][RPC] Fix example line in importprivkey help (missing arg) Github-Pull: #1242 Rebased-From: ce93872 (random-zebra) 4133401 [Tests] Add wallet_import_stakingaddress to test runner (random-zebra) 8ac5cbb [Tests] Add functional test for import staking address/key Github-Pull: #1242 Rebased-From: d1ebf2e (random-zebra) bb9426a [RPC] Add coldstaking address support in importaddress Github-Pull: #1242 Rebased-From: 3bd5579 (random-zebra) 3084143 [RPC] Add coldstaking address support in importprivkey Github-Pull: #1242 Rebased-From: 144ec35 (random-zebra) bb021af [Model][Wallet][Performance] TxRecord updateStatus not accepted stake status fix + performance improvements. (furszy) 1f0823f [GUI][Model] Start missing masternodes flow implemented. (furszy) 90639d1 [GUI] Masternodes start all flow implemented. (furszy) 14f3220 [Core] Don't log missing MNs during CBudgetProposal::CleanAndRemove (random-zebra) 7e1b908 [GUI] Translator class abstracted to be able to reuse the ProcessSendCoinsReturn method in the masternodeswizard class. (furszy) fa73ae3 [GUI] Masternode creation wizard, creation fail event properly detailing the failure cause in the subsequent error dialog. (furszy) 447265f [Wallet] Graceful shutdown in the unlock corrupted wallet, showing the proper error message in screen. (furszy) 81cbe1d [Cleanup][Tests] Remove precompute option in default framework node conf Github-Pull: #1237 Rebased-From: 51cbb00 (random-zebra) ded2cc2 [Cleanup] remove fPrecompute option in SelectStakeCoins (random-zebra) 391c9e6 [Cleanup][Tests] Remove crazy useful unittest created by "Tom" Github-Pull: #1237 Rebased-From: 0187f0d (random-zebra) 67411b5 [Cleanup][Wallet] Remove zpiv spend cache from zpiv tracker Github-Pull: #1237 Rebased-From: 29a934c (random-zebra) 7084840 [Cleanup][DB] Remove DB functions for zerocoin precomputing Github-Pull: #1237 Rebased-From: bd3eebb (random-zebra) 1e93feb [Cleanup] Remove zPIV precomputing global variables. Github-Pull: #1237 Rebased-From: 837f4e2 (random-zebra) 4de0dec [Cleanup][Qt] remove COLUMN_PRECOMPUTE from zpivcontroldialog Github-Pull: #1237 Rebased-From: 520284e (random-zebra) 3394078 [Cleanup] Init: remove precompute-related helps in strUsage Github-Pull: #1237 Rebased-From: 2585532 (random-zebra) 7d03510 [Cleanup] Init: remove "precompute" debug category (not used anywhere) Github-Pull: #1237 Rebased-From: fbcf37b (random-zebra) 9ea6aa2 [Tests][BUG] Fix RPC_TRANSACTION_REJECTED in mining_pos_reorg Github-Pull: #1218 Rebased-From: 1fb9dd3 (random-zebra) 44c60dc [Tests] sort exported mints by denom in zc_spends and zc_wrapped_serials (random-zebra) 0538d25 [Tests] Speed up cache generation (random-zebra) 3abe8a8 [Travis][Tests] Add travis ping during create_cache Github-Pull: #1218 Rebased-From: 6a2a3b9 (random-zebra) e6080f4 [RPC][BUG] Remove extra lock in spendrawzerocoin Github-Pull: #1218 Rebased-From: 35ea5bc (random-zebra) 88ddf09 [Tests][Trivial] remove stale zerocoin_publicSpend_reorg (random-zebra) 5c70582 [Tests] Fix and re-enable wrapping serials test Github-Pull: #1218 Rebased-From: 039c220 (random-zebra) fc7069a [RPC] Enable v2 spending on regtest with spendrawzerocoin Github-Pull: #1218 Rebased-From: ddf18d9 (random-zebra) 5a3951a [Tests] Sort test_runner list by execution time (and comment it there) Github-Pull: #1218 Rebased-From: b3af5bd (random-zebra) 248adc5 [Tests] Fix edge case for double spends in zerocoin_spends.py (random-zebra) 66f3cb1 [Tests] Remove zpiv tests from fakestake (random-zebra) 11bc853 [Trivial] Rename base test class in p2p_time_offset functional test Github-Pull: #1218 Rebased-From: cb54381 (random-zebra) 8a25781 [Tests] Refactor POS reorg test (random-zebra) ddc6b8a [Tests] Prefix "_pos_" tests with "_mining_" Github-Pull: #1218 Rebased-From: 384c636 (random-zebra) 97da652 [Tests] Fix wallet_reorg-stake functional test Github-Pull: #1218 Rebased-From: 8949e38 (random-zebra) 807b4ab [Consensus] Fix fake-stake spent serials detection on forked chains Github-Pull: #1218 Rebased-From: 0417f66 (random-zebra) 24bee71 [Tests] Unify and complete FakeStake test suite in a single testcase. Github-Pull: #1218 Rebased-From: d2c1ef2 (random-zebra) 0dc9e17 [Tests] Refactor PIVX tools in test_framework, blocktools and utils Github-Pull: #1218 Rebased-From: b3f0c59 (random-zebra) 07a7081 [RPC][Tests] createrawzerocoinpublicspend --> createrawzerocoinspend (random-zebra) ccd5b80 [Tests] Refactor zerocoin_valid_public_spend into zerocoin_spends (random-zebra) 0b551a9 [Tests] Add zerocoins to PoS cache (random-zebra) ae841ed [RPC] use json object as output of mintzerocoin (random-zebra) 5539b01 [Tests] Restore p2p_zpos_fakestake (random-zebra) 8f84377 [Tests] Lower zerocoin confirmations on regtest (random-zebra) f36a035 [Tests] Fix zerocoin_valid_public_spend with new v3 activation height Github-Pull: #1218 Rebased-From: acf8fea (random-zebra) d7804b7 [Tests] Set public spend activation for regtest to block 400 (from 350) (random-zebra) e8b7ce3 [RPC] Refactor spendzerocoin/spendzcoinmints, fix createrawzerocoinstake (random-zebra) 9134f40 [Tests] Introduce PIVX specific blocktools (random-zebra) 56cfbdd [Tests] Cleanup rpc_spork functional test with new util functions Github-Pull: #1218 Rebased-From: 68ce4e9 (random-zebra) e5e6f28 [Tests] Define spork util functions (random-zebra) ac6f95e [Tests] Use PoS_cache in zerocoin_public_spend Github-Pull: #1218 Rebased-From: 383ab89 (random-zebra) e093f7b [RPC] Add mint txid to spendrawzerocoin (and look for it if empty) Github-Pull: #1218 Rebased-From: 422f003 (random-zebra) 8ebd65a [Trivial] Detailed debug log for received spork messages Github-Pull: #1218 Rebased-From: afabe8c (random-zebra) f669844 [Tests] Define a new 'PoS' cache with 330-blocks chain Github-Pull: #1218 Rebased-From: 80306e1 (random-zebra) 3c84efd [Tests] Fix CheckBlockHeader version after block 300 for regtest Github-Pull: #1218 Rebased-From: af05235 (random-zebra) 3b8de3a [Tests] Have combine_logs default to most recent test dir (random-zebra) baa97af [Tests] rename base class to PivxTestFramework Github-Pull: #1218 Rebased-From: 8f668b6 (random-zebra) ab553bf [Tests] Debug assert_raises_rpc_error Github-Pull: #1218 Rebased-From: 261bb6a (random-zebra) 76531e2 [Cleanup] Replace addr purpose strings with AddressBookPurpose constants Github-Pull: #1238 Rebased-From: 768694f (random-zebra) 09120ce [RPC] Fix Base58Type in ListaddressesForPurpose (random-zebra) 7e32b1e [RPC] Add optional bool arg to listdelegators to show blacklisted addrs Github-Pull: #1238 Rebased-From: 34e871c (random-zebra) 8f01bce [RPC] Add optional str argument to delegatoradd for address label Github-Pull: #1238 Rebased-From: 21f1b9d (random-zebra) bb1c8f2 [Docs] Update build-unix.md (Fuzzbawls) f035a4a [Cleanup] Remove precomputing (Fuzzbawls) ee4aed3 [Trivial] Adding load txs on demand todo text. (furszy) 784094b [Startup] Decrease the amount of blocks checked for corruption in the startup. (furszy) 3b67bc6 [GUI][Performance] Optimizations to every list view load in the GUI. (furszy) 7da7eb7 [Model] Maximum amount of loaded record in ram, preventing any self-spamming. (furszy) aeaf418 [GUI] Adding the capability to decrease the screen size for smaller screens support. (furszy) 2a5d14d [Wallet] IsEquivalentTo commented for now to not add an extra round of serialization + hash calculation in every read transaction in the wallet startup. (furszy) f7a1420 Minor changes within 4.0 wallet FAQ Github-Pull: #1224 Rebased-From: 43b783f (NoobieDev12) 053d365 [Trivial] Remove spammy log in in StakeV1 Github-Pull: #1233 Rebased-From: f9857f7 (random-zebra) 16441e9 [GUI][Trivial] Minor edits to written content Github-Pull: #1184 Rebased-From: dae64f3 (random-zebra) ffac2a7 [BUG][RPC] fix signature check (against old format) in mnbudgetrawvote Github-Pull: #1206 Rebased-From: ae063d0 (random-zebra) e82e2f5 [GUI][Bug] Show locked balance in the available total amount and notify the user about its existence. (furszy) 47d2c40 [Backport][Performance] Cache best block hash for miner thread usage + refactor. (furszy) fe12794 [Wallet] Remove un-necessary CheckTransaction call when loading wallet. (Fuzzbawls) b8f2b1a [Build] Clean up warnings (Cave Spectre) d4e6693 [Cleanup] Remove unnecessary QtCreator files (Fuzzbawls) 361757b [Build] Bump snapcraft nightlies to 4.0.99 (Fuzzbawls) Pull request description: Updates the `4.0` branch with relevant merged PRs in preparation for tagging the `4.0.1` release. Included PRs: #1204 #1205 #1199 #1222 #1203 #1223 #1206 #1184 #1233 #1224 #1231 #1228 #1217 #1234 #1207 #1238 #1218 #1237 #1229 #1211 #1243 #1221 #1240 #1242 #1250 #1245 #1252 #1253 #1251 ACKs for top commit: random-zebra: utACK d209897 Tree-SHA512: 092349a93ea4bfe6d6284d5b996055d2900576fab971707458260a848fbdbb15926b13e6ee46469b283721f7dc51a455f5d209a62d9309caa03cecd3b66bd556
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a collection of updates and improvements over the RegTest functional test suite.
Main changes:
PoS blockchain cache
A new cache is created. It contains a 330-blocks chain (re using the regular "pow" chain for the first 200 blocks) with 8 nodes and some preminted zerocoin to speed up the tests. It is used in all pos/zerocoin tests.
RPC fixes - additions
Additional fields in
spendzerocoin,spendrawzerocoin,spendzerocoinmints, andcreaterawzerocoinstakespecific for regtest, in order to make the tests more complete.Lower required zerocoin confirmations to 10 on regtest.
Refactor PIVX specific functions in test_framework / blocktools / utils
Unify code used to manually assemble PoS blocks (
get_prevouts,stake_block). Add utility functions to create pos coinbases, spend utxos, generate pos blocks, manage sporks.Unify and complete broken tests
Group zerocoin spend tests in
zerocoin_spends. Group Fake-Stake tests inmining_pos_fakestake. Fixwallet_reorg_stakeandzerocoin_wrapped_serials.Also updates (and re-sorts) the test runner list with the average time that each test requires.