merge-script 99b9022844
Merge bitcoin/bitcoin#32177: TxGraph: Increase fuzz coverage
a40bd374aaf8e10116fa664fa7b480d85ee2fe59 Get*Union: disallow nulltpr Refs (Greg Sanders)
57433502e6756b0dea7332026f3abf926daf0e35 CountDistinctClusters: nullptrs disallowed (Greg Sanders)
8bca0d325a4ffa13a171eaed83096003aa28520e TxGraphImpl::Compact: m_main_clusterset.m_removed is always empty (Greg Sanders)
2c5cf987e96a3e8f783d370a8bc8914f5a4a9682 TxGraphImpl::PullIn: only allowed when staging exists (Greg Sanders)

Pull request description:

  Was looking at my local coverage report, and noticed a few spots that will not or cannot be hit.

  CountDistinctClusters, GetAncestorsUnion, and GetDescendantsUnion accept nullptrs, but the test harness never employs them. Disallow them.

  We never call PullIn whenever there isn't staging, so just enforce that invariant via assertion.

  Remaining places that are not covered:

  1) Relinearize: Currently we seem to always start with a cold (not known to be optimal) cluster, and after one attempt at linearization result into something optimal. This means we never shortcircuit, nor run PostLinearization, nor store the quality as ACCEPTABLE. Reducing iterations causes these lines to be hit. sipa says he will take this on as varying the amount of iterations was meant to be done eventually anyways.
  2) We never do a move assignment operator when the lvalue already has a `m_graph` (so we never call UnlinkRef) 3358b1d105/src/txgraph.cpp (L2097)
  3) We never use the move constructor: 3358b1d105/src/txgraph.cpp (L2108)

ACKs for top commit:
  sipa:
    utACK a40bd374aaf8e10116fa664fa7b480d85ee2fe59
  glozow:
    utACK a40bd374aaf8e10116fa664fa7b480d85ee2fe59

Tree-SHA512: ca88297222e80e0d590889698899f892b9335cfa587a76a6c6ca62c8d846f208b6b0b9a9b1829bafabdb929a1a0c3a75f23edf7dd2b4f5e2dad0235e5bc68ba3
2025-04-03 09:51:28 +08:00
..
2025-03-13 11:13:13 +00:00
2025-04-02 09:14:49 +01:00
2025-03-13 11:13:13 +00:00
2025-03-13 11:13:13 +00:00
2024-11-26 20:47:08 -05:00
2024-12-05 14:37:47 +00:00
2024-11-04 14:19:40 -05:00
2024-05-20 16:48:19 +00:00
2024-07-08 11:12:01 +02:00
2025-01-22 11:29:05 +01:00
2024-07-08 11:12:01 +02:00
2025-03-31 13:07:37 -04:00
2025-03-31 13:07:37 -04:00
2024-12-31 00:04:20 -03:00
2024-12-31 00:04:20 -03:00