From 2750798aef21cc0c645d8d529ed707b358e45cc2 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Mon, 27 Jun 2011 12:33:25 +0000 Subject: [PATCH] Polished hardlink test --- releng/test_hardlinks | 48 +++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/releng/test_hardlinks b/releng/test_hardlinks index 8b9658ba..e314b208 100755 --- a/releng/test_hardlinks +++ b/releng/test_hardlinks @@ -2,7 +2,9 @@ # ts 2011.06.27 # Test the correct handling of hardlinks by xorriso options -# -update_r and -hardlinks perform_update +# -update_r , -hardlinks perform_update , and -extract + +export prog=$(basename "$0") export xorriso=xorriso export image_file=/tmp/xorriso_hardlinks.iso @@ -12,14 +14,15 @@ export copy_on_disk=/tmp/xorriso_hardlinks_copy_dir export keep=0 export failure=0 export next_is_xorriso=0 +export bad=0 clean_up() { if test "$keep" = 1 then - dummy=dummy - echo "Kept test area because of option -keep" >&2 + echo "=== Kept test area because of option -keep" >&2 echo "$on_disk" "$copy_on_disk" "$image_file" >&2 else + echo "=== Removing test area" >&2 rm -r "$on_disk" "$copy_on_disk" "$image_file" fi } @@ -57,24 +60,28 @@ done if test -e "$image_file" then - echo "TEST ENVIRONMENT ERROR: $0 : Existing image_file target:" >&2 + echo "TEST ENVIRONMENT ERROR: $prog : Existing image_file target:" >&2 ls -ld "$image_file" >&2 - exit 1 + bad=1 fi if test -e "$on_disk" then - echo "TEST ENVIRONMENT ERROR: $0 : Existing $on_disk target:" >&2 + echo "TEST ENVIRONMENT ERROR: $prog : Existing on_disk target:" >&2 ls -ld "$on_disk" >&2 - exit 1 + bad=1 fi if test -e "$copy_on_disk" then - echo "TEST ENVIRONMENT ERROR: $0 : Existing copy_on_disk target:" >&2 + echo "TEST ENVIRONMENT ERROR: $prog : Existing copy_on_disk target:" >&2 ls -ld "$copy_on_disk" >&2 + bad=1 +fi +if test "$bad" = 1 +then exit 1 fi -# Set up $on_disk with several hardlinks +echo "=== Setting up $on_disk with several hardlinks" >&2 mkdir "$on_disk" || exit 1 echo test_content >"$on_disk"/file_1 || exit 1 echo test_content >"$on_disk"/file_2 || exit 1 @@ -84,14 +91,14 @@ ln "$on_disk"/file_2 "$on_disk"/file_2_link_a || exit 1 ls -l "$on_disk"/* -# Produce simple image +echo "=== Producing simple image" >&2 "$xorriso" \ -for_backup \ -outdev "$image_file" \ -update_r "$on_disk" "$in_iso" \ -hardlinks perform_update -# Copy from image to temporary disk tree +echo "=== Copying from image to temporary disk tree" >&2 "$xorriso" \ -for_backup \ -indev "$image_file" \ @@ -99,21 +106,27 @@ ls -l "$on_disk"/* -find "$in_iso" -exec lsdl -- \ -extract "$in_iso" "$copy_on_disk" -# Compare original disk tree and temporary one + +## For testing the test: Let it fail deliberately +## rm "$copy_on_disk"/file_1_link_b + +echo "=== Comparing original disk tree and temporary one" >&2 diff -r "$on_disk" "$copy_on_disk" if test "$?" -ne 0 then + echo "WRONG: diff -r $on_disk $copy_on_disk reports differences" >&2 failure=1 +else + echo "=== OK" >&2 fi - -# Check for hardlinks being siblings +echo "=== Checking for hardlinks being siblings" >&2 ls -l "$copy_on_disk"/* x=$(echo $(ls -l "$copy_on_disk"/* | awk '{print $2}')) expected="3 3 3 2 2" if test x"$x" = x"$expected" then - dummy=dummy + echo "=== OK" >&2 else echo "WRONG: Link count of extracted files is not as expected." >&2 echo "Expected: $expected" >&2 @@ -127,12 +140,11 @@ clean_up # Report result echo -echo "======== $(basename "$0") ========" if test "$failure" = 1 then - echo 'FAILURE !!!' + echo "======== $prog :" 'FAILURE !!!' else - echo "Success." + echo "======== $prog :" "Success." fi echo