test-lib: abort when can't remove trash directory
[gitweb.git] / t / test-lib.sh
index b859db61ac0d034b8f2c14cea4a960a1a3d9f576..cb0766b9ee1e0f7fee4c3b1b1b983c06aa8b4908 100644 (file)
@@ -760,9 +760,12 @@ test_done () {
                        say "1..$test_count$skip_all"
                fi
 
-               test -d "$remove_trash" &&
+               test -d "$remove_trash" ||
+               error "Tests passed but trash directory already removed before test cleanup; aborting"
+
                cd "$(dirname "$remove_trash")" &&
-               rm -rf "$(basename "$remove_trash")"
+               rm -rf "$(basename "$remove_trash")" ||
+               error "Tests passed but test cleanup failed; aborting"
 
                test_at_end_hook_
 
@@ -809,7 +812,14 @@ then
                return;
 
                base=$(basename "$1")
-               symlink_target=$GIT_BUILD_DIR/$base
+               case "$base" in
+               test-*)
+                       symlink_target="$GIT_BUILD_DIR/t/helper/$base"
+                       ;;
+               *)
+                       symlink_target="$GIT_BUILD_DIR/$base"
+                       ;;
+               esac
                # do not override scripts
                if test -x "$symlink_target" &&
                    test ! -d "$symlink_target" &&