diff options
author | Christopher Haster <chaster@utexas.edu> | 2017-04-29 18:22:01 +0300 |
---|---|---|
committer | Christopher Haster <chaster@utexas.edu> | 2017-05-08 08:32:32 +0300 |
commit | 210b487325d885c1726653294fe99ff6b9aa638f (patch) | |
tree | a1a8013fb5b1c944505833631eb6274bc31efa4e /tests/test_alloc.sh | |
parent | b55719bab156e66908ce86e8525b5eea15bec7da (diff) |
Added file list for tracking in flight allocations
Needed primarily for tracking block allocations, unfortunately
this prevents the freedom for the user to bitwise copy files.
Diffstat (limited to 'tests/test_alloc.sh')
-rwxr-xr-x | tests/test_alloc.sh | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/test_alloc.sh b/tests/test_alloc.sh index 48ff72a..e3e4fe0 100755 --- a/tests/test_alloc.sh +++ b/tests/test_alloc.sh @@ -110,5 +110,88 @@ lfs_alloc_singleproc multiprocreuse lfs_verify multiprocreuse lfs_verify singleprocreuse +echo "--- Cleanup ---" +lfs_remove multiprocreuse +lfs_remove singleprocreuse + +echo "--- Exhaustion test ---" +tests/test.py << TEST + lfs_mount(&lfs, &cfg) => 0; + lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); + size = strlen("exhaustion"); + memcpy(buffer, "exhaustion", size); + lfs_file_write(&lfs, &file[0], buffer, size) => size; + + size = strlen("blahblahblahblah"); + memcpy(buffer, "blahblahblahblah", size); + lfs_ssize_t res; + while (true) { + res = lfs_file_write(&lfs, &file[0], buffer, size); + if (res < 0) { + break; + } + + res => size; + } + res => LFS_ERR_NOSPC; + + lfs_file_close(&lfs, &file[0]) => 0; + lfs_unmount(&lfs) => 0; +TEST +tests/test.py << TEST + lfs_mount(&lfs, &cfg) => 0; + lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_RDONLY); + size = strlen("exhaustion"); + lfs_file_read(&lfs, &file[0], buffer, size) => size; + memcmp(buffer, "exhaustion", size) => 0; + lfs_file_close(&lfs, &file[0]) => 0; + lfs_unmount(&lfs) => 0; +TEST + +echo "--- Exhaustion wraparound test ---" +tests/test.py << TEST + lfs_mount(&lfs, &cfg) => 0; + lfs_remove(&lfs, "exhaustion") => 0; + + lfs_file_open(&lfs, &file[0], "padding", LFS_O_WRONLY | LFS_O_CREAT); + size = strlen("buffering"); + memcpy(buffer, "buffering", size); + for (int i = 0; i < $SIZE; i++) { + lfs_file_write(&lfs, &file[0], buffer, size) => size; + } + lfs_file_close(&lfs, &file[0]) => 0; + lfs_remove(&lfs, "padding") => 0; + + lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); + size = strlen("exhaustion"); + memcpy(buffer, "exhaustion", size); + lfs_file_write(&lfs, &file[0], buffer, size) => size; + + size = strlen("blahblahblahblah"); + memcpy(buffer, "blahblahblahblah", size); + lfs_ssize_t res; + while (true) { + res = lfs_file_write(&lfs, &file[0], buffer, size); + if (res < 0) { + break; + } + + res => size; + } + res => LFS_ERR_NOSPC; + + lfs_file_close(&lfs, &file[0]) => 0; + lfs_unmount(&lfs) => 0; +TEST +tests/test.py << TEST + lfs_mount(&lfs, &cfg) => 0; + lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_RDONLY); + size = strlen("exhaustion"); + lfs_file_read(&lfs, &file[0], buffer, size) => size; + memcmp(buffer, "exhaustion", size) => 0; + lfs_file_close(&lfs, &file[0]) => 0; + lfs_unmount(&lfs) => 0; +TEST + echo "--- Results ---" tests/stats.py |