]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
xfs/068: Verify actual file count instead of reported file count
authorAmir Goldstein <amir73il@gmail.com>
Tue, 5 Feb 2019 19:31:18 +0000 (21:31 +0200)
committerEryu Guan <guaneryu@gmail.com>
Sun, 10 Feb 2019 11:14:56 +0000 (19:14 +0800)
This test has the number of files/dirs created by xfsrestore hardcoded
in golden output.

When fsstress is added new ops, the number of files/dirs created with
the same random seed changes and this regularly breaks this test,
so when new fsstress ops are added they should be either added to the
dump test blacklist or golden output of this test needs to be ammended
to reflect the change.

The golden output includes only the file count reported by xfsrestore
and test does not even verify that this is the correct file count.
Instead, leave the golden output neutral and explicitly verify that
file count before and after the test are the same.

With this change, the test becomes agnostic to fsstress ops and we
could also stop blacklisting clone/dedup/copy ops if we want.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/dump
tests/xfs/068
tests/xfs/068.out

index 6b08fc4e3bb243f62628c562a1e6f0281dca9245..7c4c9cd833d60882ccd57739582fb4e616edd1f5 100644 (file)
@@ -1517,6 +1517,26 @@ _check_quota_file()
    _check_quota 'xfsdump_quotas' 'xfsdump_quotas_group' 'xfsdump_quotas_proj'
 }
 
+_count_dir_files()
+{
+       local dir=$1
+
+       local ndirs=$(find $dir -type d | wc -l)
+       local nents=$(find $dir | wc -l)
+
+       echo "$ndirs directories and $nents entries"
+}
+
+_count_dumpdir_files()
+{
+       _count_dir_files $dump_dir
+}
+
+_count_restoredir_files()
+{
+       _count_dir_files $restore_dir/$dump_sdir
+}
+
 
 # make sure this script returns success
 /bin/true
index 7f5900fccaf289878271a5a0ea306f4290d8c9c3..a422d09547c5b5fdec2429680a96ccc3ef766678 100755 (executable)
@@ -30,12 +30,24 @@ _cleanup()
 . ./common/rc
 . ./common/dump
 
+# remove previous $seqres.full before test
+rm -f $seqres.full
+
 # real QA test starts here
 _supported_fs xfs
 _supported_os Linux
 
 _create_dumpdir_stress_num 4096
-_do_dump_restore
+
+echo -n "Before: " >> $seqres.full
+_count_dumpdir_files | tee $tmp.before >> $seqres.full
+
+# filter out the file count, it changes as fsstress adds new operations
+_do_dump_restore | sed -e "/entries processed$/s/[0-9][0-9]*/NUM/g"
+
+echo -n "After: " >> $seqres.full
+_count_restoredir_files | tee $tmp.after >> $seqres.full
+diff -u $tmp.before $tmp.after
 
 # success, all done
 exit
index fa3a55236b38243591c3ff17fe13e6d6baf63da2..2b276b776f11e5c8a9b94a9b76728e97cdd5b9bd 100644 (file)
@@ -22,7 +22,7 @@ xfsrestore: session id: ID
 xfsrestore: media ID: ID
 xfsrestore: searching media for directory dump
 xfsrestore: reading directories
-xfsrestore: 383 directories and 1335 entries processed
+xfsrestore: NUM directories and NUM entries processed
 xfsrestore: directory post-processing
 xfsrestore: restoring non-directory files
 xfsrestore: restore complete: SECS seconds elapsed