# vim: filetype=sh test_description="create fs image from tarball" if ! test -x "$DEBUGFS_EXE"; then echo "$test_name: $test_description: skipped (no debugfs)" return 0 fi if [ "$(grep -c 'define HAVE_ARCHIVE_H' ../lib/config.h)" -eq 0 ]; then echo "$test_name: skipped (no libarchive)" exit 0 fi OUT="$test_name.log" EXP="$test_dir/expect" perl "$test_dir/mktar.pl" \ | $MKE2FS -q -F -o Linux -T ext4 -O metadata_csum,64bit -E lazy_itable_init=1 -b 1024 -d - "$TMPFILE" 16384 > "$OUT" 2>&1 $DUMPE2FS "$TMPFILE" >> "$OUT" 2>&1 cat > "$TMPFILE.cmd" << 'ENDL' stat /dev/ stat /dev/console stat /dev/fd stat /dev/full stat /dev/null stat /dev/ptmx stat /dev/pts/ stat /dev/random stat /dev/shm/ stat /dev/stderr stat /dev/stdin stat /dev/stdout stat /dev/tty stat /dev/urandom stat /dev/zero ENDL $DEBUGFS -f "$TMPFILE.cmd" "$TMPFILE" 2>&1 | grep -E -v "(time|checksum):" >> "$OUT" $FSCK -f -n "$TMPFILE" >> "$OUT" 2>&1 sed -f "$cmd_dir/filter.sed" -f "$test_dir/output.sed" -e "s;$TMPFILE;test.img;" < "$OUT" > "$OUT.tmp" mv "$OUT.tmp" "$OUT" # Do the verification cmp -s "$OUT" "$EXP" status=$? if [ "$status" = 0 ] ; then echo "$test_name: $test_description: ok" touch "$test_name.ok" else echo "$test_name: $test_description: failed" diff $DIFF_OPTS "$EXP" "$OUT" > "$test_name.failed" fi rm -rf "$TMPFILE.cmd" unset OUT EXP