From 0cafdeb6f53370877a74fa4687bcaf1b269396a5 Mon Sep 17 00:00:00 2001 From: Nick Mathewson <nickm@torproject.org> Date: Mon, 12 May 2008 17:16:47 +0000 Subject: [PATCH] Tweaks to make unit tests fail less badly on mingw on trunk. svn:r814 --- evutil.c | 2 +- test/regress.c | 9 ++++++++- test/regress_http.c | 20 +++++++++++++++----- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/evutil.c b/evutil.c index 35ec495e..666b6618 100644 --- a/evutil.c +++ b/evutil.c @@ -232,7 +232,7 @@ evutil_snprintf(char *buf, size_t buflen, const char *format, ...) int evutil_vsnprintf(char *buf, size_t buflen, const char *format, va_list ap) { -#ifdef WIN32 +#ifdef _MSC_VER int r = _vsnprintf(buf, buflen, format, ap); buf[buflen-1] = '\0'; if (r >= 0) diff --git a/test/regress.c b/test/regress.c index 8b30727c..08cea7db 100644 --- a/test/regress.c +++ b/test/regress.c @@ -2105,6 +2105,7 @@ test_methods(void) struct event_config *cfg; struct event_base *base; const char *backend; + int n_methods = 0; fprintf(stderr, "Testing supported methods: "); @@ -2117,6 +2118,12 @@ test_methods(void) while (*methods != NULL) { fprintf(stderr, "%s ", *methods); ++methods; + ++n_methods; + } + + if (n_methods == 1) { + /* only one method supported; can't continue. */ + goto done; } cfg = event_config_new(); @@ -2137,7 +2144,7 @@ test_methods(void) event_base_free(base); event_config_free(cfg); - +done: fprintf(stderr, "OK\n"); } diff --git a/test/regress_http.c b/test/regress_http.c index 8971eca1..b63761e7 100644 --- a/test/regress_http.c +++ b/test/regress_http.c @@ -153,8 +153,15 @@ http_connect(const char *address, u_short port) evutil_make_socket_nonblocking(fd); if (connect(fd, sa, slen) == -1) { +#ifdef WIN32 + int tmp_err = WSAGetLastError(); + if (tmp_err != WSAEINPROGRESS && tmp_err != WSAEINVAL && + tmp_err != WSAEWOULDBLOCK) + event_err(1, "connect failed"); +#else if (errno != EINPROGRESS) event_err(1, "connect failed"); +#endif } #ifndef WIN32 @@ -1451,6 +1458,9 @@ http_incomplete_errorcb(struct bufferevent *bev, short what, void *arg) static void http_incomplete_writecb(struct bufferevent *bev, void *arg) { +#ifndef SHUT_WR +#define SHUT_WR 1 +#endif if (arg != NULL) { int fd = *(int *)arg; /* terminate the write side to simulate EOF */ @@ -1497,7 +1507,7 @@ http_incomplete_test(int use_timeout) event_dispatch(); gettimeofday(&tv_end, NULL); - timersub(&tv_end, &tv_start, &tv_end); + evutil_timersub(&tv_end, &tv_start, &tv_end); if (use_timeout) { bufferevent_free(bev); @@ -1694,7 +1704,7 @@ http_chunked_test(void) event_dispatch(); gettimeofday(&tv_end, NULL); - timersub(&tv_end, &tv_start, &tv_end); + evutil_timersub(&tv_end, &tv_start, &tv_end); if (tv_end.tv_sec >= 1) { fprintf(stdout, "FAILED (time)\n"); @@ -1815,7 +1825,7 @@ http_connection_retry(void) gettimeofday(&tv_start, NULL); event_dispatch(); gettimeofday(&tv_end, NULL); - timersub(&tv_end, &tv_start, &tv_end); + evutil_timersub(&tv_end, &tv_start, &tv_end); if (tv_end.tv_sec >= 1) { fprintf(stdout, "FAILED (time)\n"); exit(1); @@ -1852,7 +1862,7 @@ http_connection_retry(void) gettimeofday(&tv_start, NULL); event_dispatch(); gettimeofday(&tv_end, NULL); - timersub(&tv_end, &tv_start, &tv_end); + evutil_timersub(&tv_end, &tv_start, &tv_end); if (tv_end.tv_sec <= 1 || tv_end.tv_sec >= 6) { fprintf(stdout, "FAILED (time)\n"); exit(1); @@ -1898,7 +1908,7 @@ http_connection_retry(void) event_dispatch(); gettimeofday(&tv_end, NULL); - timersub(&tv_end, &tv_start, &tv_end); + evutil_timersub(&tv_end, &tv_start, &tv_end); if (tv_end.tv_sec <= 1 || tv_end.tv_sec >= 6) { fprintf(stdout, "FAILED (time)\n"); exit(1); -- 2.40.0