Skip to contentSkip to conversation

tests: add new test f_del_dup_quota

PATCH Applied Eric Whitney 2 participants 2 messages Jun 1, 2017 – Jun 23, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 tests: add new test f_del_dup_quota

Add a test to validate the changes in commit b0f5fa880c36: "e2fsck:
fix multiply-claimed block quota accounting when deleting files".

---
 tests/f_del_dup_quota/expect.1  |  39 +++++++++++++++++++++++++++++++++++++++
 tests/f_del_dup_quota/expect.2  |   7 +++++++
 tests/f_del_dup_quota/image.bz2 | Bin 0 -> 1472 bytes
 tests/f_del_dup_quota/name      |   1 +
 tests/f_del_dup_quota/script    |  34 ++++++++++++++++++++++++++++++++++
 5 files changed, 81 insertions(+)
 create mode 100644 tests/f_del_dup_quota/expect.1
 create mode 100644 tests/f_del_dup_quota/expect.2
 create mode 100644 tests/f_del_dup_quota/image.bz2
 create mode 100644 tests/f_del_dup_quota/name
 create mode 100644 tests/f_del_dup_quota/script
tests/f_del_dup_quota/expect.1 new file +39 -0
new file mode 100644
index 0000000..71b7440
@@ -0,0 +1,39 @@
+Pass 1: Checking inodes, blocks, and sizes
+
+Running additional passes to resolve blocks claimed by more than one inode...
+Pass 1B: Rescanning for multiply-claimed blocks
+Multiply-claimed block(s) in inode 12: 8129
+Multiply-claimed block(s) in inode 13: 8129
+Pass 1C: Scanning directories for inodes with multiply-claimed blocks
+Pass 1D: Reconciling multiply-claimed blocks
+(There are 2 inodes containing multiply-claimed blocks.)
+
+File /testfile1 (inode #12, mod time Wed May 24 23:10:38 2017) 
+  has 1 multiply-claimed block(s), shared with 1 file(s):
+	/testfile2 (inode #13, mod time Wed May 24 23:10:45 2017)
+Clone multiply-claimed blocks<y>? no
+Delete file<y>? yes
+File /testfile2 (inode #13, mod time Wed May 24 23:10:45 2017) 
+  has 1 multiply-claimed block(s), shared with 1 file(s):
+	/testfile1 (inode #12, mod time Wed May 24 23:10:38 2017)
+Multiply-claimed blocks already reassigned or cloned.
+
+Pass 2: Checking directory structure
+Entry 'testfile1' in / (2) has deleted/unused inode 12.  Clear<y>? yes
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+Block bitmap differences:  -1374
+Fix<y>? yes
+Free blocks count wrong for group #0 (6815, counted=6816).
+Fix<y>? yes
+Free blocks count wrong (6815, counted=6816).
+Fix<y>? yes
+[QUOTA WARNING] Usage inconsistent for ID 0:actual (15360, 3) != expected (17408, 4)
+Update quota info for quota type 0<y>? yes
+[QUOTA WARNING] Usage inconsistent for ID 0:actual (15360, 3) != expected (17408, 4)
+Update quota info for quota type 1<y>? yes
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 12/2048 files (33.3% non-contiguous), 1376/8192 blocks
+Exit status is 0
tests/f_del_dup_quota/expect.2 new file +7 -0
new file mode 100644
index 0000000..14f99b8
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/2048 files (25.0% non-contiguous), 1376/8192 blocks
+Exit status is 0
tests/f_del_dup_quota/image.bz2 new file binary +0 -0
new file mode 100644
index 0000000000000000000000000000000000000000..fc91e2a18239bcc30ef32551efd08e397dd10624
GIT binary patch
tests/f_del_dup_quota/name new file +1 -0
new file mode 100644
index 0000000..8b29fd4
@@ -0,0 +1 @@
+delete file containing multiply claimed blocks with quota
tests/f_del_dup_quota/script new file +34 -0
new file mode 100644
index 0000000..5480c3f
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+IMAGE=$test_dir/image.bz2
+
+bzip2 -d < $IMAGE > $TMPFILE
+
+# Run fsck to fix the multiply-claimed block breakage
+FSCK_OPT=-f
+EXP1=$test_dir/expect.1
+OUT1=$test_name.1.log
+
+echo "nyyyyyyy" | E2FSCK_FORCE_INTERACTIVE=y $FSCK $FSCK_OPT -N test_filesys $TMPFILE 2>&1 | head -n 1000 | tail -n +2 > $OUT1
+echo "Exit status is $?" >> $OUT1
+
+# Run a second time to verify that fsck completely repaired everything in
+# the first run, including quota corrections
+FSCK_OPT=-fn
+EXP2=$test_dir/expect.2
+OUT2=$test_name.2.log
+
+$FSCK $FSCK_OPT -N test_filesys $TMPFILE 2>&1 | head -n 1000 | tail -n +2 > $OUT2
+echo "Exit status is $?" >> $OUT2
+
+# Figure out what happened
+rm -f $test_name.failed $test_name.ok
+if cmp -s $EXP1 $OUT1 && cmp -s $EXP2 $OUT2; then
+	echo "$test_name: $test_description: ok"
+	touch $test_name.ok
+else
+	echo "$test_name: $test_description: failed"
+	diff -u $EXP1 $OUT1 >> $test_name.failed
+	diff -u $EXP2 $OUT2 >> $test_name.failed
+fi
+unset EXP1 OUT1 EXP2 OUT2 FSCK_OPT IMAGE
Signature · 1 line
2.1.4
#1 lore raw
Quoted 4 lines · Eric Whitney

Add a test to validate the changes in commit b0f5fa880c36: "e2fsck:
fix multiply-claimed block quota accounting when deleting files".

Thanks, applied.

- Ted