X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=tests%2Ftest-imagex;h=94b697fdce5d40c68d94cd6ceb7103858193a398;hp=bd107e2158ee0fc51dc4c607505ee7f46df64944;hb=0ce54d08c0b1c56f37ea2998acd6847da7ced8a2;hpb=29a09c1a5c20e1b04cc11ef24f5863bf8db7796c diff --git a/tests/test-imagex b/tests/test-imagex index bd107e21..94b697fd 100755 --- a/tests/test-imagex +++ b/tests/test-imagex @@ -1,12 +1,11 @@ -#!/bin/sh +#!/usr/bin/env bash # This script does some sanity testing of the 'imagex' program. It by no means # tests every aspect of wimlib comprehensively. set -e -srcdir=${srcdir:-.} -srcdir=`realpath $srcdir` cd tests +. tests-common.sh imagex() { echo "imagex $@" @@ -19,7 +18,8 @@ imagex_info() { } cleanup() { - rm -rf dir* tmp* *.wim *.swm + fusermount -u tmp &> /dev/null || true + rm -rf dir* tmp* *.wim *.swm &> /dev/null || true } cleanup @@ -61,13 +61,13 @@ for comp_type in None LZX XPRESS; do if ! diff -q -r dir tmp; then error "Recursive diff of extracted directory with original failed" fi - if ! test `stat -c %h tmp/subdir/hello` = 2; then + if ! test `get_link_count tmp/subdir/hello` = 2; then error "Incorrect number of hard links in extracted file" fi - if ! test `stat -c %i tmp/subdir/hello` != `stat -c %i tmp/subdir/hello2`; then + if ! test `get_inode_number tmp/subdir/hello` != `get_inode_number tmp/subdir/hello2`; then error "Expected different inode numbers in files not hard-linked" fi - if ! test "`stat -c %i tmp/subdir/hello`" = "`stat -c %i tmp/subdir/hellolink`"; then + if ! test "`get_inode_number tmp/subdir/hello`" = "`get_inode_number tmp/subdir/hellolink`"; then error "Expected same inode numbers in hard-linked files" fi if ! test -L tmp/subdir/rel_symlink; then @@ -287,13 +287,13 @@ fi if ! diff -q -r tmp/dir tmp/myname || ! diff -q -r dir tmp/dir; then error "Recursive diff of applied WIM with original directory failed" fi -if test "`stat -c %h tmp/dir/lz.c`" != 1; then +if test "`get_link_count tmp/dir/lz.c`" != 1; then error "Incorrect link count on extracted file" fi -if test "`stat -c %h tmp/myname/lz.c`" != 1; then +if test "`get_link_count tmp/myname/lz.c`" != 1; then error "Incorrect link count on extracted file" fi -if test "`stat -c %i tmp/myname/lz.c`" = "`stat -c %i tmp/dir/lz.c`"; then +if test "`get_inode_number tmp/myname/lz.c`" = "`get_inode_number tmp/dir/lz.c`"; then error "Incorrect inode number" fi rm -rf tmp @@ -304,13 +304,13 @@ fi if ! diff -q -r tmp/dir tmp/myname || ! diff -q -r dir tmp/dir; then error "Recursive diff of applied WIM with original directory failed" fi -if test "`stat -c %h tmp/dir/lz.c`" != 2; then +if test "`get_link_count tmp/dir/lz.c`" != 2; then error "Incorrect link count on extracted file" fi -if test "`stat -c %h tmp/myname/lz.c`" != 2; then +if test "`get_link_count tmp/myname/lz.c`" != 2; then error "Incorrect link count on extracted file" fi -if test "`stat -c %i tmp/myname/lz.c`" != "`stat -c %i tmp/dir/lz.c`"; then +if test "`get_inode_number tmp/myname/lz.c`" != "`get_inode_number tmp/dir/lz.c`"; then error "Incorrect inode number" fi rm -rf tmp @@ -319,16 +319,16 @@ echo "Testing application of single image containing identical files" if ! imagex apply dir.wim 1 tmp; then error "Failed to apply WIM" fi -if test "`stat -c %h tmp/subdir/hello`" != 2; then +if test "`get_link_count tmp/subdir/hello`" != 2; then error "Incorrect link count on extracted file" fi -if test "`stat -c %h tmp/subdir/hello2`" != 1; then +if test "`get_link_count tmp/subdir/hello2`" != 1; then error "Incorrect link count on extracted file" fi -if test "`stat -c %i tmp/subdir/hello`" = "`stat -c %i tmp/subdir/hello2`"; then +if test "`get_inode_number tmp/subdir/hello`" = "`get_inode_number tmp/subdir/hello2`"; then error "Inode numbers on non-hard-linked files are the same" fi -if test "`stat -c %i tmp/subdir/hello`" != "`stat -c %i tmp/subdir/hellolink`"; then +if test "`get_inode_number tmp/subdir/hello`" != "`get_inode_number tmp/subdir/hellolink`"; then error "Inode numbers on hard-linked files are different" fi rm -rf tmp @@ -337,16 +337,16 @@ echo "Testing application of single image containing identical files with hardli if ! imagex apply dir.wim 1 tmp --hardlink; then error "Failed to apply WIM" fi -if test "`stat -c %h tmp/subdir/hello`" != 3; then +if test "`get_link_count tmp/subdir/hello`" != 3; then error "Incorrect link count on extracted file" fi -if test "`stat -c %h tmp/subdir/hello2`" != 3; then +if test "`get_link_count tmp/subdir/hello2`" != 3; then error "Incorrect link count on extracted file" fi -if test "`stat -c %i tmp/subdir/hello`" != "`stat -c %i tmp/subdir/hello2`"; then +if test "`get_inode_number tmp/subdir/hello`" != "`get_inode_number tmp/subdir/hello2`"; then error "Hard link set does not share inode number" fi -if test "`stat -c %i tmp/subdir/hello`" != "`stat -c %i tmp/subdir/hellolink`"; then +if test "`get_inode_number tmp/subdir/hello`" != "`get_inode_number tmp/subdir/hellolink`"; then error "Hard link set does not share inode number" fi rm -rf tmp @@ -355,13 +355,13 @@ echo "Testing application of single image containing identical files with symlin if ! imagex apply dir.wim 1 tmp --symlink; then error "Failed to apply WIM" fi -if test "`stat -c %h tmp/subdir/hello`" != 1; then +if test "`get_link_count tmp/subdir/hello`" != 1; then error "Incorrect link count on extracted file" fi -if test "`stat -c %h tmp/subdir/hello2`" != 1; then +if test "`get_link_count tmp/subdir/hello2`" != 1; then error "Incorrect link count on extracted file" fi -if test "`stat -c %i tmp/subdir/hello`" = "`stat -c %i tmp/subdir/hello2`"; then +if test "`get_inode_number tmp/subdir/hello`" = "`get_inode_number tmp/subdir/hello2`"; then error "Incorrect inode number" fi if ! test -L tmp/subdir/hello -o -L tmp/subdir/hello2 -o -L tmp/subdir/hellolink; then @@ -374,7 +374,7 @@ rm -rf dir.wim tmp echo "Creating random files to test WIM splitting on" mkdir tmp -for i in `seq 1 100`; do +for ((i = 0; i < 100; i++)); do dd if=/dev/urandom of=tmp/file$i bs=4096 count=10 &> /dev/null done for flag in "--compress=none" "--compress=maximum" "--compress=fast"; do @@ -486,7 +486,7 @@ fi # Test exporting an image to another WIM, then applying it. # We try with 5 different combinations of compression types to make sure we go # through all paths in the resource-handling code. -for i in `seq 1 3`; do +for i in 1 2 3 4 5; do case $i in 1) cflag1="--compress=none";