mirror of
https://github.com/eledio-devices/thirdparty-littlefs.git
synced 2025-11-01 08:48:31 +01:00
- Removed old tests and test scripts
- Reorganize the block devices to live under one directory
- Plugged new test framework into Makefile
renamed:
- scripts/test_.py -> scripts/test.py
- tests_ -> tests
- {file,ram,test}bd/* -> bd/*
It took a surprising amount of effort to make the Makefile behave since
it turns out the "test_%" rule could override "tests/test_%.toml.test"
which is generated as part of test.py.
104 lines
2.6 KiB
TOML
104 lines
2.6 KiB
TOML
[[case]] # simple formatting test
|
|
code = '''
|
|
lfs_format(&lfs, &cfg) => 0;
|
|
'''
|
|
|
|
[[case]] # mount/unmount
|
|
code = '''
|
|
lfs_format(&lfs, &cfg) => 0;
|
|
lfs_mount(&lfs, &cfg) => 0;
|
|
lfs_unmount(&lfs) => 0;
|
|
'''
|
|
|
|
[[case]] # reentrant format
|
|
reentrant = true
|
|
code = '''
|
|
err = lfs_mount(&lfs, &cfg);
|
|
if (err) {
|
|
lfs_format(&lfs, &cfg) => 0;
|
|
lfs_mount(&lfs, &cfg) => 0;
|
|
}
|
|
lfs_unmount(&lfs) => 0;
|
|
'''
|
|
|
|
[[case]] # invalid mount
|
|
code = '''
|
|
lfs_mount(&lfs, &cfg) => LFS_ERR_CORRUPT;
|
|
'''
|
|
|
|
[[case]] # expanding superblock
|
|
define.BLOCK_CYCLES = [32, 33, 1]
|
|
define.N = [10, 100, 1000]
|
|
code = '''
|
|
lfs_format(&lfs, &cfg) => 0;
|
|
lfs_mount(&lfs, &cfg) => 0;
|
|
for (int i = 0; i < N; i++) {
|
|
lfs_mkdir(&lfs, "dummy") => 0;
|
|
lfs_stat(&lfs, "dummy", &info) => 0;
|
|
assert(strcmp(info.name, "dummy") == 0);
|
|
lfs_remove(&lfs, "dummy") => 0;
|
|
}
|
|
lfs_unmount(&lfs) => 0;
|
|
|
|
// one last check after power-cycle
|
|
lfs_mount(&lfs, &cfg) => 0;
|
|
lfs_mkdir(&lfs, "dummy") => 0;
|
|
lfs_stat(&lfs, "dummy", &info) => 0;
|
|
assert(strcmp(info.name, "dummy") == 0);
|
|
lfs_unmount(&lfs) => 0;
|
|
'''
|
|
|
|
[[case]] # expanding superblock with power cycle
|
|
define.BLOCK_CYCLES = [32, 33, 1]
|
|
define.N = [10, 100, 1000]
|
|
code = '''
|
|
lfs_format(&lfs, &cfg) => 0;
|
|
for (int i = 0; i < N; i++) {
|
|
lfs_mount(&lfs, &cfg) => 0;
|
|
// remove lingering dummy?
|
|
err = lfs_remove(&lfs, "dummy");
|
|
assert(err == 0 || (err == LFS_ERR_NOENT && i == 0));
|
|
|
|
lfs_mkdir(&lfs, "dummy") => 0;
|
|
lfs_stat(&lfs, "dummy", &info) => 0;
|
|
assert(strcmp(info.name, "dummy") == 0);
|
|
lfs_unmount(&lfs) => 0;
|
|
}
|
|
|
|
// one last check after power-cycle
|
|
lfs_mount(&lfs, &cfg) => 0;
|
|
lfs_stat(&lfs, "dummy", &info) => 0;
|
|
assert(strcmp(info.name, "dummy") == 0);
|
|
lfs_unmount(&lfs) => 0;
|
|
'''
|
|
|
|
[[case]] # reentrant expanding superblock
|
|
define.BLOCK_CYCLES = [2, 1]
|
|
define.N = 24
|
|
reentrant = true
|
|
code = '''
|
|
err = lfs_mount(&lfs, &cfg);
|
|
if (err) {
|
|
lfs_format(&lfs, &cfg) => 0;
|
|
lfs_mount(&lfs, &cfg) => 0;
|
|
}
|
|
|
|
for (int i = 0; i < N; i++) {
|
|
// remove lingering dummy?
|
|
err = lfs_remove(&lfs, "dummy");
|
|
assert(err == 0 || (err == LFS_ERR_NOENT && i == 0));
|
|
|
|
lfs_mkdir(&lfs, "dummy") => 0;
|
|
lfs_stat(&lfs, "dummy", &info) => 0;
|
|
assert(strcmp(info.name, "dummy") == 0);
|
|
}
|
|
|
|
lfs_unmount(&lfs) => 0;
|
|
|
|
// one last check after power-cycle
|
|
lfs_mount(&lfs, &cfg) => 0;
|
|
lfs_stat(&lfs, "dummy", &info) => 0;
|
|
assert(strcmp(info.name, "dummy") == 0);
|
|
lfs_unmount(&lfs) => 0;
|
|
'''
|