const char *cur_test_name = NULL;
#ifdef WIN32
-/** Pointer to argv[0] for win32. */
-static char *commandname = NULL;
+/* Copy of argv[0] for win32. */
+static char commandname[MAX_PATH+1];
#endif
static void usage(struct testgroup_t *groups, int list_groups)
int i, j, n=0;
#ifdef WIN32
- const char* sp = strrchr (v[0], '.');
- if (0 != sp) {
- if (0 != stricmp (sp, ".exe")) { /* not exe extension */
- sp = 0;
- }
- }
- if (0 == sp) {
- commandname = (char*) malloc (strlen(v[0]) + 5);
- strcpy (commandname, v[0]);
- strcat (commandname, ".exe");
- }
- else
- commandname = strdup (v[0]);
+ const char *sp = strrchr(v[0], '.');
+ const char *extension = "";
+ if (!sp || stricmp(sp, ".exe"))
+ extension = ".exe"; /* Add an exe so CreateProcess will work */
+ snprintf(commandname, sizeof(commandname), "%s%s", v[0], extension);
+ commandname[MAX_PATH]='\0';
#endif
for (i=1; i<c; ++i) {
if (v[i][0] == '-') {
usage(groups, 1);
} else {
printf("Unknown option %s. Try --help\n",v[i]);
- free (commandname);
return -1;
}
} else {
}
if (!_tinytest_set_flag(groups, test, flag)) {
printf("No such test as %s!\n", v[i]);
- free (commandname);
return -1;
}
}
else if (opt_verbosity >= 1)
printf("%d tests ok. (%d skipped)\n", n_ok, n_skipped);
- free (commandname);
-
return (n_bad == 0) ? 0 : 1;
}