generic/422: Do not hardcode space used by files
authorAndreas Gruenbacher <agruenba@redhat.com>
Tue, 10 Oct 2017 10:21:14 +0000 (12:21 +0200)
committerEryu Guan <eguan@redhat.com>
Wed, 11 Oct 2017 16:12:53 +0000 (00:12 +0800)
Test generic/422 hardcodes in the output file how much space files it
creates are supposed to take up on disk.  This doesn't work when
additional space is allocated for extended attributes for ACLs or
SELinux labels.

Instead, record the actual space used in generic/422.full, and only
check if the writeback changes the space used.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
tests/generic/422
tests/generic/422.out

index a42a30daf4350cba9b803401b97b3dc0e70571eb..bc00d8f79e9026b850d427ff4aa3783c0362dfa6 100755 (executable)
@@ -88,40 +88,45 @@ $XFS_IO_PROG -c "pwrite -S 0xff 64K 64K" $SCRATCH_MNT/foo3 | _filter_xfs_io
 $XFS_IO_PROG -c "pwrite -S 0xab 0 64K" $SCRATCH_MNT/foo4 | _filter_xfs_io
 $XFS_IO_PROG -d -c "pwrite -S 0xef 0 64K" $SCRATCH_MNT/foo4 | _filter_xfs_io
 
-echo
-echo "Before writeback"
-echo
+space_used() {
+    echo "Space used by file foo1:"
+    du -h $SCRATCH_MNT/foo1 | _filter_scratch
 
-echo "Space used by file foo1:"
-du -h $SCRATCH_MNT/foo1 | _filter_scratch
+    echo "Space used by file foo2:"
+    du -h $SCRATCH_MNT/foo2 | _filter_scratch
 
-echo "Space used by file foo2:"
-du -h $SCRATCH_MNT/foo2 | _filter_scratch
+    echo "Space used by file foo3:"
+    du -h $SCRATCH_MNT/foo3 | _filter_scratch
 
-echo "Space used by file foo3:"
-du -h $SCRATCH_MNT/foo3 | _filter_scratch
+    echo "Space used by file foo4:"
+    du -h $SCRATCH_MNT/foo4 | _filter_scratch
+}
+
+space_used > $SCRATCH_MNT/$seq.before
+(
+    echo
+    echo "Before writeback"
+    echo
 
-echo "Space used by file foo4:"
-du -h $SCRATCH_MNT/foo4 | _filter_scratch
+    cat $SCRATCH_MNT/$seq.before
+) >> $seqres.full
 
 sync
 
 # We expect the same file sizes reported by 'du' after writeback finishes.
-echo
-echo "After writeback"
-echo
-
-echo "Space used by file foo1:"
-du -h $SCRATCH_MNT/foo1 | _filter_scratch
 
-echo "Space used by file foo2:"
-du -h $SCRATCH_MNT/foo2 | _filter_scratch
+space_used > $SCRATCH_MNT/$seq.after
+(
+    echo
+    echo "After writeback"
+    echo
 
-echo "Space used by file foo3:"
-du -h $SCRATCH_MNT/foo3 | _filter_scratch
+    cat $SCRATCH_MNT/$seq.after
+) >> $seqres.full
 
-echo "Space used by file foo4:"
-du -h $SCRATCH_MNT/foo4 | _filter_scratch
+if diff -q $SCRATCH_MNT/$seq.before $SCRATCH_MNT/$seq.after; then
+       echo "Space used before and after writeback is equal"
+fi
 
 status=0
 exit
index 369608860a0c7959d3d4453fe3dbe5858d719673..8d21003fa1b675600a9abbb2ce0b034caaade509 100644 (file)
@@ -17,25 +17,4 @@ wrote 65536/65536 bytes at offset 0
 XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 wrote 65536/65536 bytes at offset 0
 XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-
-Before writeback
-
-Space used by file foo1:
-64K    SCRATCH_MNT/foo1
-Space used by file foo2:
-128K   SCRATCH_MNT/foo2
-Space used by file foo3:
-128K   SCRATCH_MNT/foo3
-Space used by file foo4:
-64K    SCRATCH_MNT/foo4
-
-After writeback
-
-Space used by file foo1:
-64K    SCRATCH_MNT/foo1
-Space used by file foo2:
-128K   SCRATCH_MNT/foo2
-Space used by file foo3:
-128K   SCRATCH_MNT/foo3
-Space used by file foo4:
-64K    SCRATCH_MNT/foo4
+Space used before and after writeback is equal