Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/littlefs-project/littlefs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Haster <chaster@utexas.edu>2017-04-29 18:22:01 +0300
committerChristopher Haster <chaster@utexas.edu>2017-05-08 08:32:32 +0300
commit210b487325d885c1726653294fe99ff6b9aa638f (patch)
treea1a8013fb5b1c944505833631eb6274bc31efa4e /tests/test_alloc.sh
parentb55719bab156e66908ce86e8525b5eea15bec7da (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-xtests/test_alloc.sh83
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