135c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong#!/bin/bash
235c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong
335c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong# Run this test with a specific time, because we're crosslinking an extent tree
435c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong# block with the inode table.  When fsck sets dtime to now, we want "now" to be
535c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong# our preprogrammed value.
635c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong
735c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. WongFSCK_OPT=-fy
835c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. WongIMAGE=$test_dir/image.gz
935c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. WongE2FSCK_TIME=4294967294
1035c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wongexport E2FSCK_TIME
1135c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong
1235c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wonggzip -d < $IMAGE > $TMPFILE
1335c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong
1435c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong# Run fsck to fix things?
1535c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. WongEXP1=$test_dir/expect.1
1635c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. WongOUT1=$test_name.1.log
1735c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wongrm -rf $test_name.failed $test_name.ok
1835c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong
1963a801dec75d9a7f9ec2973d6f59ac864d22d8bdDarrick J. Wong$FSCK $FSCK_OPT -N test_filesys $TMPFILE 2>&1 | tail -n +2 > $OUT1
2035c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wongecho "Exit status is $?" >> $OUT1
2135c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong
2235c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong# Run a second time
2335c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. WongEXP2=$test_dir/expect.2
2435c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. WongOUT2=$test_name.2.log
2535c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong
2663a801dec75d9a7f9ec2973d6f59ac864d22d8bdDarrick J. Wong$FSCK $FSCK_OPT -N test_filesys $TMPFILE 2>&1 | tail -n +2 > $OUT2
2735c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wongecho "Exit status is $?" >> $OUT2
2835c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong
2935c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong# Figure out what happened
3035c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wongif cmp -s $EXP1 $OUT1 && cmp -s $EXP2 $OUT2; then
3135c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong	echo "$test_name: $test_description: ok"
3235c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong	touch $test_name.ok
3335c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wongelse
3435c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong	echo "$test_name: $test_description: failed"
3535c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong	diff -u $EXP1 $OUT1 >> $test_name.failed
3635c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wong	diff -u $EXP2 $OUT2 >> $test_name.failed
3735c8faaffcb9a1a75ad1210e605df21978c2b2ceDarrick J. Wongfi
38