Added stickynotes to test_attrs
This adds stickynotes as a target type for most of the test_attrs tests. These were already parameterized for reg + dir + root, but they did need some tweaks to allow us to keep files open for most of the test. I don't really see a use case for this feature, but it keeps the API consistent. The file name itself is also sort of an attr, and the whole point of stickynotes is to have something to attach the file name to, so attaching other attrs makes sense I guess?
This commit is contained in:
+356
-88
@@ -8,25 +8,33 @@ after = ['test_files', 'test_fsync', 'test_stickynotes']
|
||||
[cases.test_attrs_setattr]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
# FILETYPE=2 => root
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
# FILETYPE=3 => root
|
||||
defines.FILETYPE = [0, 1, 2, 3]
|
||||
code = '''
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs, LFS_F_RDWR, CFG) => 0;
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
|
||||
const char *path;
|
||||
lfsr_file_t file;
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
path = "cat";
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow")) => strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
|
||||
// create a dir?
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
path = "snail";
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "snailnoise", strlen("snailnoise"))
|
||||
=> strlen("snailnoise");
|
||||
|
||||
// create a dir?
|
||||
} else if (FILETYPE == 2) {
|
||||
path = "armadillo";
|
||||
lfsr_mkdir(&lfs, path) => 0;
|
||||
|
||||
@@ -43,6 +51,10 @@ code = '''
|
||||
const char *c = "Three slash four cup vegetable oil.";
|
||||
lfsr_setattr(&lfs, path, 'c', c, strlen(c)) => 0;
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -71,9 +83,10 @@ code = '''
|
||||
[cases.test_attrs_setattr_trunc]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
# FILETYPE=2 => root
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
# FILETYPE=3 => root
|
||||
defines.FILETYPE = [0, 1, 2, 3]
|
||||
defines.BUFSIZE = [1, 4, 7]
|
||||
code = '''
|
||||
lfs_t lfs;
|
||||
@@ -81,16 +94,23 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
|
||||
const char *path;
|
||||
lfsr_file_t file;
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
path = "cat";
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow")) => strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
|
||||
// create a dir?
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
path = "snail";
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "snailnoise", strlen("snailnoise"))
|
||||
=> strlen("snailnoise");
|
||||
|
||||
// create a dir?
|
||||
} else if (FILETYPE == 2) {
|
||||
path = "armadillo";
|
||||
lfsr_mkdir(&lfs, path) => 0;
|
||||
|
||||
@@ -107,6 +127,10 @@ code = '''
|
||||
const char *c = "Three slash four cup vegetable oil.";
|
||||
lfsr_setattr(&lfs, path, 'c', c, strlen(c)) => 0;
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -149,15 +173,17 @@ code = '''
|
||||
[cases.test_attrs_setattr_noattr]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
# FILETYPE=2 => root
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
# FILETYPE=3 => root
|
||||
defines.FILETYPE = [0, 1, 2, 3]
|
||||
code = '''
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs, LFS_F_RDWR, CFG) => 0;
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
|
||||
const char *path;
|
||||
lfsr_file_t file;
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
path = "cat";
|
||||
@@ -166,8 +192,15 @@ code = '''
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow")) => strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
|
||||
// create a dir?
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
path = "snail";
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "snailnoise", strlen("snailnoise"))
|
||||
=> strlen("snailnoise");
|
||||
|
||||
// create a dir?
|
||||
} else if (FILETYPE == 2) {
|
||||
path = "armadillo";
|
||||
lfsr_mkdir(&lfs, path) => 0;
|
||||
|
||||
@@ -186,6 +219,10 @@ code = '''
|
||||
lfsr_getattr(&lfs, path, 'b', rbuf, sizeof(rbuf)) => LFS_ERR_NOATTR;
|
||||
lfsr_getattr(&lfs, path, 'c', rbuf, sizeof(rbuf)) => LFS_ERR_NOATTR;
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -213,9 +250,10 @@ code = '''
|
||||
[cases.test_attrs_setattr_update]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
# FILETYPE=2 => root
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
# FILETYPE=3 => root
|
||||
defines.FILETYPE = [0, 1, 2, 3]
|
||||
# update based on this mask
|
||||
defines.MASK = 'range(0x8)'
|
||||
code = '''
|
||||
@@ -224,16 +262,23 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
|
||||
const char *path;
|
||||
lfsr_file_t file;
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
path = "cat";
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow")) => strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
|
||||
// create a dir?
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
path = "snail";
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "snailnoise", strlen("snailnoise"))
|
||||
=> strlen("snailnoise");
|
||||
|
||||
// create a dir?
|
||||
} else if (FILETYPE == 2) {
|
||||
path = "armadillo";
|
||||
lfsr_mkdir(&lfs, path) => 0;
|
||||
|
||||
@@ -264,6 +309,10 @@ code = '''
|
||||
lfsr_setattr(&lfs, path, 'c', c_, strlen(c_)) => 0;
|
||||
}
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -320,9 +369,10 @@ code = '''
|
||||
[cases.test_attrs_removeattr]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
# FILETYPE=2 => root
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
# FILETYPE=3 => root
|
||||
defines.FILETYPE = [0, 1, 2, 3]
|
||||
# remove based on this mask
|
||||
defines.MASK = 'range(0x8)'
|
||||
code = '''
|
||||
@@ -331,16 +381,23 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
|
||||
const char *path;
|
||||
lfsr_file_t file;
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
path = "cat";
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow")) => strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
|
||||
// create a dir?
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
path = "snail";
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "snailnoise", strlen("snailnoise"))
|
||||
=> strlen("snailnoise");
|
||||
|
||||
// create a dir?
|
||||
} else if (FILETYPE == 2) {
|
||||
path = "armadillo";
|
||||
lfsr_mkdir(&lfs, path) => 0;
|
||||
|
||||
@@ -368,6 +425,10 @@ code = '''
|
||||
lfsr_removeattr(&lfs, path, 'c') => 0;
|
||||
}
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -428,9 +489,10 @@ code = '''
|
||||
[cases.test_attrs_all]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
# FILETYPE=2 => root
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
# FILETYPE=3 => root
|
||||
defines.FILETYPE = [0, 1, 2, 3]
|
||||
defines.SIZE = 4
|
||||
code = '''
|
||||
lfs_t lfs;
|
||||
@@ -438,16 +500,23 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
|
||||
const char *path;
|
||||
lfsr_file_t file;
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
path = "cat";
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow")) => strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
|
||||
// create a dir?
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
path = "snail";
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "snailnoise", strlen("snailnoise"))
|
||||
=> strlen("snailnoise");
|
||||
|
||||
// create a dir?
|
||||
} else if (FILETYPE == 2) {
|
||||
path = "armadillo";
|
||||
lfsr_mkdir(&lfs, path) => 0;
|
||||
|
||||
@@ -477,6 +546,9 @@ code = '''
|
||||
lfsr_removeattr(&lfs, path, a) => 0;
|
||||
}
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
}
|
||||
lfsr_unmount(&lfs) => 0;
|
||||
'''
|
||||
|
||||
@@ -484,9 +556,10 @@ code = '''
|
||||
[cases.test_attrs_many]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
# FILETYPE=2 => root
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
# FILETYPE=3 => root
|
||||
defines.FILETYPE = [0, 1, 2, 3]
|
||||
defines.M = 40
|
||||
defines.SIZE = 4
|
||||
defines.COMPACT = [false, true]
|
||||
@@ -500,16 +573,23 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
|
||||
const char *path;
|
||||
lfsr_file_t file;
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
path = "cat";
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow")) => strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
|
||||
// create a dir?
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
path = "snail";
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "snailnoise", strlen("snailnoise"))
|
||||
=> strlen("snailnoise");
|
||||
|
||||
// create a dir?
|
||||
} else if (FILETYPE == 2) {
|
||||
path = "armadillo";
|
||||
lfsr_mkdir(&lfs, path) => 0;
|
||||
|
||||
@@ -535,6 +615,10 @@ code = '''
|
||||
}
|
||||
#endif
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -566,8 +650,9 @@ code = '''
|
||||
[cases.test_attrs_many_many]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
defines.FILETYPE = [0, 1]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
defines.N = 64
|
||||
defines.M = 4
|
||||
defines.SIZE = 4
|
||||
@@ -583,17 +668,25 @@ code = '''
|
||||
|
||||
// create N files
|
||||
uint32_t prng = 42;
|
||||
lfsr_file_t files[N];
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
char path[256];
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", i);
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path,
|
||||
lfsr_file_open(&lfs, &files[i], path,
|
||||
LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow"))
|
||||
lfsr_file_write(&lfs, &files[i], "meow", strlen("meow"))
|
||||
=> strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
lfsr_file_close(&lfs, &files[i]) => 0;
|
||||
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", i);
|
||||
lfsr_file_open(&lfs, &files[i], path,
|
||||
LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &files[i], "snailnoise", strlen("snailnoise"))
|
||||
=> strlen("snailnoise");
|
||||
|
||||
// create a dir?
|
||||
} else {
|
||||
@@ -618,6 +711,12 @@ code = '''
|
||||
}
|
||||
#endif
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
lfsr_file_close(&lfs, &files[i]) => 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -631,6 +730,9 @@ code = '''
|
||||
// file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", x);
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", x);
|
||||
// dir?
|
||||
} else {
|
||||
sprintf(path, "armadillo%03x", x);
|
||||
@@ -660,9 +762,10 @@ code = '''
|
||||
[cases.test_attrs_fuzz]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
# FILETYPE=2 => root
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
# FILETYPE=3 => root
|
||||
defines.FILETYPE = [0, 1, 2, 3]
|
||||
defines.M = 10
|
||||
defines.SIZE = 4
|
||||
defines.OPS = '4*M'
|
||||
@@ -674,16 +777,23 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
|
||||
const char *path;
|
||||
lfsr_file_t file;
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
path = "cat";
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow")) => strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
|
||||
// create a dir?
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
path = "snail";
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "snailnoise", strlen("snailnoise"))
|
||||
=> strlen("snailnoise");
|
||||
|
||||
// create a dir?
|
||||
} else if (FILETYPE == 2) {
|
||||
path = "armadillo";
|
||||
lfsr_mkdir(&lfs, path) => 0;
|
||||
|
||||
@@ -736,6 +846,10 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -779,8 +893,9 @@ code = '''
|
||||
[cases.test_attrs_fuzz_fuzz]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
defines.FILETYPE = [0, 1]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
defines.N = 64
|
||||
defines.M = 4
|
||||
defines.SIZE = 4
|
||||
@@ -793,17 +908,25 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
|
||||
// create N files
|
||||
lfsr_file_t files[N];
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
char path[256];
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", i);
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path,
|
||||
lfsr_file_open(&lfs, &files[i], path,
|
||||
LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow"))
|
||||
lfsr_file_write(&lfs, &files[i], "meow", strlen("meow"))
|
||||
=> strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
lfsr_file_close(&lfs, &files[i]) => 0;
|
||||
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", i);
|
||||
lfsr_file_open(&lfs, &files[i], path,
|
||||
LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0;
|
||||
lfsr_file_write(&lfs, &files[i], "snailnoise", strlen("snailnoise"))
|
||||
=> strlen("snailnoise");
|
||||
|
||||
// create a dir?
|
||||
} else {
|
||||
@@ -829,6 +952,9 @@ code = '''
|
||||
// file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", x);
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", x);
|
||||
// dir?
|
||||
} else {
|
||||
sprintf(path, "armadillo%03x", x);
|
||||
@@ -857,6 +983,9 @@ code = '''
|
||||
// file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", x);
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", x);
|
||||
// dir?
|
||||
} else {
|
||||
sprintf(path, "armadillo%03x", x);
|
||||
@@ -876,6 +1005,12 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
lfsr_file_close(&lfs, &files[i]) => 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -888,6 +1023,9 @@ code = '''
|
||||
// file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", x);
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", x);
|
||||
// dir?
|
||||
} else {
|
||||
sprintf(path, "armadillo%03x", x);
|
||||
@@ -931,22 +1069,30 @@ code = '''
|
||||
[cases.test_attrs_rm]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
defines.FILETYPE = [0, 1]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
code = '''
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs, LFS_F_RDWR, CFG) => 0;
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
|
||||
const char *path;
|
||||
lfsr_file_t file;
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
path = "cat";
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow")) => strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
path = "snail";
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "snailnoise", strlen("snailnoise"))
|
||||
=> strlen("snailnoise");
|
||||
|
||||
// create a dir?
|
||||
} else {
|
||||
path = "armadillo";
|
||||
@@ -968,16 +1114,29 @@ code = '''
|
||||
|
||||
// file?
|
||||
if (FILETYPE == 0) {
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "miao", strlen("miao")) => strlen("miao");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
lfsr_file_t file_;
|
||||
lfsr_file_open(&lfs, &file_, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file_, "miao", strlen("miao")) => strlen("miao");
|
||||
lfsr_file_close(&lfs, &file_) => 0;
|
||||
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
lfsr_file_t file_;
|
||||
lfsr_file_open(&lfs, &file_, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file_,
|
||||
"bruit d'escargot", strlen("bruit d'escargot"))
|
||||
=> strlen("bruit d'escargot");
|
||||
lfsr_file_close(&lfs, &file_) => 0;
|
||||
|
||||
// dir?
|
||||
} else {
|
||||
lfsr_mkdir(&lfs, path) => 0;
|
||||
}
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -1003,22 +1162,30 @@ code = '''
|
||||
[cases.test_attrs_mv_dst]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
defines.FILETYPE = [0, 1]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
code = '''
|
||||
lfs_t lfs;
|
||||
lfsr_format(&lfs, LFS_F_RDWR, CFG) => 0;
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
|
||||
const char *path;
|
||||
lfsr_file_t file;
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
path = "cat";
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow")) => strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
path = "snail";
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "snailnoise", strlen("snailnoise"))
|
||||
=> strlen("snailnoise");
|
||||
|
||||
// create a dir?
|
||||
} else {
|
||||
path = "armadillo";
|
||||
@@ -1037,10 +1204,19 @@ code = '''
|
||||
|
||||
// file?
|
||||
if (FILETYPE == 0) {
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, "beaver", LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "miao", strlen("miao")) => strlen("miao");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
lfsr_file_t file_;
|
||||
lfsr_file_open(&lfs, &file_, "beaver", LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file_, "miao", strlen("miao")) => strlen("miao");
|
||||
lfsr_file_close(&lfs, &file_) => 0;
|
||||
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
lfsr_file_t file_;
|
||||
lfsr_file_open(&lfs, &file_, "beaver", LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file_,
|
||||
"bruit d'escargot", strlen("bruit d'escargot"))
|
||||
=> strlen("bruit d'escargot");
|
||||
lfsr_file_close(&lfs, &file_) => 0;
|
||||
|
||||
// dir?
|
||||
} else {
|
||||
@@ -1049,6 +1225,10 @@ code = '''
|
||||
|
||||
lfsr_rename(&lfs, "beaver", path) => 0;
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -1074,8 +1254,9 @@ code = '''
|
||||
[cases.test_attrs_mv_src]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
defines.FILETYPE = [0, 1]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
defines.REPLACE = [false, true]
|
||||
code = '''
|
||||
lfs_t lfs;
|
||||
@@ -1086,6 +1267,9 @@ code = '''
|
||||
// file?
|
||||
if (FILETYPE == 0) {
|
||||
path = "cat";
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 0) {
|
||||
path = "snail";
|
||||
// dir?
|
||||
} else {
|
||||
path = "armadillo";
|
||||
@@ -1093,29 +1277,44 @@ code = '''
|
||||
|
||||
// if replacing create a file to replace
|
||||
if (REPLACE) {
|
||||
// create a file?
|
||||
// from file?
|
||||
if (FILETYPE == 0) {
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow"))
|
||||
lfsr_file_t file_;
|
||||
lfsr_file_open(&lfs, &file_, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file_, "meow", strlen("meow"))
|
||||
=> strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
lfsr_file_close(&lfs, &file_) => 0;
|
||||
|
||||
// create a dir?
|
||||
// from stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
lfsr_file_t file_;
|
||||
lfsr_file_open(&lfs, &file_, path, LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file_, "snail noise", strlen("snail noise"))
|
||||
=> strlen("snail noise");
|
||||
lfsr_file_close(&lfs, &file_) => 0;
|
||||
|
||||
// from dir?
|
||||
} else {
|
||||
lfsr_mkdir(&lfs, path) => 0;
|
||||
}
|
||||
}
|
||||
|
||||
// create a file?
|
||||
lfsr_file_t file;
|
||||
if (FILETYPE == 0) {
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, "beaver",
|
||||
LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "miao", strlen("miao"))
|
||||
=> strlen("miao");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
lfsr_file_open(&lfs, &file, "beaver", LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file,
|
||||
"bruit d'escargot", strlen("bruit d'escargot"))
|
||||
=> strlen("bruit d'escargot");
|
||||
|
||||
// create a dir?
|
||||
} else {
|
||||
lfsr_mkdir(&lfs, "beaver") => 0;
|
||||
@@ -1132,6 +1331,10 @@ code = '''
|
||||
// move file
|
||||
lfsr_rename(&lfs, "beaver", path) => 0;
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -1160,8 +1363,9 @@ code = '''
|
||||
[cases.test_attrs_mvrm_fuzz_fuzz]
|
||||
# type of file to attach attrs to
|
||||
# FILETYPE=0 => regular file
|
||||
# FILETYPE=1 => directory
|
||||
defines.FILETYPE = [0, 1]
|
||||
# FILETYPE=1 => stickynote
|
||||
# FILETYPE=2 => directory
|
||||
defines.FILETYPE = [0, 1, 2]
|
||||
defines.N = 64
|
||||
defines.M = 4
|
||||
defines.SIZE = 4
|
||||
@@ -1174,17 +1378,26 @@ code = '''
|
||||
lfsr_mount(&lfs, LFS_M_RDWR, CFG) => 0;
|
||||
|
||||
// create N files
|
||||
lfsr_file_t files[N];
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
char path[256];
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", i);
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path,
|
||||
lfsr_file_open(&lfs, &files[i], path,
|
||||
LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &file, "meow", strlen("meow"))
|
||||
lfsr_file_write(&lfs, &files[i], "meow", strlen("meow"))
|
||||
=> strlen("meow");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
lfsr_file_close(&lfs, &files[i]) => 0;
|
||||
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", i);
|
||||
lfsr_file_open(&lfs, &files[i], path,
|
||||
LFS_O_WRONLY | LFS_O_CREAT) => 0;
|
||||
lfsr_file_write(&lfs, &files[i],
|
||||
"snail noise", strlen("snail noise"))
|
||||
=> strlen("snail noise");
|
||||
|
||||
// create a dir?
|
||||
} else {
|
||||
@@ -1210,6 +1423,9 @@ code = '''
|
||||
// file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", x);
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", x);
|
||||
// dir?
|
||||
} else {
|
||||
sprintf(path, "armadillo%03x", x);
|
||||
@@ -1238,6 +1454,9 @@ code = '''
|
||||
// file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", x);
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", x);
|
||||
// dir?
|
||||
} else {
|
||||
sprintf(path, "armadillo%03x", x);
|
||||
@@ -1263,6 +1482,9 @@ code = '''
|
||||
// file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", x);
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", x);
|
||||
// dir?
|
||||
} else {
|
||||
sprintf(path, "armadillo%03x", x);
|
||||
@@ -1271,18 +1493,30 @@ code = '''
|
||||
// remove the file
|
||||
lfsr_remove(&lfs, path) => 0;
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_close(&lfs, &files[x]) => 0;
|
||||
}
|
||||
|
||||
// but recreate the file so we always have something to
|
||||
// attach attrs to
|
||||
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", x);
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path,
|
||||
lfsr_file_open(&lfs, &files[x], path,
|
||||
LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0;
|
||||
lfsr_file_write(&lfs, &file, "miao", strlen("miao"))
|
||||
lfsr_file_write(&lfs, &files[x], "miao", strlen("miao"))
|
||||
=> strlen("miao");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
lfsr_file_close(&lfs, &files[x]) => 0;
|
||||
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", x);
|
||||
lfsr_file_open(&lfs, &files[x], path,
|
||||
LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0;
|
||||
lfsr_file_write(&lfs, &files[x],
|
||||
"bruit d'escargot", strlen("bruit d'escargot"))
|
||||
=> strlen("bruit d'escargot");
|
||||
|
||||
// create a dir?
|
||||
} else {
|
||||
@@ -1304,6 +1538,10 @@ code = '''
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", x);
|
||||
sprintf(path_, "cat%03x", y);
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", x);
|
||||
sprintf(path_, "snail%03x", y);
|
||||
// dir?
|
||||
} else {
|
||||
sprintf(path, "armadillo%03x", x);
|
||||
@@ -1314,18 +1552,39 @@ code = '''
|
||||
lfsr_rename(&lfs, path, path_) => 0;
|
||||
|
||||
if (x != y) {
|
||||
if (FILETYPE == 1) {
|
||||
lfsr_file_t wait;
|
||||
lfsr_file_open(&lfs, &wait, path_,
|
||||
LFS_O_WRONLY) => 0;
|
||||
lfsr_file_desync(&lfs, &files[x]) => 0;
|
||||
lfsr_file_close(&lfs, &files[x]) => 0;
|
||||
lfsr_file_close(&lfs, &files[y]) => 0;
|
||||
lfsr_file_open(&lfs, &files[y], path_,
|
||||
LFS_O_WRONLY) => 0;
|
||||
lfsr_file_desync(&lfs, &wait) => 0;
|
||||
lfsr_file_close(&lfs, &wait) => 0;
|
||||
}
|
||||
|
||||
// but recreate the file so we always have something to
|
||||
// attach attrs to
|
||||
|
||||
// create a file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", x);
|
||||
lfsr_file_t file;
|
||||
lfsr_file_open(&lfs, &file, path,
|
||||
lfsr_file_open(&lfs, &files[x], path,
|
||||
LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0;
|
||||
lfsr_file_write(&lfs, &file, "nyan", strlen("nyan"))
|
||||
lfsr_file_write(&lfs, &files[x], "nyan", strlen("nyan"))
|
||||
=> strlen("nyan");
|
||||
lfsr_file_close(&lfs, &file) => 0;
|
||||
lfsr_file_close(&lfs, &files[x]) => 0;
|
||||
|
||||
// create a stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", x);
|
||||
lfsr_file_open(&lfs, &files[x], path,
|
||||
LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0;
|
||||
lfsr_file_write(&lfs, &files[x],
|
||||
"swara keong", strlen("swara keong"))
|
||||
=> strlen("swara keong");
|
||||
|
||||
// create a dir?
|
||||
} else {
|
||||
@@ -1340,6 +1599,12 @@ code = '''
|
||||
}
|
||||
}
|
||||
|
||||
if (FILETYPE == 1) {
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
lfsr_file_close(&lfs, &files[i]) => 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (int remount = 0; remount < 2; remount++) {
|
||||
// remount?
|
||||
if (remount) {
|
||||
@@ -1352,6 +1617,9 @@ code = '''
|
||||
// file?
|
||||
if (FILETYPE == 0) {
|
||||
sprintf(path, "cat%03x", x);
|
||||
// stickynote?
|
||||
} else if (FILETYPE == 1) {
|
||||
sprintf(path, "snail%03x", x);
|
||||
// dir?
|
||||
} else {
|
||||
sprintf(path, "armadillo%03x", x);
|
||||
|
||||
Reference in New Issue
Block a user