From 15da817af5d3cc1c57559739ca3ed5a7917818f0 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Mon, 27 May 2024 01:32:47 -0500 Subject: [PATCH] Replace fuzz DENSITY with explicit OPS in tests This sort of inverts the previous logic. Tests can still define OPS='2*N' to scale the number of ops roughly with the number of entries, but this fits better into the test framework, allows overriding, scaling can be more easily tweaked, can be swapped out with a constant (like in test_wl), etc. Also tweaked some of the related N constants/filter conditions in tests since these are now being effectively doubled... This should leave the resulting number of ops unchanged. --- tests/test_badblocks.toml | 60 +++++++++++++++++++-------------------- tests/test_dirs.toml | 44 ++++++++++++++-------------- tests/test_files.toml | 36 +++++++++++------------ tests/test_forphans.toml | 26 ++++++++--------- tests/test_wl.toml | 8 +++--- 5 files changed, 87 insertions(+), 87 deletions(-) diff --git a/tests/test_badblocks.toml b/tests/test_badblocks.toml index 99e45060..8744c3fa 100644 --- a/tests/test_badblocks.toml +++ b/tests/test_badblocks.toml @@ -332,9 +332,9 @@ defines.BADBLOCK_BEHAVIOR = [ # 'LFS_EMUBD_BADBLOCK_PROGNOOP', # 'LFS_EMUBD_BADBLOCK_ERASENOOP', ] -defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] +defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256] # do more ops than dirs to encourage rename collisions -defines.DENSITY = 2 +defines.OPS = '2*N' defines.REMOUNT = [false, true] defines.SEED = 42 code = ''' @@ -357,9 +357,9 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // insert into our sim for (lfs_size_t j = 0;; j++) { @@ -461,9 +461,9 @@ defines.BADBLOCK_BEHAVIOR = [ # 'LFS_EMUBD_BADBLOCK_ERASENOOP', ] defines.MIRROR = [false, true] -defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] +defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256] # do more ops than dirs to encourage rename collisions -defines.DENSITY = 2 +defines.OPS = '2*N' defines.REMOUNT = [false, true] defines.SEED = 42 code = ''' @@ -491,9 +491,9 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // insert into our sim for (lfs_size_t j = 0;; j++) { @@ -591,9 +591,9 @@ defines.BADBLOCK_BEHAVIOR = [ # 'LFS_EMUBD_BADBLOCK_ERASENOOP', ] defines.MIRROR = [false, true] -defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] +defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256] # do more ops than dirs to encourage rename collisions -defines.DENSITY = 2 +defines.OPS = '2*N' defines.REMOUNT = [false, true] defines.SEED = 42 code = ''' @@ -621,9 +621,9 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // insert into our sim for (lfs_size_t j = 0;; j++) { @@ -724,7 +724,7 @@ defines.BADBLOCK_BEHAVIOR = [ ] defines.N = [1, 2, 4, 8, 16, 32, 64] # do more ops than dirs to encourage rename collisions -defines.DENSITY = 2 +defines.OPS = '2*N' defines.SIZE = [ '0', 'FBUFFER_SIZE/2', @@ -736,7 +736,7 @@ defines.SIZE = [ ] defines.REMOUNT = [false, true] defines.SEED = 42 -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' // test all possible bad blocks for (lfs_size_t i = 2; @@ -758,9 +758,9 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // associate each file with a prng that generates its contents uint32_t wprng = TEST_PRNG(&prng); @@ -882,7 +882,7 @@ defines.BADBLOCK_BEHAVIOR = [ defines.MIRROR = [false, true] defines.N = [1, 2, 4, 8, 16, 32, 64] # do more ops than dirs to encourage rename collisions -defines.DENSITY = 2 +defines.OPS = '2*N' defines.SIZE = [ '0', 'FBUFFER_SIZE/2', @@ -894,7 +894,7 @@ defines.SIZE = [ ] defines.REMOUNT = [false, true] defines.SEED = 42 -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' // test a large region of bad blocks for (lfs_size_t i = 0; i < BLOCK_COUNT/2; i++) { @@ -921,9 +921,9 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // associate each file with a prng that generates its contents uint32_t wprng = TEST_PRNG(&prng); @@ -1041,7 +1041,7 @@ defines.BADBLOCK_BEHAVIOR = [ defines.MIRROR = [false, true] defines.N = [1, 2, 4, 8, 16, 32, 64] # do more ops than dirs to encourage rename collisions -defines.DENSITY = 2 +defines.OPS = '2*N' defines.SIZE = [ '0', 'FBUFFER_SIZE/2', @@ -1053,7 +1053,7 @@ defines.SIZE = [ ] defines.REMOUNT = [false, true] defines.SEED = 42 -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' // test a large region of bad blocks for (lfs_size_t i = 0; i < BLOCK_COUNT/2; i++) { @@ -1080,9 +1080,9 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // associate each file with a prng that generates its contents uint32_t wprng = TEST_PRNG(&prng); @@ -1716,7 +1716,7 @@ defines.BADBLOCK_BEHAVIOR = [ # 'LFS_EMUBD_BADBLOCK_ERASENOOP', ] defines.N = [1, 2, 4, 8, 16, 32, 64] -defines.OPS = 1024 +defines.OPS = '2*N' defines.SIZE = [ '0', 'FBUFFER_SIZE/2', @@ -1727,7 +1727,7 @@ defines.SIZE = [ '4*BLOCK_SIZE', ] defines.SEED = 42 -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' // test all possible bad blocks for (lfs_size_t i = 2; @@ -2157,7 +2157,7 @@ defines.BADBLOCK_BEHAVIOR = [ ] defines.MIRROR = [false, true] defines.N = [1, 2, 4, 8, 16, 32, 64] -defines.OPS = 1024 +defines.OPS = '2*N' defines.SIZE = [ '0', 'FBUFFER_SIZE/2', @@ -2168,7 +2168,7 @@ defines.SIZE = [ '4*BLOCK_SIZE', ] defines.SEED = 42 -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' // test a large region of bad blocks for (lfs_size_t i = 0; i < BLOCK_COUNT/2; i++) { @@ -2597,7 +2597,7 @@ defines.BADBLOCK_BEHAVIOR = [ ] defines.MIRROR = [false, true] defines.N = [1, 2, 4, 8, 16, 32, 64] -defines.OPS = 1024 +defines.OPS = '2*N' defines.SIZE = [ '0', 'FBUFFER_SIZE/2', @@ -2608,7 +2608,7 @@ defines.SIZE = [ '4*BLOCK_SIZE', ] defines.SEED = 42 -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' // test a large region of bad blocks for (lfs_size_t i = 0; i < BLOCK_COUNT/2; i++) { diff --git a/tests/test_dirs.toml b/tests/test_dirs.toml index b3b8d3d3..7b2b3635 100644 --- a/tests/test_dirs.toml +++ b/tests/test_dirs.toml @@ -1277,14 +1277,14 @@ code = ''' ''' [cases.test_dirs_mkdir_fuzz] -defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] +defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256] # do more ops than dirs to encourage rename collisions -defines.DENSITY = 2 +defines.OPS = '2*N' defines.PARENT = [false, true] defines.REMOUNT = [false, true] defines.SEED = 'range(20)' # limit powerloss testing due to time -if = '!TEST_PLS || N <= 16' +if = '!TEST_PLS || N <= 8' reentrant = true code = ''' // format once per test @@ -1305,9 +1305,9 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // insert into our sim for (lfs_size_t j = 0;; j++) { @@ -4202,14 +4202,14 @@ code = ''' ''' [cases.test_dirs_rm_fuzz] -defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] +defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256] # do more ops than dirs to encourage rename collisions -defines.DENSITY = 2 +defines.OPS = '2*N' defines.PARENT = [false, true] defines.REMOUNT = [false, true] defines.SEED = 'range(20)' # limit powerloss testing due to time -if = '!TEST_PLS || N <= 16' +if = '!TEST_PLS || N <= 8' reentrant = true code = ''' // format once per test @@ -4230,13 +4230,13 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose a pseudo-random op, either mkdir or rmdir uint8_t op = TEST_PRNG(&prng) % 2; if (op == 0 || sim_size == 0) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // insert into our sim for (lfs_size_t j = 0;; j++) { if (j >= sim_size || sim[j] >= x) { @@ -6672,14 +6672,14 @@ code = ''' ''' [cases.test_dirs_mv_fuzz] -defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] +defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256] # do more ops than dirs to encourage rename collisions -defines.DENSITY = 2 +defines.OPS = '2*N' defines.PARENT = [false, true] defines.REMOUNT = [false, true] defines.SEED = 'range(20)' # limit powerloss testing due to time -if = '!TEST_PLS || N <= 16' +if = '!TEST_PLS || N <= 8' reentrant = true code = ''' // format once per test @@ -6700,13 +6700,13 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose a pseudo-random op, either mkdir or rename uint8_t op = TEST_PRNG(&prng) % 2; if (op == 0 || sim_size == 0) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // insert into our sim for (lfs_size_t j = 0;; j++) { if (j >= sim_size || sim[j] >= x) { @@ -6735,7 +6735,7 @@ code = ''' // number to rename to lfs_size_t j = TEST_PRNG(&prng) % sim_size; lfs_size_t x = sim[j]; - lfs_size_t y = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t y = TEST_PRNG(&prng) % N; for (lfs_size_t k = 0;; k++) { if (k >= sim_size || sim[k] >= y) { // already seen and not a noop? @@ -6819,14 +6819,14 @@ code = ''' # test all of the operations together [cases.test_dirs_mvrm_fuzz] -defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] +defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256] # do more ops than dirs to encourage rename collisions -defines.DENSITY = 2 +defines.OPS = '2*N' defines.PARENT = [false, true] defines.REMOUNT = [false, true] defines.SEED = 'range(20)' # limit powerloss testing due to time -if = '!TEST_PLS || N <= 16' +if = '!TEST_PLS || N <= 8' reentrant = true code = ''' // format once per test @@ -6847,13 +6847,13 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose a pseudo-random op, either mkdir, remove, or rename uint8_t op = TEST_PRNG(&prng) % 3; if (op == 0 || sim_size == 0) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // insert into our sim for (lfs_size_t j = 0;; j++) { if (j >= sim_size || sim[j] >= x) { @@ -6896,7 +6896,7 @@ code = ''' // number to rename to lfs_size_t j = TEST_PRNG(&prng) % sim_size; lfs_size_t x = sim[j]; - lfs_size_t y = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t y = TEST_PRNG(&prng) % N; for (lfs_size_t k = 0;; k++) { if (k >= sim_size || sim[k] >= y) { // already seen and not a noop? diff --git a/tests/test_files.toml b/tests/test_files.toml index 4efc3dc2..0061dffa 100644 --- a/tests/test_files.toml +++ b/tests/test_files.toml @@ -761,7 +761,7 @@ code = ''' [cases.test_files_fuzz] defines.N = [1, 2, 4, 8, 16, 32, 64] # do more ops than files to encourage file rewrites -defines.DENSITY = 2 +defines.OPS = '2*N' defines.SIZE = [ '0', 'FBUFFER_SIZE/2', @@ -773,7 +773,7 @@ defines.SIZE = [ ] defines.REMOUNT = [false, true] defines.SEED = 'range(20)' -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' lfs_t lfs; lfsr_format(&lfs, CFG) => 0; @@ -785,9 +785,9 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // associate each file with a prng that generates its contents uint32_t wprng = TEST_PRNG(&prng); @@ -1111,7 +1111,7 @@ code = ''' [cases.test_files_rm_fuzz] defines.N = [1, 2, 4, 8, 16, 32, 64] # do more ops than files to encourage file rewrites -defines.DENSITY = 2 +defines.OPS = '2*N' defines.SIZE = [ '0', 'FBUFFER_SIZE/2', @@ -1123,7 +1123,7 @@ defines.SIZE = [ ] defines.REMOUNT = [false, true] defines.SEED = 'range(20)' -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' lfs_t lfs; lfsr_format(&lfs, CFG) => 0; @@ -1135,14 +1135,14 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose which operation to do uint8_t op = TEST_PRNG(&prng) % 2; // creating a new file? if (op == 0 || sim_size == 0) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // associate each file with a prng that generates its contents uint32_t wprng = TEST_PRNG(&prng); @@ -2200,7 +2200,7 @@ code = ''' [cases.test_files_mv_fuzz] defines.N = [1, 2, 4, 8, 16, 32, 64] # do more ops than files to encourage file rewrites -defines.DENSITY = 2 +defines.OPS = '2*N' defines.SIZE = [ '0', 'FBUFFER_SIZE/2', @@ -2212,7 +2212,7 @@ defines.SIZE = [ ] defines.REMOUNT = [false, true] defines.SEED = 'range(20)' -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' lfs_t lfs; lfsr_format(&lfs, CFG) => 0; @@ -2224,14 +2224,14 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose which operation to do uint8_t op = TEST_PRNG(&prng) % 2; // creating a new file? if (op == 0 || sim_size == 0) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // associate each file with a prng that generates its contents uint32_t wprng = TEST_PRNG(&prng); @@ -2276,7 +2276,7 @@ code = ''' // rename to lfs_size_t j = TEST_PRNG(&prng) % sim_size; lfs_size_t x = sim[j]; - lfs_size_t y = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t y = TEST_PRNG(&prng) % N; uint32_t wprng = sim_prngs[j]; // update our sim @@ -2395,7 +2395,7 @@ code = ''' [cases.test_files_mvrm_fuzz] defines.N = [1, 2, 4, 8, 16, 32, 64] # do more ops than files to encourage file rewrites -defines.DENSITY = 2 +defines.OPS = '2*N' defines.SIZE = [ '0', 'FBUFFER_SIZE/2', @@ -2407,7 +2407,7 @@ defines.SIZE = [ ] defines.REMOUNT = [false, true] defines.SEED = 'range(20)' -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' lfs_t lfs; lfsr_format(&lfs, CFG) => 0; @@ -2419,14 +2419,14 @@ code = ''' lfs_size_t sim_size = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { // choose which operation to do uint8_t op = TEST_PRNG(&prng) % 3; // creating a new file? if (op == 0 || sim_size == 0) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // associate each file with a prng that generates its contents uint32_t wprng = TEST_PRNG(&prng); @@ -2488,7 +2488,7 @@ code = ''' // rename to lfs_size_t j = TEST_PRNG(&prng) % sim_size; lfs_size_t x = sim[j]; - lfs_size_t y = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t y = TEST_PRNG(&prng) % N; uint32_t wprng = sim_prngs[j]; // update our sim diff --git a/tests/test_forphans.toml b/tests/test_forphans.toml index b69d6895..d4548af2 100644 --- a/tests/test_forphans.toml +++ b/tests/test_forphans.toml @@ -6651,7 +6651,7 @@ code = ''' [cases.test_forphans_orphanzombie_fuzz] defines.N = [1, 2, 4, 8, 16, 32, 64] # do more ops than files to encourage file rewrites -defines.DENSITY = 2 +defines.OPS = '2*N' defines.SIZE = [ '0', 'FBUFFER_SIZE/2', @@ -6662,7 +6662,7 @@ defines.SIZE = [ '4*BLOCK_SIZE', ] defines.SEED = 'range(20)' -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' lfs_t lfs; lfsr_format(&lfs, CFG) => 0; @@ -6684,18 +6684,18 @@ code = ''' lfs_size_t sim_file_count = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { nonsense:; // choose which operation to do uint8_t op = TEST_PRNG(&prng) % 5; // open a new file? if (op == 0) { - if (sim_file_count >= ((N+DENSITY-1) / DENSITY)) { + if (sim_file_count >= N) { goto nonsense; } // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // already exists? bool orphan = true; @@ -6847,7 +6847,7 @@ code = ''' // rename to lfs_size_t j = TEST_PRNG(&prng) % sim_size; lfs_size_t x = sim[j]; - lfs_size_t y = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t y = TEST_PRNG(&prng) % N; uint32_t wprng = sim_prngs[j]; // update our sim @@ -6989,7 +6989,7 @@ code = ''' [cases.test_forphans_orphanzombiedir_fuzz] defines.N = [1, 2, 4, 8, 16, 32, 64] # do more ops than files to encourage file rewrites -defines.DENSITY = 2 +defines.OPS = '2*N' defines.SIZE = [ '0', 'FBUFFER_SIZE/2', @@ -7000,7 +7000,7 @@ defines.SIZE = [ '4*BLOCK_SIZE', ] defines.SEED = 'range(20)' -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' lfs_t lfs; lfsr_format(&lfs, CFG) => 0; @@ -7023,18 +7023,18 @@ code = ''' lfs_size_t sim_file_count = 0; uint32_t prng = SEED; - for (lfs_size_t i = 0; i < N; i++) { + for (lfs_size_t i = 0; i < OPS; i++) { nonsense:; // choose which operation to do uint8_t op = TEST_PRNG(&prng) % 8; // open a new file? if (op == 0) { - if (sim_file_count >= ((N+DENSITY-1) / DENSITY)) { + if (sim_file_count >= N) { goto nonsense; } // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // already exists? bool orphan = true; @@ -7194,7 +7194,7 @@ code = ''' // rename to lfs_size_t j = TEST_PRNG(&prng) % sim_size; lfs_size_t x = sim[j]; - lfs_size_t y = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t y = TEST_PRNG(&prng) % N; uint32_t wprng = sim_prngs[j]; bool isdir = sim_isdirs[j]; @@ -7270,7 +7270,7 @@ code = ''' // toss a directory into the mix } else if (op == 5) { // choose a pseudo-random number - lfs_size_t x = TEST_PRNG(&prng) % ((N+DENSITY-1) / DENSITY); + lfs_size_t x = TEST_PRNG(&prng) % N; // insert into our sim, use negative numbers for dirs for (lfs_size_t k = 0;; k++) { diff --git a/tests/test_wl.toml b/tests/test_wl.toml index 398df132..df58a5c0 100644 --- a/tests/test_wl.toml +++ b/tests/test_wl.toml @@ -16,7 +16,7 @@ after = [ # dirs + relocations may create problems for gstate [cases.test_wl_dir_fuzz] defines.BLOCK_RECYCLES = [-1, 5, 1, 0] -defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] +defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256] defines.OPS = 1024 defines.REMOUNT = [false, true] defines.SEED = 'range(10)' @@ -177,7 +177,7 @@ defines.SIZE = [ ] defines.REMOUNT = [false, true] defines.SEED = 'range(10)' -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' lfs_t lfs; lfsr_format(&lfs, CFG) => 0; @@ -387,7 +387,7 @@ defines.SIZE = [ '4*BLOCK_SIZE', ] defines.SEED = 'range(10)' -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' lfs_t lfs; lfsr_format(&lfs, CFG) => 0; @@ -726,7 +726,7 @@ defines.SIZE = [ '4*BLOCK_SIZE', ] defines.SEED = 'range(10)' -if = '(SIZE*N)/BLOCK_SIZE <= 32' +if = '(SIZE*N)/BLOCK_SIZE <= 16' code = ''' lfs_t lfs; lfsr_format(&lfs, CFG) => 0;