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.
This commit is contained in:
Christopher Haster
2024-05-27 01:32:47 -05:00
parent fe11a33416
commit 15da817af5
5 changed files with 87 additions and 87 deletions
+30 -30
View File
@@ -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++) {
+22 -22
View File
@@ -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?
+18 -18
View File
@@ -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
+13 -13
View File
@@ -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++) {
+4 -4
View File
@@ -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;