Commit graph

204 commits

Author SHA1 Message Date
Sebastian Falbesoner
69ffddc83e refactor: Remove unused methods CBloomFilter::reset()/clear()
Co-authored-by: MarcoFalke <falke.marco@gmail.com>
2020-04-17 01:09:39 +02:00
MarcoFalke
fa488f131f
scripted-diff: Bump copyright headers
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-
2020-04-16 13:33:09 -04:00
MarcoFalke
fac5c37300
scripted-diff: Sort test includes
-BEGIN VERIFY SCRIPT-
 # Mark all lines with #includes
 sed -i --regexp-extended -e 's/(#include <.*>)/\1 /g' $(git grep -l '#include' ./src/bench/ ./src/test ./src/wallet/test/)
 # Sort all marked lines
 git diff -U0 | ./contrib/devtools/clang-format-diff.py -p1 -i -v
-END VERIFY SCRIPT-
2020-04-16 13:32:36 -04:00
MarcoFalke
fa69f88486
fuzz: Disable debug log file 2020-04-15 15:13:11 -04:00
MarcoFalke
ccccd51908
script: Remove undocumented and unused operator+ 2020-04-15 10:01:55 -04:00
MarcoFalke
405713d00f
Merge #18529: Add fuzzer version of randomized prevector test
b1d24d1d03 Reorder the test instructions by number (Pieter Wuille)
c2ccadc26a Merge and generalize case 3 and case 6 (Pieter Wuille)
402ad5aaca Only run sanity check once at the end (Pieter Wuille)
eda8309bfc Assert immediately rather than caching failure (Pieter Wuille)
55608455cb Make a fuzzer-based copy of the prevector randomized test (Pieter Wuille)

Pull request description:

  The current prevector test effectively randomly generates a number of operations to perform on a prevector and a normal vector, and checks consistency between the two.

  By converting this into a fuzzer the operations can be targetted rather than random.

ACKs for top commit:
  MarcoFalke:
    ACK b1d24d1d03 🍬

Tree-SHA512: 2b5c62abcd5fee94f42db03400531484d98c59e7f4308e0e683c61aabcd9ce42f85c5d058d2d5e7f8221124f71d2112b6a5f3c80e5d0fdae265a70647747e92f
2020-04-09 15:00:57 -04:00
pierrenn
2748e87932
script: prevent UB when computing abs value for num opcode serialize 2020-04-09 08:32:00 +09:00
Pieter Wuille
748977690e Add asmap_direct fuzzer that tests Interpreter directly 2020-04-08 16:26:06 -07:00
Pieter Wuille
7cf97fda15 Make asmap Interpreter errors fatal and fuzz test it 2020-04-08 16:26:06 -07:00
MarcoFalke
661bd5dea3
Merge #18363: tests: Add fuzzing harness for HTTPRequest, libevent's evhttp and related functions
cdfb8e7afa tests: Add fuzzing harness for HTTPRequest, libevent's evhttp and related functions (practicalswift)

Pull request description:

  Add fuzzing harness for `HTTPRequest`, `libevent`'s `evhttp` and related functions.

ACKs for top commit:
  laanwj:
    ACK cdfb8e7afa

Tree-SHA512: da481afed5eb3232d3f3d0583094e56050e6234223dfcb356d8567fe0616336eb1b78c5e6821325fc9767e385e5dfaf3c96f0d35ffdb67f18d74f9a9a9464e24
2020-04-09 02:45:37 +08:00
MarcoFalke
3410fe6887
Merge #18521: fuzz: Add process_messages harness
fa6a008434 fuzz: Add process_messages harness (MarcoFalke)

Pull request description:

ACKs for top commit:
  practicalswift:
    Tested ACK fa6a008434

Tree-SHA512: 2d8788308c7f45c97ca003378f58a9d51f51265958557a65e5e505b1666b4cb928f0d010622870175090a0ad25e2d10b41f26f4eef14b6ff334a024baa250f8c
2020-04-09 00:14:31 +08:00
MarcoFalke
4c59236376
Merge #18533: scripted-diff: Replace strCommand with msg_type
7777e3624f scripted-diff: Replace strCommand with msg_type (MarcoFalke)

