瀏覽代碼

loader: Simplify and fix shell-based tests: just make them run the loader

Samuel Thibault 5 年之前
父節點
當前提交
904c43573c
共有 1 個文件被更改,包括 16 次插入29 次删除
  1. 16 29
      tests/loader.c

+ 16 - 29
tests/loader.c

@@ -288,9 +288,22 @@ int main(int argc, char *argv[])
 		exit(EXIT_FAILURE);
 	}
 
-	if (strstr(test_name, "tasks_size_overhead_scheds.sh") || strstr(test_name, "schedulers.sh"))
-		/* This extensively tests various schedulers, let it run longer */
-		timeout *= 10;
+	size_t len = strlen(test_name);
+	if (len >= 3 &&
+	    test_name[len-3] == '.' &&
+	    test_name[len-2] == 's' &&
+	    test_name[len-1] == 'h')
+	{
+                /* This is a shell script, don't run ourself on bash, but make
+                 * the script call us for each program invocation */
+
+		setenv("STARPU_LAUNCH", argv[0], 1);
+
+		execvp(test_name, argv+x);
+
+		fprintf(stderr, "[error] '%s' failed to exec. test marked as failed\n", test_name);
+		exit(EXIT_FAILURE);
+	}
 
 	if (strstr(test_name, "spmv/dw_block_spmv"))
 	{
@@ -333,32 +346,6 @@ int main(int argc, char *argv[])
 		decode(&launcher_args, "@top_srcdir@", top_srcdir);
 	}
 
-	size_t len = strlen(test_name);
-	if (launcher && len >= 3 &&
-	    test_name[len-3] == '.' &&
-	    test_name[len-2] == 's' &&
-	    test_name[len-1] == 'h')
-	{
-		/* This is a shell script, don't run the check on bash, but pass
-		 * the script the decoded variables */
-		setenv("STARPU_CHECK_LAUNCHER", launcher, 1);
-		if (launcher_args)
-			setenv("STARPU_CHECK_LAUNCHER_ARGS", launcher_args, 1);
-		else
-			launcher_args = strdup("");
-
-		/* And give a convenience macro */
-		size_t len_launch = strlen(libtool) + 1 + strlen("--mode=execute") + 1
-				  + strlen(launcher) + 1 + strlen(launcher_args) + 1;
-		char launch[len_launch];
-		snprintf(launch, sizeof(launch), "%s --mode=execute %s %s", libtool, launcher, launcher_args);
-		setenv("STARPU_LAUNCH", launch, 1);
-		free(launcher_args);
-
-		launcher = NULL;
-		launcher_args = NULL;
-	}
-
 	setenv("STARPU_OPENCL_PROGRAM_DIR", STARPU_SRC_DIR, 1);
 
 	/* set SIGALARM handler */