diff --git a/tests/run_tests.sh b/tests/run_tests.sh
index 31e3c16cd22b461aed8ed324f2f60216a75e955e..72685a79518a53fda4bb54ca3f57d17f8d70bfb4 100755
--- a/tests/run_tests.sh
+++ b/tests/run_tests.sh
@@ -203,8 +203,6 @@ STATUS_NAMES=(\
     #	time/times
 
 EXPECT_BINS=(${EXPECT_NAMES[@]/#/.\/bins_static\/})
-STATUS_BINS=(${STATUS_NAMES[@]/#/.\/bins_static\/})
+STATUS_BINS=(${STATUS_NAMES[@]/#/-s.\/bins_static\/})
 
-bins_verify/relibc-tests --status-only ${STATUS_BINS[@]}
-
-bins_verify/relibc-tests ${EXPECT_BINS[@]}
\ No newline at end of file
+bins_verify/relibc-tests ${STATUS_BINS[@]} ${EXPECT_BINS[@]}
\ No newline at end of file
diff --git a/tests/src/main.rs b/tests/src/main.rs
index 68d5eefcee7577037db24a0738c94074d33c3f7a..b4678630913a5354be1be0766ec2c306c45d16ff 100644
--- a/tests/src/main.rs
+++ b/tests/src/main.rs
@@ -43,24 +43,20 @@ fn expected(bin: &str, kind: &str, generated: &[u8], status: ExitStatus) -> Resu
     Ok(())
 }
 
+const STATUS_ONLY: &str = "-s";
+
 fn main() {
-    
-    let (status_only, bins) = {
-        let mut bins = vec![];
-        let mut status_only = false;
-        for name in env::args().skip(1) {
-            if name == "--status-only" {
-                status_only = true;
-            } else {
-                bins.push(name);
-            }
-        }
-        (status_only, bins)
-    };
 
     let mut failures = Vec::new();
 
-    for bin in bins {
+    for bin in env::args().skip(1) {
+        let status_only = bin.starts_with(STATUS_ONLY);
+        let bin = if bin.starts_with(STATUS_ONLY) {
+            bin.strip_prefix(STATUS_ONLY).unwrap().to_string()
+        } else {
+            bin
+        };
+
         println!("# {} #", bin);
 
         match Command::new(&bin).arg("test").arg("args").output() {