Pull request description:

  Receiving a message is not a command, but simply a message of some type

ACKs for top commit:
  promag:
    ACK 7777e3624f.
  naumenkogs:
    ACK 7777e36
  practicalswift:
    ACK 7777e3624f -- I've always thought the `strCommand` name is confusing :)
  theStack:
    ACK 7777e36

Tree-SHA512: 662bac579064c621191916274314b85111cfb4df488f00893ceb16def1c47af4b2a0f34cd7349722099b5a9d23160edb8eb999841f1d64af3e0da02e4870b4bf
2020-04-09 00:12:39 +08:00
practicalswift
283bd72156 tests: Add coverage of {,Incremental}DynamicUsage(const std::set<X, Y>& s) to existing fuzzer 2020-04-08 14:45:27 +00:00
practicalswift
bf76000493 tests: Add fuzzing harness for classes/functions in cuckoocache.h 2020-04-08 14:45:27 +00:00
practicalswift
57890b2555 tests: Add fuzzing harness for classes/functions in checkqueue.h 2020-04-08 14:45:27 +00:00
practicalswift
2df5701e90 tests: Add coverage of GetVirtualTransactionSize(...) to existing fuzzer 2020-04-08 14:45:27 +00:00
practicalswift
7b9a2dc864 tests: Add fuzzing harness for AdditionOverflow(...) 2020-04-08 14:45:27 +00:00
practicalswift
44fb2a596b tests: Add fuzzing harness for FeeFilterRounder 2020-04-08 14:45:27 +00:00
Pieter Wuille
b1d24d1d03 Reorder the test instructions by number 2020-04-06 14:51:38 -07:00
Pieter Wuille
c2ccadc26a Merge and generalize case 3 and case 6 2020-04-06 14:39:42 -07:00
Pieter Wuille
402ad5aaca Only run sanity check once at the end 2020-04-06 14:39:42 -07:00
Pieter Wuille
eda8309bfc Assert immediately rather than caching failure 2020-04-06 14:39:38 -07:00
Pieter Wuille
55608455cb Make a fuzzer-based copy of the prevector randomized test 2020-04-06 14:25:25 -07:00
practicalswift
cdfb8e7afa tests: Add fuzzing harness for HTTPRequest, libevent's evhttp and related functions 2020-04-06 13:58:51 +00:00
MarcoFalke
7777e3624f
scripted-diff: Replace strCommand with msg_type
-BEGIN VERIFY SCRIPT-
sed -i 's/\<strCommand\>/msg_type/g' ./src/net_processing.cpp ./src/test/fuzz/process_message.cpp
-END VERIFY SCRIPT-
2020-04-06 08:00:34 +08:00
MarcoFalke
fa6a008434
fuzz: Add process_messages harness 2020-04-05 10:46:24 +08:00
MarcoFalke
4830077494
Merge #18510: fuzz: Add CScriptNum::getint coverage
faa64af960 fuzz: Add CScriptNum::getint coverage (MarcoFalke)

Pull request description:

  Add coverage for

  * https://marcofalke.github.io/btc_cov/fuzz.coverage/src/script/script.h.gcov.html#311
  * https://marcofalke.github.io/btc_cov/fuzz.coverage/src/script/script.h.gcov.html#511

ACKs for top commit:
  practicalswift:
    ACK faa64af960 -- more fuzzing coverage is better than less fuzzing coverage :)

Tree-SHA512: 1a66a2edc3740e8c286049f6c27458c59c45b01052e51684eec0e1be63ffcee94b4ba3d41d88ad715ceb3e4754fd997cf03899085982454905e86d0553d58199
2020-04-05 04:53:19 +08:00
MarcoFalke
e16da90d95
Merge #18518: fuzz: Extend descriptor fuzz test
fa0189955a fuzz: Extend descriptor fuzz test (MarcoFalke)

Pull request description:

ACKs for top commit:
  practicalswift:
    ACK fa0189955a

Tree-SHA512: 6d6a6417f06d90732bbf055ff54102530d6956f3082f1ff65598f790d588170768aee98e4835996876d28bca2a9c62f22fe122c3fc7eafd4b7660696f72f9835
2020-04-05 04:49:55 +08:00
MarcoFalke
16b6d3422b
Merge #18519: fuzz: Extend script fuzz test
fa86edf66d fuzz: Extend script fuzz test (MarcoFalke)

