X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=tests%2Ftest-imagex-capture_and_apply;h=5de3b0e20de5e35555977a83cb72ad5e1c07fefb;hp=dfa240f819be3fb2bd96e583a575f092bd0292b1;hb=575d1f6727bf92c0fac6daae97b35add88eba7d7;hpb=337df3674d64fff382890d1e8757dadf57d93b1f diff --git a/tests/test-imagex-capture_and_apply b/tests/test-imagex-capture_and_apply index dfa240f8..5de3b0e2 100755 --- a/tests/test-imagex-capture_and_apply +++ b/tests/test-imagex-capture_and_apply @@ -39,7 +39,7 @@ do_test() { if [ -x /usr/bin/tree -a "$ctype" = "None" ]; then tree in.dir --inodes -F -s --noreport fi - if ! imagex capture in.dir test.wim --compress=$ctype; then + if ! imagex capture in.dir test.wim --compress=$ctype --norpfix; then error "Failed to capture directory tree into a WIM" fi if ! imagex apply test.wim 1 out.dir; then @@ -114,6 +114,7 @@ if [ -e out.dir/hiberfil.sys -o -e "out.dir/System Volume Information" ]; then error "Files were not excluded from capture as expected" fi +# Make sure reparse point fixups are working as expected __msg "Testing --rpfix" rm -r in.dir out.dir mkdir in.dir @@ -151,6 +152,78 @@ then error "imagex apply failed to apply fixed absolute symlinks" fi +# Make sure source list mode is working as expected +__msg "Testing source list capture mode" +rm -rf in.dir out.dir +mkdir in.dir +echo 1 > in.dir/1 +ln in.dir/1 in.dir/1link +echo 5 > 5 +mkdir otherdir +cp $srcdir/src/add_image.c otherdir +cat > srclist << EOF +in.dir / +5 /5 +otherdir /otherdir +EOF +imagex capture srclist --source-list test.wim +imagex apply test.wim out.dir +if [[ ! -f out.dir/5 || ! -f out.dir/1 || ! -f out.dir/1link || \ + ! -d out.dir/otherdir ]]; then + error "source list capture failed to work as expected" +fi + +# Still testing source list capture: add quoted name, and try overlay +rm -rf out.dir +cat > srclist << EOF +in.dir / +5 /5 +otherdir /otherdir + "overlay dir 1" 'otherdir' + "overlay dir 2" 'otherdir' +EOF +mkdir "overlay dir 1" +mkdir "overlay dir 2" +echo A > "overlay dir 1"/A +echo B > "overlay dir 2"/B +imagex capture srclist --source-list test.wim +imagex apply test.wim out.dir +if [[ ! -f out.dir/5 || ! -f out.dir/1 || ! -f out.dir/1link || \ + ! -f out.dir/otherdir/A || ! -f out.dir/otherdir/B ]]; then + error "source list capture (with quoted names and basic overlay) failed to work as expected" +fi + +# Try deep overlay +rm -rf in.dir out.dir "overlay dir 1" "overlay dir 2" +mkdir -p in.dir.1/subdir/subdir2 in.dir.2/subdir/subdir2 +cat > srclist << EOF +in.dir.1 / +in.dir.2 / +EOF +echo 1 > in.dir.1/subdir/1 +echo 2 > in.dir.2/subdir/2 +echo 3 > in.dir.1/subdir/subdir2/3 +echo 4 > in.dir.2/subdir/subdir2/4 +imagex capture srclist --source-list test.wim +imagex apply test.wim out.dir +if [[ ! -f out.dir/subdir/1 || ! -f out.dir/subdir/2 || \ + ! -f out.dir/subdir/subdir2/3 || ! -f out.dir/subdir/subdir2/4 ]]; then + error "source list capture (with deep overlay) failed to work as expected" +fi + +# Try bad overlay +__msg "Testing bad overlay (errors expected)" +rm -rf out.dir +echo 5 > 5 +cat > srclist << EOF +in.dir.1 / +in.dir.2 / +5 /subdir +EOF +if imagex capture srclist --source-list test.wim; then + error "unexpected success in bad overlay with --source-list!" +fi + echo "**********************************************************" echo " imagex capture/apply tests passed " echo "**********************************************************"