]> wimlib.net Git - wimlib/blobdiff - tests/test-imagex
mount_image.c: add fallback definitions of RENAME_* constants
[wimlib] / tests / test-imagex
index fe931321a760476b63d0d89c3b5793c46f089a02..c5e273f2de9296706ffc19afbdaaff56fcc3fd44 100755 (executable)
@@ -7,7 +7,7 @@ set -e
 cd tests
 srcdir="${srcdir:-.}/.."
 srcdir="$(cd $srcdir; pwd)"
-. "$srcdir/tests/tests-common.sh"
+. "$srcdir/tests/test_utils.sh"
 
 TEST_SUBDIR=tmpdir_test-imagex
 
@@ -65,6 +65,32 @@ for comp_type in None LZX XPRESS; do
        rm -rf dir.wim tmp
 done
 
+# Test wimverify and the SHA-1 code
+WIMLIB_DISABLE_CPU_FEATURES='*' wimcapture dir dir.wim --compress=none
+disabled=''
+for cpu_feature in '' sha1 bmi2 avx sse4.2 sse4.1 ssse3; do
+       [ -n "$disabled" ] && disabled+=','
+       disabled+="$cpu_feature"
+       if ! WIMLIB_DISABLE_CPU_FEATURES=$disabled wimverify dir.wim; then
+               error "wimverify failed (cpu_features_disabled=$disabled)"
+       fi
+done
+
+# Test wimappend --create
+rm -f dir.wim
+if wimappend dir dir.wim; then
+       error "wimappend to nonexisting file unexpectedly succeeded"
+fi
+if ! wimappend dir dir.wim --create; then
+       error "wimappend --create to nonexisting file failed"
+fi
+if ! wimappend dir dir.wim --create; then
+       error "wimappend --create to existing file failed"
+fi
+if ! test "`wiminfo dir.wim | grep 'Image Count' | awk '{print $3}'`" = 2; then
+       error "Incorrect WIM image count after wimappend --create"
+fi
+
 # Capturing and modifying name, description, and bootable flag
 
 echo "Testing capture of WIM with default name and description"
@@ -105,16 +131,26 @@ if ! test "`wiminfo dir.wim | grep '^Boot Index' | awk '{print $3}'`" = "0"; the
 fi
 rm -rf dir.wim tmp
 
+name_desc_test() {
+       local name=$1
+       local desc=$2
+       if ! wimcapture dir dir.wim "$name" "$desc"; then
+               error "Failed to capture WIM with specified name and description"
+       fi
+       if ! test "`wiminfo dir.wim | grep Name | awk '{print $2}'`" = "$name"; then
+               error "WIM name not set correctly"
+       fi
+       if ! test "`wiminfo dir.wim | grep Description | awk '{print $2}'`" = "$desc"; then
+               error "WIM description not set correctly"
+       fi
+}
+
 echo "Testing capture of WIM with name and description"
-if ! wimcapture dir dir.wim "myname" "mydesc"; then
-       error "Failed to capture WIM with specified name and description"
-fi
-if ! test "`wiminfo dir.wim | grep Name | awk '{print $2}'`" = "myname"; then
-       error "WIM name not set correctly"
-fi
-if ! test "`wiminfo dir.wim | grep Description | awk '{print $2}'`" = "mydesc"; then
-       error "WIM name not set correctly"
-fi
+name_desc_test "myname" "mydesc"
+
+echo "Testing capture of WIM with non-ASCII name and description"
+name_desc_test "áéíóú" "¿?"
+
 echo "Testing printing WIM lookup table"
 if ! wiminfo --lookup-table dir.wim > /dev/null; then
        error "Failed to print WIM lookup table"