Pull request description:

ACKs for top commit:
  practicalswift:
    ACK fa86edf66d

Tree-SHA512: 611adee9e673183e67f9711e49289fa59e410bb3ac1bb3fcbb7f1ed331bf0d288c7065e256a82eb41a30a4afe53544c836463cf58865d6e40b18795c8716e57c
2020-04-05 04:48:47 +08:00
MarcoFalke
4839560ee1
Merge #18407: tests: Add proof-of-work fuzzing harness
acf269e146 tests: Add proof-of-work fuzzing harness (practicalswift)

Pull request description:

  Add proof-of-work fuzzing harness.

Top commit has no ACKs.

Tree-SHA512: dcdfa211cf1ec3018b61f378bb0f95793bbbe5d00e2f4d17f9db2c7263fe8ce919760c56cae7122c62c82e05c90e7056eb1778871674bdb3c42869e5fe4c2b60
2020-04-05 04:41:07 +08:00
practicalswift
acf269e146 tests: Add proof-of-work fuzzing harness 2020-04-04 17:23:50 +00:00
MarcoFalke
fa86edf66d
fuzz: Extend script fuzz test 2020-04-04 01:32:17 +08:00
MarcoFalke
fa0189955a
fuzz: Extend descriptor fuzz test 2020-04-04 01:16:19 +08:00
MarcoFalke
faa64af960
fuzz: Add CScriptNum::getint coverage 2020-04-03 09:02:34 +08:00
MarcoFalke
5f9cd62f33
Merge #18455: tests: Add fuzzing harness for functions/classes in flatfile.h, merkleblock.h, random.h, serialize.h and span.h
11a520f679 tests: Add fuzzing harness for functions/classes in random.h (practicalswift)
64d277bbbc tests: Add fuzzing harness for LimitedString (serialize.h) (practicalswift)
f205cf7fef tests: Add fuzzing harness for functions/classes in span.h (practicalswift)
9718f38f54 tests: Add fuzzing harness for functions/classes in merkleblock.h (practicalswift)
a16ea051f9 tests: Add fuzzing harness for functions/classes in flatfile.h (practicalswift)

Pull request description:

  * Add fuzzing harness for functions/classes in `flatfile.h`
  * Add fuzzing harness for functions/classes in `merkleblock.h`
  * Add fuzzing harness for functions/classes in `span.h`
  * Add fuzzing harness for `LimitedString` (`serialize.h`)
  * Add fuzzing harness for functions/classes in `random.h`

Top commit has no ACKs.

