testname=$(basename "$i" .c)
        echo -ne "$testname... "
        if gcc -o "tests/$testname" -pthread "$i" liblockdep.a -Iinclude -D__USE_LIBLOCKDEP &&
-               timeout 1 "tests/$testname" 2>&1 | "tests/${testname}.sh"; then
+               timeout 1 "tests/$testname" 2>&1 | /bin/bash "tests/${testname}.sh"; then
                echo "PASSED!"
        else
                echo "FAILED!"
        echo -ne "(PRELOAD) $testname... "
        if gcc -o "tests/$testname" -pthread -Iinclude "$i" &&
                timeout 1 ./lockdep "tests/$testname" 2>&1 |
-               "tests/${testname}.sh"; then
+               /bin/bash "tests/${testname}.sh"; then
                echo "PASSED!"
        else
                echo "FAILED!"
        echo -ne "(PRELOAD + Valgrind) $testname... "
        if gcc -o "tests/$testname" -pthread -Iinclude "$i" &&
                { timeout 10 valgrind --read-var-info=yes ./lockdep "./tests/$testname" >& "tests/${testname}.vg.out"; true; } &&
-               "tests/${testname}.sh" < "tests/${testname}.vg.out" &&
+               /bin/bash "tests/${testname}.sh" < "tests/${testname}.vg.out" &&
                ! grep -Eq '(^==[0-9]*== (Invalid |Uninitialised ))|Mismatched free|Source and destination overlap| UME ' "tests/${testname}.vg.out"; then
                echo "PASSED!"
        else