diff --git a/tests/actions-test-lib.sh b/tests/actions-test-lib.sh index 51d4eef..daf18a9 100644 --- a/tests/actions-test-lib.sh +++ b/tests/actions-test-lib.sh @@ -34,3 +34,19 @@ echo "custom action $1 in folder $1" EOF chmod +x ".todo.actions.d/$1/$1" } + +invalidate_action() +{ + local customActionFilespec="${1:?}"; shift + local testName="${1:?}"; shift + + chmod -x "$customActionFilespec" + # On Cygwin, clearing the executable flag may have no effect, as the Windows + # ACL may still grant execution rights. In this case, we skip the test, and + # remove the (still valid) custom action so that it doesn't break following + # tests. + if [ -x "$customActionFilespec" ]; then + SKIP_TESTS="${SKIP_TESTS}${SKIP_TESTS+ }${testName}" + rm -- "$customActionFilespec" + fi +} diff --git a/tests/t8010-listaddons.sh b/tests/t8010-listaddons.sh index cf212e8..ee0495a 100755 --- a/tests/t8010-listaddons.sh +++ b/tests/t8010-listaddons.sh @@ -28,14 +28,7 @@ ls quux EOF -chmod -x .todo.actions.d/foo -# On Cygwin, clearing the executable flag may have no effect, as the Windows ACL -# may still grant execution rights. In this case, we skip the test, and remove -# the (still valid) custom action so that it doesn't break following tests. -if [ -x .todo.actions.d/foo ]; then - SKIP_TESTS="${SKIP_TESTS}${SKIP_TESTS+ }t8010.4" - rm .todo.actions.d/foo -fi +invalidate_action .todo.actions.d/foo t8010.4 test_todo_session 'nonexecutable action' <>> todo.sh listaddons bar @@ -68,15 +61,7 @@ norris quux EOF -# nthorne: shamelessly stolen from above.. -chmod -x .todo.actions.d/norris/norris -# On Cygwin, clearing the executable flag may have no effect, as the Windows ACL -# may still grant execution rights. In this case, we skip the test, and remove -# the (still valid) custom action so that it doesn't break following tests. -if [ -x .todo.actions.d/norris/norris ]; then - SKIP_TESTS="${SKIP_TESTS}${SKIP_TESTS+ }t8010.8" - rm .todo.actions.d/norris/norris -fi +invalidate_action .todo.actions.d/norris/norris t8010.8 test_todo_session 'nonexecutable action in subfolder' <>> todo.sh listaddons bar