Tree-SHA512: 6f7e0f946f1062d51216990cde9672b4e896335152548ace3d8711e4969c3e3c8566d01d915b72adcda5c1caa9c2e34da6b7473b55a229f5b77239d3b0ba4b67
2020-03-29 10:32:05 -04:00
practicalswift
11a520f679 tests: Add fuzzing harness for functions/classes in random.h 2020-03-29 13:17:04 +00:00
practicalswift
64d277bbbc tests: Add fuzzing harness for LimitedString (serialize.h) 2020-03-29 13:17:04 +00:00
practicalswift
f205cf7fef tests: Add fuzzing harness for functions/classes in span.h 2020-03-29 13:17:04 +00:00
practicalswift
9718f38f54 tests: Add fuzzing harness for functions/classes in merkleblock.h 2020-03-29 13:17:04 +00:00
practicalswift
a16ea051f9 tests: Add fuzzing harness for functions/classes in flatfile.h 2020-03-29 13:17:04 +00:00
MarcoFalke
faaf1cb5b9
util: Replace i64tostr with ToString 2020-03-27 10:14:08 -04:00
MarcoFalke
fac96fff62
util: Remove unused itostr 2020-03-27 08:59:06 -04:00
practicalswift
7834c3b9ec tests: Add fuzzing harness for functions/classes in chain.h 2020-03-26 21:21:34 +00:00
practicalswift
d7930c4326 tests: Add fuzzing harness for functions/classes in protocol.h 2020-03-26 21:21:34 +00:00
practicalswift
102f3267e9 tests: Add fuzzing harness for classes/functions in blockfilter.h 2020-03-24 17:01:54 +00:00
practicalswift
87d24e67bb tests: Add integer serialization/deserialization fuzzing harness 2020-03-24 16:48:28 +00:00
practicalswift
4308aa67e3 tests: Add fuzzing harness for functions in net_permissions.h 2020-03-24 14:39:23 +00:00
practicalswift
43ff0d91f8 tests: Add fuzzing harness for functions in timedata.h 2020-03-24 14:39:23 +00:00
practicalswift
a8695db785 tests: Add fuzzing harness for functions in addrdb.h 2020-03-24 14:39:23 +00:00
practicalswift
7c1ac70c01 tests: Don't assume presence of __builtin_mul_overflow in MultiplicationOverflow(...) fuzzing harness 2020-03-22 13:29:00 +00:00
practicalswift
5e47b19e50 tests: Add harness which fuzzes EvalScript and VerifyScript using a fuzzed signature checker 2020-03-17 19:10:59 +00:00
MarcoFalke
d2d0a04a66
Merge #18353: tests: Add fuzzing harnesses for classes CBlockHeader, CFeeRate and various functions
44abf417eb tests: Add fuzzing harness for various functions taking std::string as input (practicalswift)
d69145acb7 tests: Add fuzzing harness for MultiplicationOverflow(...) (practicalswift)
7726f3bc46 tests: Add fuzzing harness for CFeeRate (practicalswift)
0579a27630 tests: Add fuzzing harness for CBlockHeader (practicalswift)
cb4eec13c0 tests: Add fuzzing harness for count_seconds(...) (practicalswift)

Pull request description:

  Add fuzzing harnesses for classes `CBlockHeader`, `CFeeRate` and various functions.

  To test this PR:

  ```
  $ make distclean
  $ ./autogen.sh
  $ CC=clang CXX=clang++ ./configure --enable-fuzz \
        --with-sanitizers=address,fuzzer,undefined
  $ make
  $ src/test/fuzz/block_header
  ^c (ctrl-c)
  $ src/test/fuzz/fee_rate
  ^c (ctrl-c)
  $ src/test/fuzz/integer
  ^c (ctrl-c)
  $ src/test/fuzz/multiplication_overflow
  ^c (ctrl-c)
  $ src/test/fuzz/string
  ^c (ctrl-c)
  ```

ACKs for top commit:
  MarcoFalke:
    ACK 44abf417eb 🏉

Tree-SHA512: 2b382a7bc8efdcc6dd8b79f1637f194ecdca3e522c6618ae6c4b0bf6f86d2e79b1bb1c7160522083600616d1ed509b2f577f3a512ea3a7825a0a3794578d9d90
2020-03-17 13:07:42 -04:00
MarcoFalke
8662387309
Merge #17997: refactor: Remove mempool global from net
fa7fea3654 refactor: Remove mempool global from net (MarcoFalke)

Pull request description:

  To increase modularisation and simplify testing, remove the mempool global from net in favour of a mempool member.

  This is done in the same way it was done for the connection manager global.

ACKs for top commit:
  jnewbery:
    code review ACK fa7fea3654

