Generated v2 prefixes

This commit is contained in:
geky-bot
2023-05-04 18:31:30 +00:00
67 changed files with 26771 additions and 5203 deletions
+94 -75
View File
@@ -1,28 +1,30 @@
# bad blocks with block cycles should be tested in test_relocations
if = 'LFS2_BLOCK_CYCLES == -1'
if = '(int32_t)BLOCK_CYCLES == -1'
[[case]] # single bad blocks
define.LFS2_BLOCK_COUNT = 256 # small bd so test runs faster
define.LFS2_ERASE_CYCLES = 0xffffffff
define.LFS2_ERASE_VALUE = [0x00, 0xff, -1]
define.LFS2_BADBLOCK_BEHAVIOR = [
'LFS2_TESTBD_BADBLOCK_PROGERROR',
'LFS2_TESTBD_BADBLOCK_ERASEERROR',
'LFS2_TESTBD_BADBLOCK_READERROR',
'LFS2_TESTBD_BADBLOCK_PROGNOOP',
'LFS2_TESTBD_BADBLOCK_ERASENOOP',
[cases.test_badblocks_single]
defines.BLOCK_COUNT = 256 # small bd so test runs faster
defines.ERASE_CYCLES = 0xffffffff
defines.ERASE_VALUE = [0x00, 0xff, -1]
defines.BADBLOCK_BEHAVIOR = [
'LFS2_EMUBD_BADBLOCK_PROGERROR',
'LFS2_EMUBD_BADBLOCK_ERASEERROR',
'LFS2_EMUBD_BADBLOCK_READERROR',
'LFS2_EMUBD_BADBLOCK_PROGNOOP',
'LFS2_EMUBD_BADBLOCK_ERASENOOP',
]
define.NAMEMULT = 64
define.FILEMULT = 1
defines.NAMEMULT = 64
defines.FILEMULT = 1
code = '''
for (lfs2_block_t badblock = 2; badblock < LFS2_BLOCK_COUNT; badblock++) {
lfs2_testbd_setwear(&cfg, badblock-1, 0) => 0;
lfs2_testbd_setwear(&cfg, badblock, 0xffffffff) => 0;
lfs2_format(&lfs2, &cfg) => 0;
for (lfs2_block_t badblock = 2; badblock < BLOCK_COUNT; badblock++) {
lfs2_emubd_setwear(cfg, badblock-1, 0) => 0;
lfs2_emubd_setwear(cfg, badblock, 0xffffffff) => 0;
lfs2_mount(&lfs2, &cfg) => 0;
lfs2_t lfs2;
lfs2_format(&lfs2, cfg) => 0;
lfs2_mount(&lfs2, cfg) => 0;
for (int i = 1; i < 10; i++) {
uint8_t buffer[1024];
for (int j = 0; j < NAMEMULT; j++) {
buffer[j] = '0'+i;
}
@@ -34,10 +36,11 @@ code = '''
buffer[j+NAMEMULT+1] = '0'+i;
}
buffer[2*NAMEMULT+1] = '\0';
lfs2_file_t file;
lfs2_file_open(&lfs2, &file, (char*)buffer,
LFS2_O_WRONLY | LFS2_O_CREAT) => 0;
size = NAMEMULT;
lfs2_size_t size = NAMEMULT;
for (int j = 0; j < i*FILEMULT; j++) {
lfs2_file_write(&lfs2, &file, buffer, size) => size;
}
@@ -46,12 +49,14 @@ code = '''
}
lfs2_unmount(&lfs2) => 0;
lfs2_mount(&lfs2, &cfg) => 0;
lfs2_mount(&lfs2, cfg) => 0;
for (int i = 1; i < 10; i++) {
uint8_t buffer[1024];
for (int j = 0; j < NAMEMULT; j++) {
buffer[j] = '0'+i;
}
buffer[NAMEMULT] = '\0';
struct lfs2_info info;
lfs2_stat(&lfs2, (char*)buffer, &info) => 0;
info.type => LFS2_TYPE_DIR;
@@ -60,9 +65,10 @@ code = '''
buffer[j+NAMEMULT+1] = '0'+i;
}
buffer[2*NAMEMULT+1] = '\0';
lfs2_file_t file;
lfs2_file_open(&lfs2, &file, (char*)buffer, LFS2_O_RDONLY) => 0;
size = NAMEMULT;
int size = NAMEMULT;
for (int j = 0; j < i*FILEMULT; j++) {
uint8_t rbuffer[1024];
lfs2_file_read(&lfs2, &file, rbuffer, size) => size;
@@ -75,28 +81,30 @@ code = '''
}
'''
[[case]] # region corruption (causes cascading failures)
define.LFS2_BLOCK_COUNT = 256 # small bd so test runs faster
define.LFS2_ERASE_CYCLES = 0xffffffff
define.LFS2_ERASE_VALUE = [0x00, 0xff, -1]
define.LFS2_BADBLOCK_BEHAVIOR = [
'LFS2_TESTBD_BADBLOCK_PROGERROR',
'LFS2_TESTBD_BADBLOCK_ERASEERROR',
'LFS2_TESTBD_BADBLOCK_READERROR',
'LFS2_TESTBD_BADBLOCK_PROGNOOP',
'LFS2_TESTBD_BADBLOCK_ERASENOOP',
[cases.test_badblocks_region_corruption] # (causes cascading failures)
defines.BLOCK_COUNT = 256 # small bd so test runs faster
defines.ERASE_CYCLES = 0xffffffff
defines.ERASE_VALUE = [0x00, 0xff, -1]
defines.BADBLOCK_BEHAVIOR = [
'LFS2_EMUBD_BADBLOCK_PROGERROR',
'LFS2_EMUBD_BADBLOCK_ERASEERROR',
'LFS2_EMUBD_BADBLOCK_READERROR',
'LFS2_EMUBD_BADBLOCK_PROGNOOP',
'LFS2_EMUBD_BADBLOCK_ERASENOOP',
]
define.NAMEMULT = 64
define.FILEMULT = 1
defines.NAMEMULT = 64
defines.FILEMULT = 1
code = '''
for (lfs2_block_t i = 0; i < (LFS2_BLOCK_COUNT-2)/2; i++) {
lfs2_testbd_setwear(&cfg, i+2, 0xffffffff) => 0;
for (lfs2_block_t i = 0; i < (BLOCK_COUNT-2)/2; i++) {
lfs2_emubd_setwear(cfg, i+2, 0xffffffff) => 0;
}
lfs2_format(&lfs2, &cfg) => 0;
lfs2_mount(&lfs2, &cfg) => 0;
lfs2_t lfs2;
lfs2_format(&lfs2, cfg) => 0;
lfs2_mount(&lfs2, cfg) => 0;
for (int i = 1; i < 10; i++) {
uint8_t buffer[1024];
for (int j = 0; j < NAMEMULT; j++) {
buffer[j] = '0'+i;
}
@@ -108,10 +116,11 @@ code = '''
buffer[j+NAMEMULT+1] = '0'+i;
}
buffer[2*NAMEMULT+1] = '\0';
lfs2_file_t file;
lfs2_file_open(&lfs2, &file, (char*)buffer,
LFS2_O_WRONLY | LFS2_O_CREAT) => 0;
size = NAMEMULT;
lfs2_size_t size = NAMEMULT;
for (int j = 0; j < i*FILEMULT; j++) {
lfs2_file_write(&lfs2, &file, buffer, size) => size;
}
@@ -120,12 +129,14 @@ code = '''
}
lfs2_unmount(&lfs2) => 0;
lfs2_mount(&lfs2, &cfg) => 0;
lfs2_mount(&lfs2, cfg) => 0;
for (int i = 1; i < 10; i++) {
uint8_t buffer[1024];
for (int j = 0; j < NAMEMULT; j++) {
buffer[j] = '0'+i;
}
buffer[NAMEMULT] = '\0';
struct lfs2_info info;
lfs2_stat(&lfs2, (char*)buffer, &info) => 0;
info.type => LFS2_TYPE_DIR;
@@ -134,9 +145,10 @@ code = '''
buffer[j+NAMEMULT+1] = '0'+i;
}
buffer[2*NAMEMULT+1] = '\0';
lfs2_file_t file;
lfs2_file_open(&lfs2, &file, (char*)buffer, LFS2_O_RDONLY) => 0;
size = NAMEMULT;
lfs2_size_t size = NAMEMULT;
for (int j = 0; j < i*FILEMULT; j++) {
uint8_t rbuffer[1024];
lfs2_file_read(&lfs2, &file, rbuffer, size) => size;
@@ -148,28 +160,30 @@ code = '''
lfs2_unmount(&lfs2) => 0;
'''
[[case]] # alternating corruption (causes cascading failures)
define.LFS2_BLOCK_COUNT = 256 # small bd so test runs faster
define.LFS2_ERASE_CYCLES = 0xffffffff
define.LFS2_ERASE_VALUE = [0x00, 0xff, -1]
define.LFS2_BADBLOCK_BEHAVIOR = [
'LFS2_TESTBD_BADBLOCK_PROGERROR',
'LFS2_TESTBD_BADBLOCK_ERASEERROR',
'LFS2_TESTBD_BADBLOCK_READERROR',
'LFS2_TESTBD_BADBLOCK_PROGNOOP',
'LFS2_TESTBD_BADBLOCK_ERASENOOP',
[cases.test_badblocks_alternating_corruption] # (causes cascading failures)
defines.BLOCK_COUNT = 256 # small bd so test runs faster
defines.ERASE_CYCLES = 0xffffffff
defines.ERASE_VALUE = [0x00, 0xff, -1]
defines.BADBLOCK_BEHAVIOR = [
'LFS2_EMUBD_BADBLOCK_PROGERROR',
'LFS2_EMUBD_BADBLOCK_ERASEERROR',
'LFS2_EMUBD_BADBLOCK_READERROR',
'LFS2_EMUBD_BADBLOCK_PROGNOOP',
'LFS2_EMUBD_BADBLOCK_ERASENOOP',
]
define.NAMEMULT = 64
define.FILEMULT = 1
defines.NAMEMULT = 64
defines.FILEMULT = 1
code = '''
for (lfs2_block_t i = 0; i < (LFS2_BLOCK_COUNT-2)/2; i++) {
lfs2_testbd_setwear(&cfg, (2*i) + 2, 0xffffffff) => 0;
for (lfs2_block_t i = 0; i < (BLOCK_COUNT-2)/2; i++) {
lfs2_emubd_setwear(cfg, (2*i) + 2, 0xffffffff) => 0;
}
lfs2_format(&lfs2, &cfg) => 0;
lfs2_mount(&lfs2, &cfg) => 0;
lfs2_t lfs2;
lfs2_format(&lfs2, cfg) => 0;
lfs2_mount(&lfs2, cfg) => 0;
for (int i = 1; i < 10; i++) {
uint8_t buffer[1024];
for (int j = 0; j < NAMEMULT; j++) {
buffer[j] = '0'+i;
}
@@ -181,10 +195,11 @@ code = '''
buffer[j+NAMEMULT+1] = '0'+i;
}
buffer[2*NAMEMULT+1] = '\0';
lfs2_file_t file;
lfs2_file_open(&lfs2, &file, (char*)buffer,
LFS2_O_WRONLY | LFS2_O_CREAT) => 0;
size = NAMEMULT;
lfs2_size_t size = NAMEMULT;
for (int j = 0; j < i*FILEMULT; j++) {
lfs2_file_write(&lfs2, &file, buffer, size) => size;
}
@@ -193,12 +208,14 @@ code = '''
}
lfs2_unmount(&lfs2) => 0;
lfs2_mount(&lfs2, &cfg) => 0;
lfs2_mount(&lfs2, cfg) => 0;
for (int i = 1; i < 10; i++) {
uint8_t buffer[1024];
for (int j = 0; j < NAMEMULT; j++) {
buffer[j] = '0'+i;
}
buffer[NAMEMULT] = '\0';
struct lfs2_info info;
lfs2_stat(&lfs2, (char*)buffer, &info) => 0;
info.type => LFS2_TYPE_DIR;
@@ -207,9 +224,10 @@ code = '''
buffer[j+NAMEMULT+1] = '0'+i;
}
buffer[2*NAMEMULT+1] = '\0';
lfs2_file_t file;
lfs2_file_open(&lfs2, &file, (char*)buffer, LFS2_O_RDONLY) => 0;
size = NAMEMULT;
lfs2_size_t size = NAMEMULT;
for (int j = 0; j < i*FILEMULT; j++) {
uint8_t rbuffer[1024];
lfs2_file_read(&lfs2, &file, rbuffer, size) => size;
@@ -222,20 +240,21 @@ code = '''
'''
# other corner cases
[[case]] # bad superblocks (corrupt 1 or 0)
define.LFS2_ERASE_CYCLES = 0xffffffff
define.LFS2_ERASE_VALUE = [0x00, 0xff, -1]
define.LFS2_BADBLOCK_BEHAVIOR = [
'LFS2_TESTBD_BADBLOCK_PROGERROR',
'LFS2_TESTBD_BADBLOCK_ERASEERROR',
'LFS2_TESTBD_BADBLOCK_READERROR',
'LFS2_TESTBD_BADBLOCK_PROGNOOP',
'LFS2_TESTBD_BADBLOCK_ERASENOOP',
[cases.test_badblocks_superblocks] # (corrupt 1 or 0)
defines.ERASE_CYCLES = 0xffffffff
defines.ERASE_VALUE = [0x00, 0xff, -1]
defines.BADBLOCK_BEHAVIOR = [
'LFS2_EMUBD_BADBLOCK_PROGERROR',
'LFS2_EMUBD_BADBLOCK_ERASEERROR',
'LFS2_EMUBD_BADBLOCK_READERROR',
'LFS2_EMUBD_BADBLOCK_PROGNOOP',
'LFS2_EMUBD_BADBLOCK_ERASENOOP',
]
code = '''
lfs2_testbd_setwear(&cfg, 0, 0xffffffff) => 0;
lfs2_testbd_setwear(&cfg, 1, 0xffffffff) => 0;
lfs2_emubd_setwear(cfg, 0, 0xffffffff) => 0;
lfs2_emubd_setwear(cfg, 1, 0xffffffff) => 0;
lfs2_format(&lfs2, &cfg) => LFS2_ERR_NOSPC;
lfs2_mount(&lfs2, &cfg) => LFS2_ERR_CORRUPT;
lfs2_t lfs2;
lfs2_format(&lfs2, cfg) => LFS2_ERR_NOSPC;
lfs2_mount(&lfs2, cfg) => LFS2_ERR_CORRUPT;
'''