mirror of
https://github.com/eledio-devices/thirdparty-littlefs.git
synced 2025-11-01 00:38:29 +01:00
No longer need to be stored on disk, can be simulated on the chip side. As mentioned in other commits, the parent entries had dozens of problems with atomic updates, as well as making everything just a bit more complex than is needed.
42 lines
1.0 KiB
Bash
Executable File
42 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -eu
|
|
|
|
echo "=== Orphan tests ==="
|
|
rm -rf blocks
|
|
tests/test.py << TEST
|
|
lfs_format(&lfs, &config) => 0;
|
|
TEST
|
|
|
|
echo "--- Orphan test ---"
|
|
tests/test.py << TEST
|
|
lfs_mount(&lfs, &config) => 0;
|
|
lfs_mkdir(&lfs, "parent") => 0;
|
|
lfs_mkdir(&lfs, "parent/orphan") => 0;
|
|
lfs_mkdir(&lfs, "parent/child") => 0;
|
|
lfs_remove(&lfs, "parent/orphan") => 0;
|
|
TEST
|
|
# remove most recent file, this should be the update to the previous
|
|
# linked-list entry and should orphan the child
|
|
rm -v blocks/8
|
|
tests/test.py << TEST
|
|
lfs_mount(&lfs, &config) => 0;
|
|
lfs_stat(&lfs, "parent/orphan", &info) => LFS_ERROR_NO_ENTRY;
|
|
unsigned before = 0;
|
|
lfs_traverse(&lfs, test_count, &before) => 0;
|
|
test_log("before", before);
|
|
|
|
lfs_deorphan(&lfs) => 0;
|
|
|
|
lfs_stat(&lfs, "parent/orphan", &info) => LFS_ERROR_NO_ENTRY;
|
|
unsigned after = 0;
|
|
lfs_traverse(&lfs, test_count, &after) => 0;
|
|
test_log("after", after);
|
|
|
|
int diff = before - after;
|
|
diff => 2;
|
|
lfs_unmount(&lfs) => 0;
|
|
TEST
|
|
|
|
echo "--- Results ---"
|
|
tests/stats.py
|