|
@@ -1,4 +1,4 @@
|
|
|
-/* tinytest.c -- Copyright 2009-2010 Nick Mathewson
|
|
|
+/* tinytest.c -- Copyright 2009-2012 Nick Mathewson
|
|
|
*
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
* modification, are permitted provided that the following conditions
|
|
@@ -22,16 +22,15 @@
|
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
*/
|
|
|
+#ifdef TINYTEST_LOCAL
|
|
|
+#include "tinytest_local.h"
|
|
|
+#endif
|
|
|
|
|
|
#include <stdio.h>
|
|
|
#include <stdlib.h>
|
|
|
#include <string.h>
|
|
|
#include <assert.h>
|
|
|
|
|
|
-#ifdef TINYTEST_LOCAL
|
|
|
-#include "tinytest_local.h"
|
|
|
-#endif
|
|
|
-
|
|
|
#ifdef _WIN32
|
|
|
#include <windows.h>
|
|
|
#else
|
|
@@ -66,8 +65,8 @@ const char *cur_test_prefix = NULL; /**< prefix of the current test group */
|
|
|
const char *cur_test_name = NULL;
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
-/** Pointer to argv[0] for win32. */
|
|
|
-static const 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)
|
|
@@ -291,7 +290,12 @@ tinytest_main(int c, const char **v, struct testgroup_t *groups)
|
|
|
int i, j, n=0;
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
- commandname = 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] == '-') {
|