mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-25 19:10:42 +00:00
The new MX-native validator, which validates the index in tandem with the data file, was discovered to print false-positive errors, related to range-tombstones and promoted-index positions. This series fixes that. But first, it refactors the scrub-related tests. These are currently dominated by boiler-plate code. They are hard to read and hard to write. In the first half of the series, a new `scrub_test` is introduced, which moves all the boiler-plate to a central place, allowing the tests to focus on just the aspect of scrub that is tested. Then, all the found bugs in validate are fixed and finally a new test, checking validate with valid sstable is introduced. Fixes: #16326 Closes scylladb/scylladb#16327 * github.com:scylladb/scylladb: test/boost/sstable_compaction_test: add validation test with valid sstable sstablex/mx/reader: validate(): print trace message when finishing the PI block sstablex/mx/reader: validate(): make index-data PI position check message consistent sstablex/mx/reader: validate(): only load the next PI block if current is exhausted sstablex/mx/reader: validate(): reset the current PI block on partition-start sstablex/mx/reader: validate(): consume_range_tombstone(): check for finished clustering blocked sstablex/mx/reader: validate(): fix validator for range tombstone end bounds test/boost/sstable_compaction_test: drop write_corrupt_sstable() helper test/boost/sstable_compaction_test: fix indentation test/boost/sstable_compaction_test: use test_scrub_framework in test_scrub_quarantine_mode_test test/boost/sstable_compaction_test: use scrub_test_framework in sstable_scrub_segregate_mode_test test/boost/sstable_compaction_test: use scrub_test_framework in sstable_scrub_skip_mode_test test/boost/sstable_compaction_test: use scrub_test_framework in sstable_scrub_validate_mode_test test/boost/sstable_compaction_test: introduce scrub_test_framework test/lib/random_schema: add uncompatible_timestamp_generator()