diff --git a/tests/scripts/all-helpers.sh b/tests/scripts/all-helpers.sh
index 4fc8cfa..d2ac10e 100644
--- a/tests/scripts/all-helpers.sh
+++ b/tests/scripts/all-helpers.sh
@@ -277,48 +277,48 @@
 
 can_run_cc_output() {
     cc="$1"
-    result=1
+    result=false
     if type "$cc" >/dev/null 2>&1; then
         testbin=$(mktemp)
         if echo 'int main(void){return 0;}' | "$cc" -o "$testbin" -x c -; then
             if "$testbin" 2>/dev/null; then
-                result=0
+                result=true
             fi
         fi
         rm -f "$testbin"
     fi
-    return $result
+    $result
 }
 
 can_run_arm_linux_gnueabi () {
     if [ -z "${can_run_arm_linux_gnueabi:-}" ]; then
         if can_run_cc_output "${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc"; then
-            can_run_arm_linux_gnueabi=1
+            can_run_arm_linux_gnueabi=true
         else
-            can_run_arm_linux_gnueabi=0
+            can_run_arm_linux_gnueabi=false
         fi
     fi
-    return $((! can_run_arm_linux_gnueabi))
+    $can_run_arm_linux_gnueabi
 }
 
 can_run_arm_linux_gnueabihf () {
     if [ -z "${can_run_arm_linux_gnueabihf:-}" ]; then
         if can_run_cc_output "${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc"; then
-            can_run_arm_linux_gnueabihf=1
+            can_run_arm_linux_gnueabihf=true
         else
-            can_run_arm_linux_gnueabihf=0
+            can_run_arm_linux_gnueabihf=false
         fi
     fi
-    return $((! can_run_arm_linux_gnueabihf))
+    $can_run_arm_linux_gnueabihf
 }
 
 can_run_aarch64_linux_gnu () {
     if [ -z "${can_run_aarch64_linux_gnu:-}" ]; then
         if can_run_cc_output "${AARCH64_LINUX_GNU_GCC_PREFIX}gcc"; then
-            can_run_aarch64_linux_gnu=1
+            can_run_aarch64_linux_gnu=true
         else
-            can_run_aarch64_linux_gnu=0
+            can_run_aarch64_linux_gnu=false
         fi
     fi
-    return $((! can_run_aarch64_linux_gnu))
+    $can_run_aarch64_linux_gnu
 }
