merge-script
c20a5ce106
Merge bitcoin/bitcoin#31901: contrib: Add deterministic-unittest-coverage
fa99c3b544 test: Exclude SeedStartup from coverage counts (MarcoFalke)
fa579d663d contrib: Add deterministic-unittest-coverage (MarcoFalke)
fa3940b1cb contrib: deterministic-fuzz-coverage fixups (MarcoFalke)
faf905b9b6 doc: Remove unused -fPIC (MarcoFalke)
fa1e0a7228 gitignore: target/ (MarcoFalke)
Pull request description:
The `contrib/devtools/test_deterministic_coverage.sh` script is problematic:
* It is written in bash. This can lead to issues when running with the ancient bash version shipped by macOS by default, or can lead to other compatibility issues, such as https://github.com/bitcoin/bitcoin/pull/31588#discussion_r1946784827. Also, pipefail isn't set, so IO errors may be silently ignored.
* It is based on gcov. This can lead to issues, such as https://github.com/bitcoin/bitcoin/pull/31588#pullrequestreview-2602169248 (possibly due to prefix-map), or https://github.com/bitcoin/bitcoin/pull/31588#issuecomment-2646395385 (gcovr processing error), or https://github.com/bitcoin/bitcoin/pull/31588#pullrequestreview-2605954001 (gcovr assertion error).
* The script is severely outdated, with the last update to `NON_DETERMINISTIC_TESTS` being in the prior decade.
Instead of patching around all issues one-by-one, just provide a fresh rewrite, based on the recently added `deterministic-fuzz-coverage` tool based on clang, llvm-cov, and llvm-profdata. (Initial feedback indicates that this is a more promising attempt: https://github.com/bitcoin/bitcoin/pull/31588#issuecomment-2649356408 and https://github.com/bitcoin/bitcoin/pull/31588#issuecomment-2649354598).
The new tool also sets `RANDOM_CTX_SEED=21` as suggested by hodlinator in https://github.com/bitcoin/bitcoin/pull/31588#issuecomment-2650784726.
ACKs for top commit:
Prabhat1308:
Concept ACK [`fa99c3b`](fa99c3b544)
hodlinator:
re-ACK fa99c3b544
brunoerg:
light ACK fa99c3b544
dergoegge:
tACK fa99c3b544
janb84:
Concept ACK [fa99c3b](fa99c3b544)
Tree-SHA512: 491d5e6413d929395a5c7caea54817bdc1a0e00562c9728a374d4e92f2e2017dba4a770ecdb2e7317e049df9fdeb390d83c90dff9aa5709f97aa3f6a0e70cdb4
2025-03-13 12:30:32 +08:00
..
2025-02-12 11:39:37 -05:00
2024-04-18 10:27:25 +01:00
2024-12-13 14:22:25 +01:00
2024-09-13 21:59:29 -04:00
2024-12-13 14:22:25 +01:00
2025-01-04 13:18:29 +01:00
2024-10-19 19:16:04 +02:00
2024-08-13 07:44:31 +02:00
2023-12-06 15:44:38 +01:00
2024-07-01 10:26:46 -04:00
2024-08-05 14:51:47 +02:00
2024-05-29 18:55:04 +02:00
2023-11-30 11:27:21 +01:00
2024-12-13 14:22:25 +01:00
2023-11-14 08:45:30 +10:00
2023-12-09 19:31:06 +01:00
2024-12-02 16:25:13 -05:00
2024-10-07 13:49:36 -04:00
2025-02-12 11:39:37 -05:00
2024-12-02 13:48:04 +01:00
2024-09-18 20:03:47 +02:00
2024-12-13 14:22:25 +01:00
2024-09-04 15:04:53 -04:00
2024-09-05 17:56:54 -03:00
2024-09-21 12:37:36 +02:00
2023-12-09 19:31:06 +01:00
2023-12-09 19:31:06 +01:00
2024-08-28 15:56:15 +01:00
2024-10-26 23:44:15 +02:00
2024-03-18 10:32:00 -04:00
2024-04-22 09:36:36 -04:00
2024-05-16 10:16:08 -05:00
2025-01-20 17:43:58 +01:00
2025-02-25 10:15:00 +01:00
2024-06-12 15:21:31 +02:00
2024-12-09 17:01:10 +00:00
2024-12-13 14:22:25 +01:00
2024-12-13 14:22:25 +01:00
2024-09-12 12:36:37 -04:00
2023-12-04 15:39:15 -04:00
2024-12-13 14:22:25 +01:00
2024-09-16 13:59:22 -04:00
2024-05-09 15:56:04 +02:00
2024-12-13 14:22:25 +01:00
2024-08-05 15:45:58 +01:00
2025-01-06 15:43:04 +00:00
2024-05-16 10:16:08 -05:00
2023-11-28 17:49:41 +01:00
2024-09-04 15:04:53 -04:00
2025-02-04 11:53:03 -05:00
2024-11-11 12:14:08 +01:00
2023-12-14 20:10:21 +00:00
2025-01-09 10:11:46 -05:00
2024-04-18 10:27:25 +01:00
2024-03-12 12:59:02 -04:00
2025-01-06 15:43:04 +00:00
2024-12-13 14:22:25 +01:00
2025-01-15 15:44:03 +01:00
2024-12-13 14:22:25 +01:00
2025-01-06 15:43:04 +00:00
2024-10-26 23:44:15 +02:00
2024-12-17 12:55:38 -05:00
2024-12-02 15:09:31 +01:00
2024-07-19 15:39:02 +02:00
2025-01-06 15:43:04 +00:00
2025-02-12 11:39:37 -05:00
2023-11-14 17:41:26 +01:00
2024-09-04 15:04:53 -04:00
2024-08-13 07:44:31 +02:00
2024-09-02 15:43:33 +01:00
2024-09-04 15:04:53 -04:00
2023-11-14 08:45:30 +10:00
2024-12-17 12:55:38 -05:00
2024-12-17 12:55:38 -05:00
2024-10-26 23:44:15 +02:00
2024-12-13 14:22:25 +01:00
2024-07-06 09:06:36 -04:00
2024-12-13 14:22:25 +01:00
2024-12-13 14:22:25 +01:00
2024-12-13 14:22:25 +01:00
2024-05-16 10:16:08 -05:00
2023-11-23 17:57:53 +01:00
2023-12-09 19:31:06 +01:00
2023-12-09 19:31:06 +01:00
2024-05-16 10:16:08 -05:00
2024-12-13 14:22:25 +01:00
2024-09-20 16:05:28 +01:00
2024-08-09 11:18:45 +01:00
2024-08-21 00:41:56 +02:00
2024-12-13 14:22:25 +01:00
2023-11-14 08:45:30 +10:00
2025-01-06 15:43:04 +00:00
2024-08-13 07:44:31 +02:00
2024-07-10 09:40:47 +02:00
2025-01-15 12:16:08 +01:00
2024-09-06 09:08:10 -04:00
2024-06-13 11:20:49 +01:00
2024-12-13 14:22:25 +01:00
2023-11-30 11:28:19 +01:00
2023-11-30 11:28:19 +01:00
2024-12-17 12:55:38 -05:00
2025-02-07 13:55:57 -05:00
2025-02-20 14:00:21 -05:00
2025-01-29 18:05:16 -05:00
2024-12-02 08:21:32 +01:00
2024-11-25 20:09:44 +01:00
2025-01-06 15:43:04 +00:00
2025-01-06 15:43:04 +00:00
2024-12-13 14:22:25 +01:00
2024-07-01 10:26:46 -04:00