Tree-SHA512: 0e3e1eefa8d6e46367bc6991d5f36c636b15ae4a3bda99b6fe6715db3240771c3d87943c6eb257d69f31929fa2f1d0973e14fc9d1353a27551dbe746eae36857
2020-03-16 11:05:45 -04:00
practicalswift
44abf417eb tests: Add fuzzing harness for various functions taking std::string as input 2020-03-15 16:25:29 +00:00
practicalswift
d69145acb7 tests: Add fuzzing harness for MultiplicationOverflow(...) 2020-03-15 16:25:29 +00:00
practicalswift
7726f3bc46 tests: Add fuzzing harness for CFeeRate 2020-03-15 16:25:29 +00:00
practicalswift
0579a27630 tests: Add fuzzing harness for CBlockHeader 2020-03-15 15:19:50 +00:00
practicalswift
cb4eec13c0 tests: Add fuzzing harness for count_seconds(...) 2020-03-15 15:19:50 +00:00
MarcoFalke
fa7fea3654
refactor: Remove mempool global from net
This refactor does two things:
* Pass mempool in to PeerLogicValidation
* Pass m_mempool around where needed
2020-03-12 09:23:56 -04:00
MarcoFalke
bbbbb53dd1
fuzz: Add missing ECC_Start to key_io test 2020-03-11 15:16:54 -04:00
MarcoFalke
249114b1a6
Merge #18314: tests: Add deserialization fuzzing of SnapshotMetadata (utxo_snapshot). Increase fuzzing coverage.
08eab0f599 tests: Add fuzzing of CSubNet, CNetAddr and CService related functions (practicalswift)
7a861a62c1 tests: Fuzz HasAllDesirableServiceFlags(...) and MayHaveUsefulAddressDB(...) (practicalswift)
47a263108b tests: Fuzz DecodeBase64PSBT(...) (practicalswift)
d3d4892ef4 tests: Simplify code by removing unwarranted use of unique_ptr:s (practicalswift)
e57e67057a tests: Fuzz DecodeHexBlk(...) (practicalswift)
117a706fab tests: Fuzz RecursiveDynamicUsage(const std::shared_ptr<X>& p) (practicalswift)
81b58a3161 tests: Fuzz operator!= of CService (practicalswift)
c2c58f6f59 tests: Increase fuzzing coverage of DecompressScript(...) (practicalswift)
9f8d74a8c7 tests: Fuzz currently uncovered code path in TxToUniv(...) (practicalswift)
46ef4cfe5f tests: Re-arrange test cases in parse_univalue to increase coverage (practicalswift)
516cc6fc78 tests: Remove unit test from fuzzing harness (practicalswift)
7b169cae20 tests: Add deserialization fuzzing of SnapshotMetadata (utxo_snapshot), uint160 and uint256 (practicalswift)

Pull request description:

  Add deserialization fuzzing of `SnapshotMetadata` (`utxo_snapshot`).

  Increase fuzzing coverage.

ACKs for top commit:
  MarcoFalke:
    ACK 08eab0f599 🗾

Tree-SHA512: 5dca2316d64b9eb1da9bbbb3831de285b1524cbe815e3dba0f9c4eac7f39b403eb26ee0bdd3d9409a1838e7226d783946ec0d251e514a99f68267a95ac56d416
2020-03-11 13:02:43 -04:00
practicalswift
08eab0f599 tests: Add fuzzing of CSubNet, CNetAddr and CService related functions 2020-03-11 12:51:26 +00:00
practicalswift
7a861a62c1 tests: Fuzz HasAllDesirableServiceFlags(...) and MayHaveUsefulAddressDB(...) 2020-03-11 12:51:26 +00:00
practicalswift
47a263108b tests: Fuzz DecodeBase64PSBT(...) 2020-03-11 12:51:26 +00:00
practicalswift
d3d4892ef4 tests: Simplify code by removing unwarranted use of unique_ptr:s 2020-03-11 12:51:26 +00:00
practicalswift
e57e67057a tests: Fuzz DecodeHexBlk(...) 2020-03-11 12:51:26 +00:00
practicalswift
117a706fab tests: Fuzz RecursiveDynamicUsage(const std::shared_ptr<X>& p) 2020-03-11 12:51:26 +00:00
practicalswift
81b58a3161 tests: Fuzz operator!= of CService 2020-03-11 12:51:26 +00:00
practicalswift
c2c58f6f59 tests: Increase fuzzing coverage of DecompressScript(...) 2020-03-11 12:51:26 +00:00
MarcoFalke
f1064c1b0d
Merge #17989: tests: Add fuzzing harness for ProcessMessage(...). Enables high-level fuzzing of the P2P layer.
9220a0fdd0 tests: Add one specialized ProcessMessage(...) fuzzing binary per message type for optimal results when using coverage-guided fuzzing (practicalswift)
fd1dae10b4 tests: Add fuzzing harness for ProcessMessage(...) (practicalswift)

