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
path: root/tests
diff options
context:
space:
mode:
authorChristopher Haster <chaster@utexas.edu>2017-11-16 23:53:45 +0300
committerChristopher Haster <chaster@utexas.edu>2017-11-16 23:53:45 +0300
commit6664723e18034b3685d7d56374ec53b66cfcf47d (patch)
treef1382d1c126e0222d5ced794395d40b52e0de515 /tests
parent3f31c8cba31e0f6cef5b02dba2e050d8df1168b7 (diff)
Fixed issue with committing directories to bad-blocks that are stuck
This is only an issue in the weird case that are worn down block is left in the odd state of not being able to change the data that resides on the block. That being said, this does pop up often when simulating wear on block devices. Currently, directory commits checked if the write succeeded by crcing the block to avoid the additional RAM cost for another buffer. However, before this commit, directory commits just checked if the block crc was valid, rather than comparing to the expected crc. This would usually work, unless the block was stuck in a state with valid crc. The fix is to simply compare with the expected crc to find errors.
Diffstat (limited to 'tests')
-rwxr-xr-xtests/test_corrupt.sh11
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/test_corrupt.sh b/tests/test_corrupt.sh
index d79a8c8..44f1cae 100755
--- a/tests/test_corrupt.sh
+++ b/tests/test_corrupt.sh
@@ -82,6 +82,17 @@ do
lfs_chktree
done
+echo "--- Block persistance ---"
+for i in {0..33}
+do
+ rm -rf blocks
+ mkdir blocks
+ lfs_mktree
+ chmod a-w blocks/$(printf '%x' $i)
+ lfs_mktree
+ lfs_chktree
+done
+
echo "--- Big region corruption ---"
rm -rf blocks
mkdir blocks