mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-27 16:05:39 +01:00
d7fca5c171clusterlin: add big comment explaning the relation between tests (Pieter Wuille)b64e61d2declusterlin: abstract try-permutations into ExhaustiveLinearize function (Pieter Wuille)1fa55a64edclusterlin tests: verify that chunks are minimal (Pieter Wuille)da23ecef29clusterlin tests: support non-empty ReadTopologicalSubset() (Pieter Wuille)94f3e17c33clusterlin tests: compare with fuzz-provided linearizations (Pieter Wuille)5f92ebee0dclusterlin tests: compare with fuzz-provided topological sets (Pieter Wuille)6e37824ac3clusterlin tests: optimize clusterlin_simple_linearize (Pieter Wuille)98c1c88b6fclusterlin tests: separate testing of SimpleLinearize and Linearize (Pieter Wuille)10e90f7aefclusterlin tests: make SimpleCandidateFinder always find connected (Pieter Wuille)a38c38951eclusterlin tests: separate testing of Search- and SimpleCandidateFinder (Pieter Wuille)77a432ee70clusterlin tests: count SimpleCandidateFinder iterations better (Pieter Wuille) Pull request description: Part of the cluster mempool project: #30289 The current cluster linearization fuzz tests contain two tests which combine testing of production code with testing of the test code itself: * `clusterlin_search_finder`: establishes the correctness of `SearchCandidateFinder` by comparing against both `SimpleCandidateFinder` and `ExhaustiveCandidateFinder` (which is even more simple than `SimpleCandidateFinder`). If `SimpleCandidateFinder` works correctly, then this comparison with `ExhaustiveCandidateFinder` is redundant. If it isn't, we ought to find that in a test specific to `SimpleCandidateFinder` rather than as a side-effect of testing `SearchCandidateFinder`. Split this functionality out into a new `clusterlin_simple_finder`. * `clusterlin_linearize`: establishes the correctness of `Linearize` by comparing against both `SimpleLinearize` and literally every valid linearization for the cluster. Again, if `SimpleLinearize` works correctly, then this comparison with all valid linearizations is redundant, and if it isn't we should find it in a test for `SimpleLinearize`. Do so by splitting off that functionality into `clusterlin_simple_linearize`. After that, a few general improvements to the affected tests are made (comparing with linearizations and subsets read from the fuzz input, plus a performance improvement). ACKs for top commit: marcofleon: Re ACKd7fca5c171ismaelsadeeq: re-ACKd7fca5c171monlovesmango: ACKd7fca5c171Tree-SHA512: 33cb76bd9b9547a5f3ee231fa452e928f064ad03af98e3d9e64246eb972f2b026c13e7367257ccdac1ae57982ee8ef98c907684588ecbb4bc4c82cbec160b3e8