Pull request description:

  Add fuzzing harness for `ProcessMessage(...)`. Enables high-level fuzzing of the P2P layer.

  All code paths reachable from this fuzzer can be assumed to be reachable for an untrusted peer.

  Seeded from thin air (an empty corpus) this fuzzer reaches roughly 20 000 lines of code.

  To test this PR:

  ```
  $ make distclean
  $ ./autogen.sh
  $ CC=clang CXX=clang++ ./configure --enable-fuzz \
        --with-sanitizers=address,fuzzer,undefined
  $ make
  $ src/test/fuzz/process_message
  …
  ```

  Worth noting about this fuzzing harness:
  * To achieve a reasonable number of executions per seconds the state of the fuzzer is unfortunately not entirely reset between `test_one_input` calls. The set-up (`FuzzingSetup` ctor) and tear-down (`~FuzzingSetup`) work is simply too costly to be run on every iteration. There is a trade-off to handle here between a.) achieving high executions/second and b.) giving the fuzzer a totally blank slate for each call. Please let me know if you have any suggestion on how to improve this situation while maintaining >1000 executions/second.
  * To achieve optimal results when using coverage-guided fuzzing I've chosen to create one specialised fuzzing binary per message type (`process_message_addr`, `process_message_block`, `process_message_blocktxn `, etc.) and one general fuzzing binary (`process_message`) which handles all messages types. The latter general fuzzer can be seeded with inputs generated by the former specialised fuzzers.

  Happy fuzzing friends!

ACKs for top commit:
  MarcoFalke:
    ACK 9220a0fdd0 🏊

Tree-SHA512: c314ef12b0db17b53cbf3abfb9ecc10ce420fb45b17c1db0b34cabe7c30e453947b3ae462020b0c9f30e2c67a7ef1df68826238687dc2479cd816f0addb530e5
2020-03-11 08:51:24 -04:00
practicalswift
9f8d74a8c7 tests: Fuzz currently uncovered code path in TxToUniv(...) 2020-03-11 12:38:10 +00:00
practicalswift
46ef4cfe5f tests: Re-arrange test cases in parse_univalue to increase coverage 2020-03-11 12:37:59 +00:00
practicalswift
516cc6fc78 tests: Remove unit test from fuzzing harness 2020-03-11 11:42:27 +00:00
practicalswift
7b169cae20 tests: Add deserialization fuzzing of SnapshotMetadata (utxo_snapshot), uint160 and uint256 2020-03-11 11:42:27 +00:00
practicalswift
fd1dae10b4 tests: Add fuzzing harness for ProcessMessage(...) 2020-03-11 06:57:55 +00:00
practicalswift
e37f53648e Make lifetime correctness easier to see (avoid reference lifetime extension) 2020-03-09 20:39:48 +00:00
practicalswift
e7ddbd9893 tests: Add fuzzing harness for CScriptNum operations 2020-03-09 20:39:48 +00:00
practicalswift
65a52a0024 tests: Add fuzzing harness for CScript operations 2020-03-09 19:24:50 +00:00
practicalswift
eb7c50ca1f tests: Add common Consume* fuzzing functions 2020-03-09 19:24:50 +00:00
MarcoFalke
5518eeec27
Merge #18047: tests: Add basic fuzzing harness for CNetAddr/CService/CSubNet related functions (netaddress.h)
6590395f60 tests: Remove FUZZERS_MISSING_CORPORA (practicalswift)
815c7a6793 tests: Add basic fuzzing harness for CNetAddr/CService/CSubNet related functions (netaddress.h) (practicalswift)

Pull request description:

  Add basic fuzzing harness for `CNetAddr`/`CService`/`CSubNet` related functions (`netaddress.h`).

  To test this PR:

  ```
  $ make distclean
  $ ./autogen.sh
  $ CC=clang CXX=clang++ ./configure --enable-fuzz \
        --with-sanitizers=address,fuzzer,undefined
  $ make
  $ src/test/fuzz/netaddress
  …
  ```

Top commit has no ACKs.

