From 6a89ecba39cbe74f07492ae0ef693d093450fda7 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Mon, 9 Apr 2018 14:36:52 -0500 Subject: [PATCH] Added test for lookahead overflow --- tests/test_alloc.sh | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/tests/test_alloc.sh b/tests/test_alloc.sh index 8c81490..484f1cc 100755 --- a/tests/test_alloc.sh +++ b/tests/test_alloc.sh @@ -110,10 +110,36 @@ lfs_alloc_singleproc multiprocreuse lfs_verify multiprocreuse lfs_verify singleprocreuse -echo "--- Cleanup ---" lfs_remove multiprocreuse lfs_remove singleprocreuse +echo "--- Lookahead overflow test ---" +lfs_mkdir overflow +for name in bacon eggs pancakes +do +tests/test.py << TEST + lfs_mount(&lfs, &cfg) => 0; + + // setup lookahead to almost overflow + lfs.free.begin = ((lfs_size_t)-1) - $SIZE/(2*cfg.block_size); + lfs.free.size = 0; + lfs.free.off = 0; + + lfs_file_open(&lfs, &file[0], "overflow/$name", + LFS_O_WRONLY | LFS_O_CREAT | LFS_O_APPEND) => 0; + size = strlen("$name"); + memcpy(buffer, "$name", size); + for (int i = 0; i < $SIZE; i++) { + printf("%d\n", lfs.free.begin); + lfs_file_write(&lfs, &file[0], buffer, size) => size; + } + lfs_file_close(&lfs, &file[0]) => 0; + lfs_unmount(&lfs) => 0; +TEST +done +lfs_verify overflow +lfs_remove overflow + echo "--- Exhaustion test ---" tests/test.py << TEST lfs_mount(&lfs, &cfg) => 0; @@ -368,7 +394,6 @@ echo "--- Outdated lookahead and split dir test ---" rm -rf blocks tests/test.py << TEST lfs_format(&lfs, &cfg) => 0; - lfs_mount(&lfs, &cfg) => 0; // fill completely with two files @@ -424,5 +449,8 @@ tests/test.py << TEST lfs_unmount(&lfs) => 0; TEST + + + echo "--- Results ---" tests/stats.py