diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/test_alloc.sh | 10 | ||||
-rwxr-xr-x | tests/test_relocations.sh | 51 |
2 files changed, 61 insertions, 0 deletions
diff --git a/tests/test_alloc.sh b/tests/test_alloc.sh index d9f233b..0669850 100755 --- a/tests/test_alloc.sh +++ b/tests/test_alloc.sh @@ -250,6 +250,14 @@ scripts/test.py << TEST lfs_unmount(&lfs) => 0; TEST +## Below, these tests depend _very_ heavily on the geometry of the +## block device being tested, they should be removed and replaced +## by generalized tests. For now we'll just skip if the geometry +## is customized. + +if [[ ! $MAKEFLAGS =~ "LFS_BLOCK_CYCLES" ]] +then + echo "--- Chained dir exhaustion test ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; @@ -481,4 +489,6 @@ scripts/test.py << TEST lfs_unmount(&lfs) => 0; TEST +fi + scripts/results.py diff --git a/tests/test_relocations.sh b/tests/test_relocations.sh index 4a371ea..5244e5e 100755 --- a/tests/test_relocations.sh +++ b/tests/test_relocations.sh @@ -23,6 +23,57 @@ scripts/test.py << TEST lfs_unmount(&lfs) => 0; TEST +echo "--- Dangling split dir test ---" +scripts/test.py << TEST + lfs_mount(&lfs, &cfg) => 0; + for (int j = 0; j < $ITERATIONS; j++) { + for (int i = 0; i < $COUNT; i++) { + sprintf(path, "child/test%03d_loooooooooooooooooong_name", i); + lfs_file_open(&lfs, &file, path, LFS_O_CREAT | LFS_O_WRONLY) => 0; + lfs_file_close(&lfs, &file) => 0; + } + + lfs_dir_open(&lfs, &dir, "child") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; + for (int i = 0; i < $COUNT; i++) { + sprintf(path, "test%03d_loooooooooooooooooong_name", i); + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; + } + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; + + if (j == $ITERATIONS-1) { + break; + } + + for (int i = 0; i < $COUNT; i++) { + sprintf(path, "child/test%03d_loooooooooooooooooong_name", i); + lfs_remove(&lfs, path) => 0; + } + } + lfs_unmount(&lfs) => 0; +TEST +scripts/test.py << TEST + lfs_mount(&lfs, &cfg) => 0; + lfs_dir_open(&lfs, &dir, "child") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; + for (int i = 0; i < $COUNT; i++) { + sprintf(path, "test%03d_loooooooooooooooooong_name", i); + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; + } + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; + for (int i = 0; i < $COUNT; i++) { + sprintf(path, "child/test%03d_loooooooooooooooooong_name", i); + lfs_remove(&lfs, path) => 0; + } + lfs_unmount(&lfs) => 0; +TEST + echo "--- Outdated head test ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; |