Tree-SHA512: 69dc0e391d56d5e9cdb818ac0ac4b69445d0195f714442a06cf662998e38b6e0bbaa635dce78df37ba797feed633e94abba4764b946c1716d392756e7809112d
2020-03-09 13:53:46 -04:00
practicalswift
815c7a6793 tests: Add basic fuzzing harness for CNetAddr/CService/CSubNet related functions (netaddress.h) 2020-03-09 15:16:36 +00:00
MarcoFalke
fab0e5ba7f
fuzz: Add assert(script == decompressed_script) 2020-03-07 16:55:34 -05:00
practicalswift
52fed696d2 tests: Fuzz additional functions in the script fuzzing harness 2020-03-07 14:35:49 +00:00
practicalswift
5fc10f3cb5 tests: Fuzz additional functions in the transaction fuzzing harness 2020-03-07 14:35:49 +00:00
practicalswift
1d324ce922 tests: Fuzz additional functions in the integer fuzzing harness 2020-03-07 13:40:19 +00:00
practicalswift
4fe4de6364 tests: Fuzz additional functions in the hex fuzzing harness 2020-03-07 13:39:25 +00:00
practicalswift
c7ea12d098 tests: Add key_io fuzzing harness 2020-03-07 13:39:25 +00:00
practicalswift
259e290db8 tests: Add fuzzing harness for locale independence testing 2020-03-06 13:29:21 +00:00
MarcoFalke
3f826598a4
Merge #17972: tests: Add fuzzing harness for CKey and key related functions
f4691b6c21 tests: Add fuzzing harness for CKey related functions (practicalswift)

Pull request description:

  Add fuzzing harness for `CKey` and key related functions.

  **How to test this PR**

  ```
  $ make distclean
  $ ./autogen.sh
  $ CC=clang CXX=clang++ ./configure --enable-fuzz \
        --with-sanitizers=address,fuzzer,undefined
  $ make
  $ src/test/fuzz/key
  …
  #4096   pulse  cov: 5736 ft: 6960 corp: 27/833b lim: 67 exec/s: 2048 rss: 122Mb
  #8192   pulse  cov: 5736 ft: 6960 corp: 27/833b lim: 103 exec/s: 2048 rss: 143Mb
  #13067  NEW    cov: 5736 ft: 6965 corp: 28/865b lim: 154 exec/s: 2177 rss: 166Mb L: 32/32 MS: 1 ChangeBit-
  #16384  pulse  cov: 5736 ft: 6965 corp: 28/865b lim: 182 exec/s: 2048 rss: 181Mb
  #32768  pulse  cov: 5736 ft: 6965 corp: 28/865b lim: 347 exec/s: 2184 rss: 258Mb
  …
  ```

Top commit has no ACKs.

Tree-SHA512: 5b17ffb70c31966d3eac06d2258c127ae671d28d6cdf4e6ac20b45cd59ad32f80952c9c749930b97d317c72d5f840a3b75d466fd28fb6c351424a72c3e41bcbc
2020-03-05 16:43:16 -05:00
practicalswift
f4691b6c21 tests: Add fuzzing harness for CKey related functions 2020-03-05 21:11:10 +00:00
MarcoFalke
a2b5aae9f3
Merge #17996: tests: Add fuzzing harness for serialization/deserialization of floating-points and integrals
9ff41f6419 tests: Add float to FUZZERS_MISSING_CORPORA (temporarily) (practicalswift)
8f6fb0a85a tests: Add serialization/deserialization fuzzing for integral types (practicalswift)
3c82b92d2e tests: Add fuzzing harness for functions taking floating-point types as input (practicalswift)
c2bd588860 Add missing includes (practicalswift)

Pull request description:

  Add simple fuzzing harness for functions with floating-point parameters (such as `ser_double_to_uint64(double)`, etc.).

  Add serialization/deserialization fuzzing for integral types.

  Add missing includes.

  To test this PR:

  ```
  $ make distclean
  $ ./autogen.sh
  $ CC=clang CXX=clang++ ./configure --enable-fuzz \
        --with-sanitizers=address,fuzzer,undefined
  $ make
  $ src/test/fuzz/float
  …
  ```

Top commit has no ACKs.

Tree-SHA512: 9b5a0c4838ad18d715c7398e557d2a6d0fcc03aa842f76d7a8ed716170a28f17f249eaede4256998aa3417afe2935e0ffdfaa883727d71ae2d2d18a41ced24b5
2020-03-05 15:41:30 -05:00
practicalswift
8f6fb0a85a tests: Add serialization/deserialization fuzzing for integral types 2020-03-05 20:35:26 +00:00
MarcoFalke
d7134b306a
Merge #17917: tests: Add amount compression/decompression fuzzing to existing fuzzing harness
7e9c7113af compressor: Make the domain of CompressAmount(...) explicit (practicalswift)
4a7fd7a712 tests: Add amount compression/decompression fuzzing to existing fuzzing harness: test compression round-trip (practicalswift)

