0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-05 10:17:30 -05:00
bitcoin-bitcoin-core/src/test/util
MarcoFalke 3a6acd1772
Merge #20789: fuzz: Rework strong and weak net enum fuzzing
eeee43bc48 fuzz: Use ConsumeWeakEnum for ServiceFlags (MarcoFalke)
fa9949b914 fuzz: Add ConsumeWeakEnum helper, Extract ALL_NET_PERMISSION_FLAGS (MarcoFalke)
faaef9434c fuzz: [refactor] Extract ALL_CONNECTION_TYPES constant (MarcoFalke)
fa42da2d54 fuzz: Use ConsumeNode in process_message target (MarcoFalke)
fa121f058f fuzz: Use ConsumeNode in process_messages target (MarcoFalke)

Pull request description:

  The fuzz tests have several problems:
  * The array passed to the fuzz engine to pick `net_permission_flags` is outdated
  * The process_message* targets has the service flags as well as connection type hardcoded, limiting potential coverage
  * The service flags deserialization from the fuzz engine doesn't allow for easy "exact matches". The fuzz engine has to explore a 64-bit space to hit an "exact match" (only one bit set)

  Fix all issues in the commits in this pull

ACKs for top commit:
  mzumsande:
    ACK eeee43bc48 after rebase.

Tree-SHA512: 1ad9520c7e708b7f4994ae8f77886ffca33d7c542756e2a3e07dbbbe59e360f9fcaccf2e2fb57d9bc731d4aeb4938fb1c5c546e9d2744b007af5626f5cb377fe
2021-01-07 17:04:56 +01:00
..
blockfilter.cpp scripted-diff: test: Move setup_common to test library 2019-11-06 11:56:41 -05:00
blockfilter.h scripted-diff: test: Move setup_common to test library 2019-11-06 11:56:41 -05:00
logging.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
logging.h scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
mining.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
mining.h rpc: Remove mempool global from miner 2019-12-23 06:12:10 +07:00
net.cpp net: Treat raw message bytes as uint8_t 2020-11-20 15:11:21 +01:00
net.h fuzz: Use ConsumeWeakEnum for ServiceFlags 2021-01-02 15:07:29 +01:00
README.md doc: Add documentation for new test/lib 2019-11-06 11:56:53 -05:00
setup_common.cpp Merge #20584: Declare de facto const reference variables/member functions as const 2021-01-07 09:05:09 +01:00
setup_common.h Merge #20584: Declare de facto const reference variables/member functions as const 2021-01-07 09:05:09 +01:00
str.cpp
str.h [test] move string helper functions into test library 2019-11-25 01:33:17 +01:00
transaction_utils.cpp scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
transaction_utils.h scripted-diff: TxoutType C++11 scoped enum class 2020-06-21 06:41:55 -04:00
validation.cpp test: Mock IBD in net_processing fuzzers 2020-11-07 07:50:59 +01:00
validation.h test: Mock IBD in net_processing fuzzers 2020-11-07 07:50:59 +01:00
wallet.cpp Locking: Lock cs_KeyStore instead of cs_wallet in legacy keyman 2020-01-23 16:34:28 -05:00
wallet.h [test] move wallet helper functions into test library 2019-11-25 16:40:09 +01:00

Test library

This contains files for the test library, which is used by the test binaries (unit tests, benchmarks, fuzzers, gui tests).

Generally, the files in this folder should be well-separated modules. New code should be added to existing modules or (when in doubt) a new module should be created.

The utilities in here are compiled into a library, which does not hold any state. However, the main file setup_common defines the common test setup for all test binaries. The test binaries will handle the global state when they instantiate the BasicTestingSetup (or one of its derived classes).