|
@@ -257,9 +257,13 @@ int main(int argc, char *argv[])
|
|
{
|
|
{
|
|
test_name = malloc(strlen(argv[x+1]) + 1 + strlen(argv[x+2]) + 1);
|
|
test_name = malloc(strlen(argv[x+1]) + 1 + strlen(argv[x+2]) + 1);
|
|
sprintf(test_name, "%s/%s", argv[x+1], argv[x+2]);
|
|
sprintf(test_name, "%s/%s", argv[x+1], argv[x+2]);
|
|
|
|
+ x += 3;
|
|
}
|
|
}
|
|
else
|
|
else
|
|
|
|
+ {
|
|
test_name = argv[x];
|
|
test_name = argv[x];
|
|
|
|
+ x += 1;
|
|
|
|
+ }
|
|
|
|
|
|
if (!test_name)
|
|
if (!test_name)
|
|
{
|
|
{
|
|
@@ -352,50 +356,39 @@ int main(int argc, char *argv[])
|
|
child_pid = fork();
|
|
child_pid = fork();
|
|
if (child_pid == 0)
|
|
if (child_pid == 0)
|
|
{
|
|
{
|
|
- if (launcher)
|
|
|
|
|
|
+ char *launcher_argv[100];
|
|
|
|
+ int i=0;
|
|
|
|
+
|
|
|
|
+ /* "Launchers" such as Valgrind need to be inserted
|
|
|
|
+ * after the Libtool-generated wrapper scripts, hence
|
|
|
|
+ * this special-case. */
|
|
|
|
+ if (launcher && top_builddir != NULL)
|
|
{
|
|
{
|
|
- /* "Launchers" such as Valgrind need to be inserted
|
|
|
|
- * after the Libtool-generated wrapper scripts, hence
|
|
|
|
- * this special-case. */
|
|
|
|
- if (top_builddir != NULL)
|
|
|
|
|
|
+ launcher_argv[i++] = libtool;
|
|
|
|
+ launcher_argv[i++] = "--mode=execute";
|
|
|
|
+ launcher_argv[i++] = launcher;
|
|
|
|
+ if (launcher_args)
|
|
{
|
|
{
|
|
- char *launcher_argv[100];
|
|
|
|
- int i=0;
|
|
|
|
-
|
|
|
|
- launcher_argv[i++] = libtool;
|
|
|
|
- launcher_argv[i++] = "--mode=execute";
|
|
|
|
- launcher_argv[i++] = launcher;
|
|
|
|
- if (launcher_args)
|
|
|
|
|
|
+ launcher_argv[i++] = strtok(launcher_args, " ");
|
|
|
|
+ while (launcher_argv[i-1])
|
|
{
|
|
{
|
|
- launcher_argv[i++] = strtok(launcher_args, " ");
|
|
|
|
- while (launcher_argv[i-1])
|
|
|
|
- {
|
|
|
|
- launcher_argv[i++] = strtok(NULL, " ");
|
|
|
|
- }
|
|
|
|
|
|
+ launcher_argv[i++] = strtok(NULL, " ");
|
|
}
|
|
}
|
|
- launcher_argv[i++] = test_name;
|
|
|
|
-#ifdef STARPU_SIMGRID
|
|
|
|
- launcher_argv[i++] = "--cfg=contexts/factory:thread";
|
|
|
|
-#endif
|
|
|
|
- launcher_argv[i++] = test_args;
|
|
|
|
- launcher_argv[i++] = NULL;
|
|
|
|
- execvp(*launcher_argv, launcher_argv);
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- execl(test_name, test_name,
|
|
|
|
-#ifdef STARPU_SIMGRID
|
|
|
|
- "--cfg=contexts/factory:thread",
|
|
|
|
-#endif
|
|
|
|
- test_args, NULL);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- else
|
|
|
|
- execl(test_name, test_name,
|
|
|
|
|
|
+
|
|
|
|
+ launcher_argv[i++] = test_name;
|
|
#ifdef STARPU_SIMGRID
|
|
#ifdef STARPU_SIMGRID
|
|
- "--cfg=contexts/factory:thread",
|
|
|
|
|
|
+ launcher_argv[i++] = "--cfg=contexts/factory:thread";
|
|
#endif
|
|
#endif
|
|
- test_args, NULL);
|
|
|
|
|
|
+ if (test_args)
|
|
|
|
+ launcher_argv[i++] = test_args;
|
|
|
|
+ else while (argv[x])
|
|
|
|
+ {
|
|
|
|
+ launcher_argv[i++] = argv[x++];
|
|
|
|
+ }
|
|
|
|
+ launcher_argv[i++] = NULL;
|
|
|
|
+ execvp(*launcher_argv, launcher_argv);
|
|
|
|
|
|
fprintf(stderr, "[error] '%s' failed to exec. test marked as failed\n", test_name);
|
|
fprintf(stderr, "[error] '%s' failed to exec. test marked as failed\n", test_name);
|
|
exit(EXIT_FAILURE);
|
|
exit(EXIT_FAILURE);
|