Pull request description:

  Small fuzzing improvement:

  Add amount compression/decompression fuzzing to existing fuzzing harness: test compression round-trip (`DecompressAmount(CompressAmount(…))`).

  Make the domain of `CompressAmount(…)` explicit.

  Amount compression primer:

  ```
      Compact serialization for amounts

      Special serializer/deserializer for amount values. It is optimized for
      values which have few non-zero digits in decimal representation. Most
      amounts currently in the txout set take only 1 or 2 bytes to
      represent.
  ```

  **How to test this PR**

  ```
  $ make distclean
  $ ./autogen.sh
  $ CC=clang CXX=clang++ ./configure --enable-fuzz \
        --with-sanitizers=address,fuzzer,undefined
  $ make
  $ src/test/fuzz/integer
  …
  ```

Top commit has no ACKs.

Tree-SHA512: 0f7c05b97012ccd5cd05a96c209e6b4d7d2fa73138bac9615cf531baa3f614f9003e29a198015bcc083af9f5bdc752bb52615b82c5df3c519b1a064bd4fc6664
2020-03-05 15:25:36 -05:00
MarcoFalke
891464950b
Merge #18109: tests: Avoid hitting some known minor tinyformat issues when fuzzing strprintf(...)
470e2ac602 tests: Avoid hitting some known minor tinyformat issues when fuzzing strprintf(...) (practicalswift)

Pull request description:

  Avoid hitting some known minor tinyformat issues when fuzzing `strprintf(...)`. These can be removed when the issues have been resolved upstreams :)

  Note to reviewers: The `%c` and `%*` issues are also present for `%<some junk>c` and `%<some junk>*`. That is why simply matching on `"%c"` or `"%*"` is not enough. Note that the intentionally trivial skipping logic overshoots somewhat (`c[…]%` is filtered in addition to `%[…]c`).

Top commit has no ACKs.

Tree-SHA512: 2b002981e8b3f2ee021c3013f1260654ac7e158699313849c9e9660462bb8cd521544935799bb8daa74925959dc04d63440e647495e0b008cfe1b8a8b2202d40
2020-03-05 15:08:31 -05:00
MarcoFalke
324a6dfeaf
Merge #17771: tests: Add fuzzing harness for V1TransportDeserializer (P2P transport)
2f63ffd15c tests: Add fuzzing harness for V1TransportDeserializer (P2P transport) (practicalswift)

Pull request description:

  Add fuzzing harness for `V1TransportDeserializer` (P2P transport).

  **Testing this PR**

  Run:

  ```
  $ make distclean
  $ ./autogen.sh
  $ CC=clang CXX=clang++ ./configure --enable-fuzz \
        --with-sanitizers=address,fuzzer,undefined
  $ make
  $ src/test/fuzz/p2p_transport_deserializer
  …
  ```

ACKs for top commit:
  MarcoFalke:
    ACK 2f63ffd15c

Tree-SHA512: 8507d4a0414d16f1b8cc9649e3e638f74071dddc990d7e5d7e6faf77697f50bdaf133e49e2371edd29068a069a074469ef53148c6bfc9950510460b81d87646a
2020-02-28 02:35:14 +07:00
practicalswift
eabbbe409f tests: Add fuzzing harness for rolling bloom filter class CRollingBloomFilter 2020-02-25 17:04:03 +00:00
practicalswift
2a6a6ea0f5 tests: Add fuzzing harness for bloom filter class CBloomFilter 2020-02-25 17:04:03 +00:00
practicalswift
470e2ac602 tests: Avoid hitting some known minor tinyformat issues when fuzzing strprintf(...) 2020-02-12 14:27:19 +00:00
practicalswift
3c82b92d2e tests: Add fuzzing harness for functions taking floating-point types as input 2020-01-31 12:36:13 +00:00
practicalswift
8d07706985 tests: Add fuzzing harness for AS-mapping (asmap) 2020-01-30 16:04:38 +00:00