Trying to better use uncreat/zombie/orphan terms in tests
Renamed a bunch of tests: - test_forphans_create_* -> test_forphans_uncreat_* - test_forphans_cleanup_opened -> test_forphans_cleanup_open - test_forphans_cleanup_orphaned -> test_forphans_cleanup_uncreat - test_forphans_orphanzombie_fuzz -> test_forphans_uz_fuzz - test_forphans_orphanzombiedir_fuzz -> test_forphans_uzd_fuzz - test_*_oz_fuzz -> test_*_uz_fuzz - test_*_ozd_fuzz -> test_*_uzd_fuzz - test_traversal_*_orphan_* -> test_traversal_*_uncreat_* - test_traversal_*_orphaned -> test_traversal_*_uncreat - test_attrs_fattr_orphan -> test_attrs_fattr_uncreat And renamed a number of variables and things.
This commit is contained in:
@@ -1689,8 +1689,8 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
# orphan files should zero attributes
|
||||
[cases.test_attrs_fattr_orphan]
|
||||
# uncreat files should zero attributes
|
||||
[cases.test_attrs_fattr_uncreat]
|
||||
defines.MODE = ['LFS_A_RDWR']
|
||||
defines.MUTSIZE = [false, true]
|
||||
code = '''
|
||||
|
||||
+60
-60
@@ -960,8 +960,8 @@ code = '''
|
||||
}
|
||||
'''
|
||||
|
||||
# badblocks with orphans, zombies, etc
|
||||
[cases.test_badblocks_every_spam_oz_fuzz]
|
||||
# badblocks with uncreats, zombies, etc
|
||||
[cases.test_badblocks_every_spam_uz_fuzz]
|
||||
defines.BADBLOCK = -1
|
||||
defines.BADBLOCK_BEHAVIOR = [
|
||||
'LFS_EMUBD_BADBLOCK_PROGERROR',
|
||||
@@ -999,7 +999,7 @@ code = '''
|
||||
// mark our badblock as bad
|
||||
lfs_emubd_markbad(CFG, badblock) => 0;
|
||||
|
||||
// test with orphans, zombies, etc
|
||||
// test with uncreats, zombies, etc
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs,
|
||||
LFS_F_RDWR
|
||||
@@ -1017,7 +1017,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -1040,17 +1040,17 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -1058,7 +1058,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -1070,7 +1070,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -1117,7 +1117,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
@@ -1331,8 +1331,8 @@ code = '''
|
||||
}
|
||||
'''
|
||||
|
||||
# badblocks with orphans, zombies, dirs, etc
|
||||
[cases.test_badblocks_every_spam_ozd_fuzz]
|
||||
# badblocks with uncreats, zombies, dirs, etc
|
||||
[cases.test_badblocks_every_spam_uzd_fuzz]
|
||||
defines.BADBLOCK = -1
|
||||
defines.BADBLOCK_BEHAVIOR = [
|
||||
'LFS_EMUBD_BADBLOCK_PROGERROR',
|
||||
@@ -1370,7 +1370,7 @@ code = '''
|
||||
// mark our badblock as bad
|
||||
lfs_emubd_markbad(CFG, badblock) => 0;
|
||||
|
||||
// test with orphans, zombies, dirs, etc
|
||||
// test with uncreats, zombies, dirs, etc
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs,
|
||||
LFS_F_RDWR
|
||||
@@ -1389,7 +1389,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -1412,20 +1412,20 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
if (sim_isdirs[j]) {
|
||||
goto nonsense;
|
||||
}
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -1433,7 +1433,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -1445,7 +1445,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -1495,7 +1495,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
@@ -2735,8 +2735,8 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
# badblocks with orphans, zombies, etc
|
||||
[cases.test_badblocks_region_spam_oz_fuzz]
|
||||
# badblocks with uncreats, zombies, etc
|
||||
[cases.test_badblocks_region_spam_uz_fuzz]
|
||||
defines.BADBLOCK_BEHAVIOR = [
|
||||
'LFS_EMUBD_BADBLOCK_PROGERROR',
|
||||
'LFS_EMUBD_BADBLOCK_ERASEERROR',
|
||||
@@ -2779,7 +2779,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
// test with orphans, zombies, etc
|
||||
// test with uncreats, zombies, etc
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs,
|
||||
LFS_F_RDWR
|
||||
@@ -2797,7 +2797,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -2820,17 +2820,17 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -2838,7 +2838,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -2850,7 +2850,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -2896,7 +2896,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
@@ -3107,8 +3107,8 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
# badblocks with orphans, zombies, dirs, etc
|
||||
[cases.test_badblocks_region_spam_ozd_fuzz]
|
||||
# badblocks with uncreats, zombies, dirs, etc
|
||||
[cases.test_badblocks_region_spam_uzd_fuzz]
|
||||
defines.BADBLOCK_BEHAVIOR = [
|
||||
'LFS_EMUBD_BADBLOCK_PROGERROR',
|
||||
'LFS_EMUBD_BADBLOCK_ERASEERROR',
|
||||
@@ -3151,7 +3151,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
// test with orphans, zombies, dirs, etc
|
||||
// test with uncreats, zombies, dirs, etc
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs,
|
||||
LFS_F_RDWR
|
||||
@@ -3170,7 +3170,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -3193,20 +3193,20 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
if (sim_isdirs[j]) {
|
||||
goto nonsense;
|
||||
}
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -3214,7 +3214,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -3226,7 +3226,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -3275,7 +3275,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
@@ -4507,8 +4507,8 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
# badblocks with orphans, zombies, etc
|
||||
[cases.test_badblocks_alternating_spam_oz_fuzz]
|
||||
# badblocks with uncreats, zombies, etc
|
||||
[cases.test_badblocks_alternating_spam_uz_fuzz]
|
||||
defines.BADBLOCK_BEHAVIOR = [
|
||||
'LFS_EMUBD_BADBLOCK_PROGERROR',
|
||||
'LFS_EMUBD_BADBLOCK_ERASEERROR',
|
||||
@@ -4551,7 +4551,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
// test with orphans, zombies, etc
|
||||
// test with uncreats, zombies, etc
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs,
|
||||
LFS_F_RDWR
|
||||
@@ -4569,7 +4569,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -4592,17 +4592,17 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -4610,7 +4610,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -4622,7 +4622,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -4668,7 +4668,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
@@ -4879,8 +4879,8 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
# badblocks with orphans, zombies, dirs, etc
|
||||
[cases.test_badblocks_alternating_spam_ozd_fuzz]
|
||||
# badblocks with uncreats, zombies, dirs, etc
|
||||
[cases.test_badblocks_alternating_spam_uzd_fuzz]
|
||||
defines.BADBLOCK_BEHAVIOR = [
|
||||
'LFS_EMUBD_BADBLOCK_PROGERROR',
|
||||
'LFS_EMUBD_BADBLOCK_ERASEERROR',
|
||||
@@ -4923,7 +4923,7 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
// test with orphans, zombies, dirs, etc
|
||||
// test with uncreats, zombies, dirs, etc
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs,
|
||||
LFS_F_RDWR
|
||||
@@ -4942,7 +4942,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -4965,20 +4965,20 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
if (sim_isdirs[j]) {
|
||||
goto nonsense;
|
||||
}
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -4986,7 +4986,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -4998,7 +4998,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -5047,7 +5047,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
|
||||
+20
-20
@@ -2539,8 +2539,8 @@ corrupt_mounted:;
|
||||
printf("survived %d block errors! (%d)\n", (int)(i/PERIOD), i);
|
||||
'''
|
||||
|
||||
# fuzz errors with orphans, zombies, etc
|
||||
[cases.test_ck_spam_oz_fuzz]
|
||||
# fuzz errors with uncreats, zombies, etc
|
||||
[cases.test_ck_spam_uz_fuzz]
|
||||
defines.BADBLOCK = -1
|
||||
# TODO enable other methods once rollback protection is in place
|
||||
# METHOD=0 => ckprogs
|
||||
@@ -2587,7 +2587,7 @@ code = '''
|
||||
uint32_t badblocks[BLOCK_COUNT];
|
||||
TEST_PERMUTATION(TEST_PRNG(&prng), badblocks, BLOCK_COUNT);
|
||||
|
||||
// test with orphans, zombies, etc
|
||||
// test with uncreats, zombies, etc
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs,
|
||||
LFS_F_RDWR
|
||||
@@ -2611,7 +2611,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -2661,17 +2661,17 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -2679,7 +2679,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
|
||||
@@ -2695,7 +2695,7 @@ code = '''
|
||||
sim_file_count++;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -2746,7 +2746,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
@@ -2979,8 +2979,8 @@ corrupt_mounted:;
|
||||
printf("survived %d block errors!\n", (int)(i/PERIOD));
|
||||
'''
|
||||
|
||||
# fuzz errors with orphans, zombies, dirs, etc
|
||||
[cases.test_ck_spam_ozd_fuzz]
|
||||
# fuzz errors with uncreats, zombies, dirs, etc
|
||||
[cases.test_ck_spam_uzd_fuzz]
|
||||
# TODO enable other methods once rollback protection is in place
|
||||
# METHOD=0 => ckprogs
|
||||
# METHOD=1 => ckfetches
|
||||
@@ -3026,7 +3026,7 @@ code = '''
|
||||
uint32_t badblocks[BLOCK_COUNT];
|
||||
TEST_PERMUTATION(TEST_PRNG(&prng), badblocks, BLOCK_COUNT);
|
||||
|
||||
// test with orphans, zombies, dirs, etc
|
||||
// test with uncreats, zombies, dirs, etc
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs,
|
||||
LFS_F_RDWR
|
||||
@@ -3051,7 +3051,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -3101,20 +3101,20 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
if (sim_isdirs[j]) {
|
||||
goto nonsense;
|
||||
}
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -3122,7 +3122,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
|
||||
@@ -3138,7 +3138,7 @@ code = '''
|
||||
sim_file_count++;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -3192,7 +3192,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
|
||||
+18
-18
@@ -694,8 +694,8 @@ code = '''
|
||||
assert(run_ops[1]*110/100 > 2*run_ops[0]);
|
||||
'''
|
||||
|
||||
# with orphans, zombies, etc
|
||||
[cases.test_exhaustion_spam_oz_fuzz]
|
||||
# with uncreats, zombies, etc
|
||||
[cases.test_exhaustion_spam_uz_fuzz]
|
||||
defines.ERASE_CYCLES = 10
|
||||
defines.BLOCK_RECYCLES = 4
|
||||
defines.BADBLOCK_BEHAVIOR = [
|
||||
@@ -758,7 +758,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -781,17 +781,17 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -799,7 +799,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
|
||||
@@ -815,7 +815,7 @@ code = '''
|
||||
sim_file_count++;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -866,7 +866,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
@@ -1116,8 +1116,8 @@ code = '''
|
||||
assert(run_ops[1]*110/100 > 2*run_ops[0]);
|
||||
'''
|
||||
|
||||
# with orphans, zombies, dirs, etc
|
||||
[cases.test_exhaustion_spam_ozd_fuzz]
|
||||
# with uncreats, zombies, dirs, etc
|
||||
[cases.test_exhaustion_spam_uzd_fuzz]
|
||||
defines.ERASE_CYCLES = 10
|
||||
defines.BLOCK_RECYCLES = 4
|
||||
defines.BADBLOCK_BEHAVIOR = [
|
||||
@@ -1181,7 +1181,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -1204,20 +1204,20 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
if (sim_isdirs[j]) {
|
||||
goto nonsense;
|
||||
}
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -1225,7 +1225,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
|
||||
@@ -1241,7 +1241,7 @@ code = '''
|
||||
sim_file_count++;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -1295,7 +1295,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
|
||||
+36
-32
@@ -3,7 +3,7 @@ after = ['test_fwrite', 'test_fsync']
|
||||
|
||||
|
||||
# Some specific tests
|
||||
[cases.test_forphans_create]
|
||||
[cases.test_forphans_uncreat]
|
||||
defines.SIZE = [
|
||||
'FILE_BUFFER_SIZE/2',
|
||||
'2*FILE_BUFFER_SIZE',
|
||||
@@ -214,7 +214,7 @@ code = '''
|
||||
lfsr_unmount(&lfs_) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_forphans_create_pl]
|
||||
[cases.test_forphans_uncreat_pl]
|
||||
defines.SIZE = [
|
||||
'FILE_BUFFER_SIZE/2',
|
||||
'2*FILE_BUFFER_SIZE',
|
||||
@@ -291,7 +291,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_forphans_create_many_pl]
|
||||
[cases.test_forphans_uncreat_many_pl]
|
||||
defines.SIZE = [
|
||||
'FILE_BUFFER_SIZE/2',
|
||||
'2*FILE_BUFFER_SIZE',
|
||||
@@ -378,7 +378,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_forphans_create_sync_wr]
|
||||
[cases.test_forphans_uncreat_sync_wr]
|
||||
defines.SIZE = [
|
||||
'FILE_BUFFER_SIZE/2',
|
||||
'2*FILE_BUFFER_SIZE',
|
||||
@@ -585,7 +585,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_forphans_create_sync_rw]
|
||||
[cases.test_forphans_uncreat_sync_rw]
|
||||
defines.SIZE = [
|
||||
'FILE_BUFFER_SIZE/2',
|
||||
'2*FILE_BUFFER_SIZE',
|
||||
@@ -786,7 +786,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_forphans_create_desync_wdwr]
|
||||
[cases.test_forphans_uncreat_desync_wdwr]
|
||||
defines.SIZE = [
|
||||
'FILE_BUFFER_SIZE/2',
|
||||
'2*FILE_BUFFER_SIZE',
|
||||
@@ -4635,8 +4635,8 @@ code = '''
|
||||
|
||||
uint32_t prng = 42;
|
||||
|
||||
// create some unrelated files to make sure cleaning up orphans doesn't
|
||||
// break other filesystem things
|
||||
// create some unrelated files to make sure cleaning up orphans
|
||||
// doesn't break other filesystem things
|
||||
uint32_t bookend_prngs[2] = {0, 0};
|
||||
if (BOOKENDS & 0x1) {
|
||||
lfsr_file_t file;
|
||||
@@ -4754,7 +4754,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_forphans_cleanup_opened]
|
||||
[cases.test_forphans_cleanup_open]
|
||||
defines.SIZE = [
|
||||
'FILE_BUFFER_SIZE/2',
|
||||
'2*FILE_BUFFER_SIZE',
|
||||
@@ -4776,8 +4776,10 @@ code = '''
|
||||
|
||||
uint32_t prng = 42;
|
||||
|
||||
// create some unrelated files to make sure cleaning up orphans doesn't
|
||||
// break other filesystem things
|
||||
// create some unrelated opened files to make sure cleaning up
|
||||
// orphans doesn't break other filesystem things
|
||||
//
|
||||
// note we leave these open in this test
|
||||
lfsr_file_t bookend_files[2];
|
||||
uint32_t bookend_prngs[2] = {0, 0};
|
||||
if (BOOKENDS & 0x1) {
|
||||
@@ -4904,7 +4906,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_forphans_cleanup_orphaned]
|
||||
[cases.test_forphans_cleanup_uncreat]
|
||||
defines.SIZE = [
|
||||
'FILE_BUFFER_SIZE/2',
|
||||
'2*FILE_BUFFER_SIZE',
|
||||
@@ -4926,8 +4928,10 @@ code = '''
|
||||
|
||||
uint32_t prng = 42;
|
||||
|
||||
// create some unrelated files to make sure cleaning up orphans doesn't
|
||||
// break other filesystem things
|
||||
// create some unrelated uncreat files to make sure cleaning up
|
||||
// orphans doesn't break other filesystem things
|
||||
//
|
||||
// note we leave these uncreated in this test
|
||||
lfsr_file_t bookend_files[2];
|
||||
uint32_t bookend_prngs[2] = {0, 0};
|
||||
if (BOOKENDS & 0x1) {
|
||||
@@ -7347,8 +7351,8 @@ code = '''
|
||||
|
||||
|
||||
|
||||
# fuzz tests involving many orphans + zombies, this gets a bit crazy
|
||||
[cases.test_forphans_orphanzombie_fuzz]
|
||||
# fuzz tests involving many uncreats + zombies, this gets a bit crazy
|
||||
[cases.test_forphans_uz_fuzz]
|
||||
defines.N = [1, 2, 4, 8, 16, 32, 64]
|
||||
# do more ops than files to encourage file rewrites
|
||||
defines.OPS = '2*N'
|
||||
@@ -7376,7 +7380,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -7399,17 +7403,17 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -7417,7 +7421,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -7429,7 +7433,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -7475,7 +7479,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
@@ -7686,8 +7690,8 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
# fuzz tests involving many orphans + zombies + dirs, this gets a bit crazy
|
||||
[cases.test_forphans_orphanzombiedir_fuzz]
|
||||
# fuzz tests involving many uncreats + zombies + dirs, this gets a bit crazy
|
||||
[cases.test_forphans_uzd_fuzz]
|
||||
defines.N = [1, 2, 4, 8, 16, 32, 64]
|
||||
# do more ops than files to encourage file rewrites
|
||||
defines.OPS = '2*N'
|
||||
@@ -7716,7 +7720,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -7739,20 +7743,20 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
if (sim_isdirs[j]) {
|
||||
goto nonsense;
|
||||
}
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -7760,7 +7764,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -7772,7 +7776,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -7821,7 +7825,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
|
||||
+18
-18
@@ -2468,7 +2468,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_gc_spam_oz_fuzz]
|
||||
[cases.test_gc_spam_uz_fuzz]
|
||||
defines.GC_STEPS = [-1, 1, 2, 10, 100, 1000]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
@@ -2492,7 +2492,7 @@ defines.SEED = 42
|
||||
fuzz = 'SEED'
|
||||
if = '(SIZE*N)/BLOCK_SIZE <= 16'
|
||||
code = '''
|
||||
// test with orphans, zombies, etc
|
||||
// test with uncreats, zombies, etc
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs, LFS_F_RDWR, CFG) => 0;
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
@@ -2504,7 +2504,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -2527,17 +2527,17 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -2545,7 +2545,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -2557,7 +2557,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -2603,7 +2603,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
@@ -2824,7 +2824,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_gc_spam_ozd_fuzz]
|
||||
[cases.test_gc_spam_uzd_fuzz]
|
||||
defines.GC_STEPS = [-1, 1, 2, 10, 100, 1000]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
@@ -2848,7 +2848,7 @@ defines.SEED = 42
|
||||
fuzz = 'SEED'
|
||||
if = '(SIZE*N)/BLOCK_SIZE <= 16'
|
||||
code = '''
|
||||
// test with orphans, zombies, dirs, etc
|
||||
// test with uncreats, zombies, dirs, etc
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs, LFS_F_RDWR, CFG) => 0;
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
@@ -2861,7 +2861,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -2884,20 +2884,20 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
if (sim_isdirs[j]) {
|
||||
goto nonsense;
|
||||
}
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -2905,7 +2905,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -2917,7 +2917,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -2966,7 +2966,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
|
||||
+16
-16
@@ -1237,7 +1237,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_grow_incr_spam_oz_fuzz]
|
||||
[cases.test_grow_incr_spam_uz_fuzz]
|
||||
defines.INIT_BLOCK_COUNT = 2
|
||||
defines.N = [1, 2, 4, 8, 16, 32, 64]
|
||||
defines.OPS = 1024
|
||||
@@ -1277,7 +1277,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -1302,17 +1302,17 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng_) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng_);
|
||||
}
|
||||
|
||||
@@ -1331,7 +1331,7 @@ code = '''
|
||||
}
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
uint32_t wprng_ = wprng;
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
@@ -1349,7 +1349,7 @@ code = '''
|
||||
|
||||
// open in our sim
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -1412,7 +1412,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
@@ -1661,7 +1661,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_grow_incr_spam_ozd_fuzz]
|
||||
[cases.test_grow_incr_spam_uzd_fuzz]
|
||||
defines.INIT_BLOCK_COUNT = 2
|
||||
defines.N = [1, 2, 4, 8, 16, 32, 64]
|
||||
defines.OPS = 1024
|
||||
@@ -1702,7 +1702,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -1727,20 +1727,20 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng_) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
if (sim_isdirs[j]) {
|
||||
goto nonsense;
|
||||
}
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng_);
|
||||
}
|
||||
|
||||
@@ -1759,7 +1759,7 @@ code = '''
|
||||
}
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
uint32_t wprng_ = wprng;
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
@@ -1777,7 +1777,7 @@ code = '''
|
||||
|
||||
// open in our sim
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -1843,7 +1843,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
|
||||
+17
-17
@@ -527,8 +527,8 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
# open files + relocations may create problems for orphans/zombies
|
||||
[cases.test_relocations_spam_oz_fuzz]
|
||||
# open files + relocations may create problems for uncreats/zombies
|
||||
[cases.test_relocations_spam_uz_fuzz]
|
||||
defines.BLOCK_RECYCLES = [4, 1, 0]
|
||||
defines.N = [1, 2, 4, 8, 16, 32, 64]
|
||||
defines.OPS = 1024
|
||||
@@ -556,7 +556,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -579,17 +579,17 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -597,7 +597,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -609,7 +609,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -655,7 +655,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
@@ -868,7 +868,7 @@ code = '''
|
||||
|
||||
# open files + dirs + relocations can cause so many problems it's not worth
|
||||
# listing them
|
||||
[cases.test_relocations_spam_ozd_fuzz]
|
||||
[cases.test_relocations_spam_uzd_fuzz]
|
||||
defines.BLOCK_RECYCLES = [4, 1, 0]
|
||||
defines.N = [1, 2, 4, 8, 16, 32, 64]
|
||||
defines.OPS = 1024
|
||||
@@ -897,7 +897,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -920,20 +920,20 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
if (sim_isdirs[j]) {
|
||||
goto nonsense;
|
||||
}
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -941,7 +941,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -953,7 +953,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -1002,7 +1002,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
|
||||
+23
-23
@@ -2449,7 +2449,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_traversal_mutation_orphan_bsprout]
|
||||
[cases.test_traversal_mutation_uncreat_bsprout]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@@ -2533,7 +2533,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_traversal_mutation_orphan_btree]
|
||||
[cases.test_traversal_mutation_uncreat_btree]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@@ -2632,7 +2632,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_traversal_mutation_orphan_bshrub]
|
||||
[cases.test_traversal_mutation_uncreat_bshrub]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@@ -6658,7 +6658,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_traversal_mkconsistent_btree_orphaned]
|
||||
[cases.test_traversal_mkconsistent_btree_uncreat]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@@ -6975,7 +6975,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_traversal_mkconsistent_bshrub_orphaned]
|
||||
[cases.test_traversal_mkconsistent_bshrub_uncreat]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@@ -8297,7 +8297,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_traversal_spam_oz_fuzz]
|
||||
[cases.test_traversal_spam_uz_fuzz]
|
||||
# traverse steps between each op
|
||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
@@ -8322,7 +8322,7 @@ defines.SEED = 42
|
||||
fuzz = 'SEED'
|
||||
if = '(SIZE*N)/BLOCK_SIZE <= 16'
|
||||
code = '''
|
||||
// test with orphans, zombies, etc
|
||||
// test with uncreats, zombies, etc
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs, LFS_F_RDWR, CFG) => 0;
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
@@ -8334,7 +8334,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -8366,17 +8366,17 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -8384,7 +8384,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -8396,7 +8396,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -8442,7 +8442,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
@@ -8668,7 +8668,7 @@ code = '''
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_traversal_spam_ozd_fuzz]
|
||||
[cases.test_traversal_spam_uzd_fuzz]
|
||||
# traverse steps between each op
|
||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
@@ -8693,7 +8693,7 @@ defines.SEED = 42
|
||||
fuzz = 'SEED'
|
||||
if = '(SIZE*N)/BLOCK_SIZE <= 16'
|
||||
code = '''
|
||||
// test with orphans, zombies, dirs, etc
|
||||
// test with uncreats, zombies, dirs, etc
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs, LFS_F_RDWR, CFG) => 0;
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
@@ -8706,7 +8706,7 @@ code = '''
|
||||
|
||||
typedef struct sim_file {
|
||||
lfs_size_t x;
|
||||
bool orphan;
|
||||
bool uncreat;
|
||||
bool zombie;
|
||||
uint32_t prng;
|
||||
lfsr_file_t file;
|
||||
@@ -8738,20 +8738,20 @@ code = '''
|
||||
lfs_size_t x = TEST_PRNG(&prng) % N;
|
||||
|
||||
// already exists?
|
||||
bool orphan = true;
|
||||
bool uncreat = true;
|
||||
uint32_t wprng = 0;
|
||||
for (lfs_size_t j = 0; j < sim_size; j++) {
|
||||
if (sim[j] == x) {
|
||||
if (sim_isdirs[j]) {
|
||||
goto nonsense;
|
||||
}
|
||||
orphan = false;
|
||||
uncreat = false;
|
||||
wprng = sim_prngs[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// choose a random seed if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
wprng = TEST_PRNG(&prng);
|
||||
}
|
||||
|
||||
@@ -8759,7 +8759,7 @@ code = '''
|
||||
lfs_size_t j = sim_file_count;
|
||||
sim_files[j] = malloc(sizeof(sim_file_t));
|
||||
sim_files[j]->x = x;
|
||||
sim_files[j]->orphan = orphan;
|
||||
sim_files[j]->uncreat = uncreat;
|
||||
sim_files[j]->zombie = false;
|
||||
sim_files[j]->prng = wprng;
|
||||
sim_file_count++;
|
||||
@@ -8771,7 +8771,7 @@ code = '''
|
||||
LFS_O_RDWR | LFS_O_CREAT) => 0;
|
||||
|
||||
// write some initial data if we don't exist
|
||||
if (orphan) {
|
||||
if (uncreat) {
|
||||
uint8_t wbuf[SIZE];
|
||||
for (lfs_size_t k = 0; k < SIZE; k++) {
|
||||
wbuf[k] = 'a' + (TEST_PRNG(&wprng) % 26);
|
||||
@@ -8820,7 +8820,7 @@ code = '''
|
||||
// update related sim files
|
||||
for (lfs_size_t k = 0; k < sim_file_count; k++) {
|
||||
if (sim_files[k]->x == x && !sim_files[k]->zombie) {
|
||||
sim_files[k]->orphan = false;
|
||||
sim_files[k]->uncreat = false;
|
||||
sim_files[k]->prng = wprng;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user