diff options
Diffstat (limited to 'tests/m_roottar/script')
-rw-r--r-- | tests/m_roottar/script | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/m_roottar/script b/tests/m_roottar/script new file mode 100644 index 0000000..701e8c8 --- /dev/null +++ b/tests/m_roottar/script @@ -0,0 +1,57 @@ +# 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 |