From c07a69c2a6251438a4d6015bb3e425bdfaa7a4d6 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Tue, 6 Jan 2026 10:51:23 -0600 Subject: [PATCH] preerase: Expanded preerase testing to include non-0xff erase values I just noticed we weren't testing preerase with non-0xff ecksums at all! Added to relevant tests: # test with a number of different erase values defines.ERASE_VALUE = [0xff, 0x00, -1] The most important non-0xff value being -1 (noop erases), which should usually result in fragmented ecksums. Note this was copied from test_rbyd, where we do something similar to test non-0xff ecksums in rbyd logs. --- tests/test_gbmap.toml | 5 ++++- tests/test_gc.toml | 4 ++++ tests/test_mount.toml | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/test_gbmap.toml b/tests/test_gbmap.toml index 0b703ca1..15958d80 100644 --- a/tests/test_gbmap.toml +++ b/tests/test_gbmap.toml @@ -926,10 +926,12 @@ defines.WRAPAROUND = 3 defines.PREERASE = [false, true] defines.GC_FLAGS = ''' LFS3_GC_LOOKAHEAD - | ((PREERASE) ? LFS3_GC_PREERASE : 0) + | ((PREERASE) ? LFS3_IFDEF_PREERASE(LFS3_GC_PREERASE, -1) : 0) ''' defines.GC_STEPS = -1 defines.GC_PREERASE_COUNT = ['0', '4', 'COUNT/2', 'COUNT-4', '-1'] +# test with a number of different erase values +defines.ERASE_VALUE = [0xff, 0x00, -1] ifdef = 'LFS3_GC' if = [ 'COUNT >= 3', @@ -937,6 +939,7 @@ if = [ 'LFS3_IFDEF_PREERASE(true, !PREERASE)', # this is just to reduce useless permutations 'PREERASE || GC_PREERASE_COUNT == 0', + 'PREERASE || ERASE_VALUE == 0xff', ] code = ''' // test various block counts diff --git a/tests/test_gc.toml b/tests/test_gc.toml index 2a69e282..b168db12 100644 --- a/tests/test_gc.toml +++ b/tests/test_gc.toml @@ -535,6 +535,8 @@ defines.SIZE = [ '2*BLOCK_SIZE', '8*BLOCK_SIZE', ] +# test with a number of different erase values +defines.ERASE_VALUE = [0xff, 0x00, -1] if = 'GBMAP' ifdef = ['LFS3_GC', 'LFS3_GBMAP', 'LFS3_REVPERTURB', 'LFS3_PREERASE'] code = ''' @@ -660,6 +662,8 @@ defines.GC_FLAGS = ''' ''' defines.GC_STEPS = [-1, 1, 2, 10, 100, 1000] defines.SIZE = 'BLOCK_SIZE' +# test with a number of different erase values +defines.ERASE_VALUE = [0xff, 0x00, -1] if = 'GBMAP' ifdef = ['LFS3_GC', 'LFS3_GBMAP', 'LFS3_REVPERTURB', 'LFS3_PREERASE'] code = ''' diff --git a/tests/test_mount.toml b/tests/test_mount.toml index dba14629..abc48c3b 100644 --- a/tests/test_mount.toml +++ b/tests/test_mount.toml @@ -336,6 +336,8 @@ defines.SIZE = [ # REMOUNT=1 => remount with preerase # REMOUNT=2 => remount without preerase defines.REMOUNT = [0, 1, 2] +# test with a number of different erase values +defines.ERASE_VALUE = [0xff, 0x00, -1] ifdef = ['LFS3_GBMAP', 'LFS3_REVPERTURB', 'LFS3_PREERASE'] if = 'GBMAP' code = '''