gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [libmicrohttpd] branch master updated (29e20dfb -> 3544e5c1


From: gnunet
Subject: [GNUnet-SVN] [libmicrohttpd] branch master updated (29e20dfb -> 3544e5c1)
Date: Sun, 26 May 2019 23:46:44 +0200

This is an automated email from the git hooks/post-receive script.

karlson2k pushed a change to branch master
in repository libmicrohttpd.

    from 29e20dfb Fixed cast of incompatible function pointer, Default logger 
must return 'void', not 'int'
     new 55e624e7 test_concurrent_stop: heavily rewritten, added watchdog, 
avoided exhausting of ports, fixed resource leakage.
     new 49edf6b9 perf_get_concurrent: fixed exhausting of local ports on 
multi-core machines
     new dc4af6f6 perf_get_concurrent11: added new test, fixed "11" mode 
detection
     new f1bf7918 curl tests: fixed detection of "11" marker on w32
     new 710d79a2 test_https_get_select: fixed usage of uninitialized variable
     new 38940278 tests: properly setup CURL options
     new eb622eb2 tests: fixed compiler warnings on W32
     new 632b8532 test_get: implemented more detailed reports
     new 5afa9fbb daemon: flush stderr after each write for debug builds
     new 1d7cb009 ChangeLog updated
     new 3544e5c1 test_shutdown_*: fixed for W32

The 11 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 ChangeLog                                          |   5 +
 src/microhttpd/Makefile.am                         |   2 +-
 src/microhttpd/daemon.c                            |   3 +
 src/testcurl/Makefile.am                           |  54 +++---
 src/testcurl/https/test_empty_response.c           |   8 +-
 src/testcurl/https/test_https_get_select.c         |   9 +-
 src/testcurl/https/test_https_session_info.c       |  10 +-
 src/testcurl/https/test_https_sni.c                |  10 +-
 src/testcurl/https/tls_test_common.c               |  16 +-
 .../test_helpers.h => testcurl/mhd_has_in_name.h}  |  30 +---
 src/testcurl/perf_get.c                            |  22 +--
 src/testcurl/perf_get_concurrent.c                 |  43 +++--
 src/testcurl/test_callback.c                       |   4 +-
 src/testcurl/test_concurrent_stop.c                | 149 ++++++++++------
 src/testcurl/test_delete.c                         |  22 +--
 src/testcurl/test_digestauth.c                     |   4 +-
 src/testcurl/test_digestauth_sha256.c              |   4 +-
 src/testcurl/test_digestauth_with_arguments.c      |   4 +-
 src/testcurl/test_get.c                            | 190 ++++++++++++++++-----
 src/testcurl/test_get_chunked.c                    |  16 +-
 src/testcurl/test_get_response_cleanup.c           |   7 +-
 src/testcurl/test_get_sendfile.c                   |  26 +--
 src/testcurl/test_iplimit.c                        |  14 +-
 src/testcurl/test_large_put.c                      |  16 +-
 src/testcurl/test_long_header.c                    |  14 +-
 src/testcurl/test_parse_cookies.c                  |  10 +-
 src/testcurl/test_post.c                           |  27 +--
 src/testcurl/test_post_loop.c                      |  24 +--
 src/testcurl/test_postform.c                       |  23 +--
 src/testcurl/test_process_arguments.c              |  10 +-
 src/testcurl/test_process_headers.c                |  22 +--
 src/testcurl/test_put.c                            |  26 +--
 src/testcurl/test_put_chunked.c                    |  16 +-
 src/testcurl/test_quiesce.c                        |   4 +-
 src/testcurl/test_timeout.c                        |  14 +-
 src/testcurl/test_urlparse.c                       |  10 +-
 src/testzzuf/test_get.c                            |  12 +-
 src/testzzuf/test_get_chunked.c                    |  12 +-
 src/testzzuf/test_long_header.c                    |   8 +-
 src/testzzuf/test_post.c                           |  12 +-
 src/testzzuf/test_post_form.c                      |  12 +-
 src/testzzuf/test_put.c                            |  12 +-
 src/testzzuf/test_put_chunked.c                    |  12 +-
 src/testzzuf/test_put_large.c                      |  12 +-
 44 files changed, 577 insertions(+), 383 deletions(-)
 copy src/{microhttpd/test_helpers.h => testcurl/mhd_has_in_name.h} (71%)

diff --git a/ChangeLog b/ChangeLog
index add27bfe..da71a51a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun May 26 23:05:42 MSK 2019
+       Better detection of sockaddr member in configure, fixed build on *BSD,
+       Fixed compiler warnings,
+       Updated and fixed libcurl tests. -EG
+
 Tue May 21 22:12:43 MSK 2019
        Fixed doxygen comments,
        Avoid dropping 'const' qualifier in macros,
diff --git a/src/microhttpd/Makefile.am b/src/microhttpd/Makefile.am
index 2b0f3455..3fb65fe1 100644
--- a/src/microhttpd/Makefile.am
+++ b/src/microhttpd/Makefile.am
@@ -194,7 +194,7 @@ TESTS = $(check_PROGRAMS)
 # on Cygwin as this ability is deliberately ignored on Cygwin
 # to improve compatibility with core OS.
 if !CYGWIN_TARGET
-if USE_POSIX_THREADS
+if HAVE_POSIX_THREADS
 if HAVE_LISTEN_SHUTDOWN
 check_PROGRAMS += \
   test_shutdown_select \
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
index 249e4f6f..fdca4de2 100644
--- a/src/microhttpd/daemon.c
+++ b/src/microhttpd/daemon.c
@@ -228,6 +228,9 @@ MHD_default_logger_ (void *cls,
                      va_list ap)
 {
   vfprintf ((FILE*)cls, fm, ap);
+#ifdef _DEBUG
+  fflush ((FILE*)cls);
+#endif /* _DEBUG */
 }
 
 
diff --git a/src/testcurl/Makefile.am b/src/testcurl/Makefile.am
index fde060c5..7177b290 100644
--- a/src/testcurl/Makefile.am
+++ b/src/testcurl/Makefile.am
@@ -29,6 +29,7 @@ THREAD_ONLY_TESTS = \
 
 if HAVE_POSIX_THREADS
 THREAD_ONLY_TESTS += \
+  perf_get_concurrent11 \
   test_quiesce \
   test_concurrent_stop \
   perf_get_concurrent
@@ -137,20 +138,29 @@ test_callback_LDADD = \
 
 perf_get_SOURCES = \
   perf_get.c \
-  gauger.h
+  gauger.h mhd_has_in_name.h
 perf_get_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 perf_get_concurrent_SOURCES = \
   perf_get_concurrent.c \
-  gauger.h
+  gauger.h mhd_has_in_name.h
 perf_get_concurrent_CFLAGS = \
   $(PTHREAD_CFLAGS) $(AM_CFLAGS)
 perf_get_concurrent_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   $(PTHREAD_LIBS) @LIBCURL@
 
+perf_get_concurrent11_SOURCES = \
+  perf_get_concurrent.c \
+  gauger.h mhd_has_in_name.h
+perf_get_concurrent11_CFLAGS = \
+  $(PTHREAD_CFLAGS) $(AM_CFLAGS)
+perf_get_concurrent11_LDADD = \
+  $(top_builddir)/src/microhttpd/libmicrohttpd.la \
+  $(PTHREAD_LIBS) @LIBCURL@
+
 test_digestauth_SOURCES = \
   test_digestauth.c
 test_digestauth_LDADD = \
@@ -170,19 +180,19 @@ test_digestauth_with_arguments_LDADD = \
   @LIBGCRYPT_LIBS@ @LIBCURL@
 
 test_get_sendfile_SOURCES = \
-  test_get_sendfile.c
+  test_get_sendfile.c mhd_has_in_name.h
 test_get_sendfile_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_urlparse_SOURCES = \
-  test_urlparse.c
+  test_urlparse.c mhd_has_in_name.h
 test_urlparse_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_get_response_cleanup_SOURCES = \
-  test_get_response_cleanup.c
+  test_get_response_cleanup.c mhd_has_in_name.h
 test_get_response_cleanup_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la
 
@@ -193,49 +203,49 @@ test_get_chunked_LDADD = \
   @LIBCURL@
 
 test_post_SOURCES = \
-  test_post.c
+  test_post.c mhd_has_in_name.h
 test_post_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_process_headers_SOURCES = \
-  test_process_headers.c
+  test_process_headers.c mhd_has_in_name.h
 test_process_headers_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_parse_cookies_SOURCES = \
-  test_parse_cookies.c
+  test_parse_cookies.c mhd_has_in_name.h
 test_parse_cookies_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_process_arguments_SOURCES = \
-  test_process_arguments.c
+  test_process_arguments.c mhd_has_in_name.h
 test_process_arguments_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_postform_SOURCES = \
-  test_postform.c
+  test_postform.c mhd_has_in_name.h
 test_postform_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBGCRYPT_LIBS@ @LIBCURL@
 
 test_post_loop_SOURCES = \
-  test_post_loop.c
+  test_post_loop.c mhd_has_in_name.h
 test_post_loop_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_delete_SOURCES = \
-  test_delete.c
+  test_delete.c mhd_has_in_name.h
 test_delete_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_put_SOURCES = \
-  test_put.c
+  test_put.c mhd_has_in_name.h
 test_put_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
@@ -253,31 +263,31 @@ test_get11_LDADD = \
   @LIBCURL@
 
 test_get_sendfile11_SOURCES = \
-  test_get_sendfile.c
+  test_get_sendfile.c mhd_has_in_name.h
 test_get_sendfile11_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_post11_SOURCES = \
-  test_post.c
+  test_post.c mhd_has_in_name.h
 test_post11_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_postform11_SOURCES = \
-  test_postform.c
+  test_postform.c mhd_has_in_name.h
 test_postform11_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBGCRYPT_LIBS@ @LIBCURL@
 
 test_post_loop11_SOURCES = \
-  test_post_loop.c
+  test_post_loop.c mhd_has_in_name.h
 test_post_loop11_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_put11_SOURCES = \
-  test_put.c
+  test_put.c mhd_has_in_name.h
 test_put11_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
@@ -301,19 +311,19 @@ test_large_put_inc11_LDADD = \
   @LIBCURL@
 
 test_long_header_SOURCES = \
-  test_long_header.c
+  test_long_header.c mhd_has_in_name.h
 test_long_header_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_long_header11_SOURCES = \
-  test_long_header.c
+  test_long_header.c mhd_has_in_name.h
 test_long_header11_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
 
 test_iplimit11_SOURCES = \
-  test_iplimit.c
+  test_iplimit.c mhd_has_in_name.h
 test_iplimit11_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
@@ -325,7 +335,7 @@ test_termination_LDADD = \
   @LIBCURL@
 
 test_timeout_SOURCES = \
-  test_timeout.c
+  test_timeout.c mhd_has_in_name.h
 test_timeout_LDADD = \
   $(top_builddir)/src/microhttpd/libmicrohttpd.la \
   @LIBCURL@
diff --git a/src/testcurl/https/test_empty_response.c 
b/src/testcurl/https/test_empty_response.c
index 27cb1e31..f53a70ec 100644
--- a/src/testcurl/https/test_empty_response.c
+++ b/src/testcurl/https/test_empty_response.c
@@ -118,9 +118,9 @@ testInternalSelectGet ()
   /* TLS options */
   curl_easy_setopt (c, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
   curl_easy_setopt (c, CURLOPT_SSL_CIPHER_LIST, aes256_sha);
-  curl_easy_setopt (c, CURLOPT_SSL_VERIFYPEER, 0);
-  curl_easy_setopt (c, CURLOPT_SSL_VERIFYHOST, 0);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_SSL_VERIFYPEER, 0L);
+  curl_easy_setopt (c, CURLOPT_SSL_VERIFYHOST, 0L);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   else
@@ -130,7 +130,7 @@ testInternalSelectGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
diff --git a/src/testcurl/https/test_https_get_select.c 
b/src/testcurl/https/test_https_get_select.c
index 64be861a..94b4a051 100644
--- a/src/testcurl/https/test_https_get_select.c
+++ b/src/testcurl/https/test_https_get_select.c
@@ -134,9 +134,9 @@ testExternalGet (int flags)
   /* TLS options */
   curl_easy_setopt (c, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
   curl_easy_setopt (c, CURLOPT_SSL_CIPHER_LIST, aes256_sha);
-  curl_easy_setopt (c, CURLOPT_SSL_VERIFYPEER, 0);
-  curl_easy_setopt (c, CURLOPT_SSL_VERIFYHOST, 0);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_SSL_VERIFYPEER, 0L);
+  curl_easy_setopt (c, CURLOPT_SSL_VERIFYHOST, 0L);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   else
@@ -146,7 +146,7 @@ testExternalGet (int flags)
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
@@ -250,6 +250,7 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   (void)argc;   /* Unused. Silent compiler warning. */
 
+  oneone = 0;
   if (!testsuite_curl_global_init ())
     return 99;
   if (NULL == curl_version_info (CURLVERSION_NOW)->ssl_version)
diff --git a/src/testcurl/https/test_https_session_info.c 
b/src/testcurl/https/test_https_session_info.c
index 3507749f..45f13981 100644
--- a/src/testcurl/https/test_https_session_info.c
+++ b/src/testcurl/https/test_https_session_info.c
@@ -151,7 +151,7 @@ test_query_session ()
                      port);
   c = curl_easy_init ();
 #if DEBUG_HTTPS_TEST
-  curl_easy_setopt (c, CURLOPT_VERBOSE, 1);
+  curl_easy_setopt (c, CURLOPT_VERBOSE, 1L);
 #endif
   curl_easy_setopt (c, CURLOPT_URL, url);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -163,14 +163,14 @@ test_query_session ()
   curl_easy_setopt (c, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_1);
   curl_easy_setopt (c, CURLOPT_SSL_CIPHER_LIST, aes256_sha);
   /* currently skip any peer authentication */
-  curl_easy_setopt (c, CURLOPT_SSL_VERIFYPEER, 0);
-  curl_easy_setopt (c, CURLOPT_SSL_VERIFYHOST, 0);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_SSL_VERIFYPEER, 0L);
+  curl_easy_setopt (c, CURLOPT_SSL_VERIFYHOST, 0L);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
 
   /* NOTE: use of CONNECTTIMEOUT without also
    * setting NOSIGNAL results in really weird
    * crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr, "curl_easy_perform failed: `%s'\n",
diff --git a/src/testcurl/https/test_https_sni.c 
b/src/testcurl/https/test_https_sni.c
index 6963d62c..8af1472b 100644
--- a/src/testcurl/https/test_https_sni.c
+++ b/src/testcurl/https/test_https_sni.c
@@ -201,7 +201,7 @@ do_get (const char *url, int port)
 
   c = curl_easy_init ();
 #if DEBUG_HTTPS_TEST
-  curl_easy_setopt (c, CURLOPT_VERBOSE, 1);
+  curl_easy_setopt (c, CURLOPT_VERBOSE, 1L);
 #endif
   curl_easy_setopt (c, CURLOPT_URL, url);
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
@@ -213,19 +213,19 @@ do_get (const char *url, int port)
 
   /* perform peer authentication */
   /* TODO merge into send_curl_req */
-  curl_easy_setopt (c, CURLOPT_SSL_VERIFYPEER, 0);
-  curl_easy_setopt (c, CURLOPT_SSL_VERIFYHOST, 2);
+  curl_easy_setopt (c, CURLOPT_SSL_VERIFYPEER, 0L);
+  curl_easy_setopt (c, CURLOPT_SSL_VERIFYHOST, 2L);
   sprintf(buf, "host1:%d:127.0.0.1", port);
   dns_info = curl_slist_append (NULL, buf);
   sprintf(buf, "host2:%d:127.0.0.1", port);
   dns_info = curl_slist_append (dns_info, buf);
   curl_easy_setopt (c, CURLOPT_RESOLVE, dns_info);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
 
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr, "curl_easy_perform failed: `%s'\n",
diff --git a/src/testcurl/https/tls_test_common.c 
b/src/testcurl/https/tls_test_common.c
index 3641f098..367bed00 100644
--- a/src/testcurl/https/tls_test_common.c
+++ b/src/testcurl/https/tls_test_common.c
@@ -89,7 +89,7 @@ test_daemon_get (void *cls,
 
   c = curl_easy_init ();
 #if DEBUG_HTTPS_TEST
-  curl_easy_setopt (c, CURLOPT_VERBOSE, 1);
+  curl_easy_setopt (c, CURLOPT_VERBOSE, 1L);
 #endif
   curl_easy_setopt (c, CURLOPT_URL, url);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
@@ -107,13 +107,13 @@ test_daemon_get (void *cls,
   curl_easy_setopt (c, CURLOPT_SSL_VERIFYPEER, ver_peer);
   if (ver_peer)
     curl_easy_setopt (c, CURLOPT_CAINFO, ca_cert_file_name);
-  curl_easy_setopt (c, CURLOPT_SSL_VERIFYHOST, 0);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_SSL_VERIFYHOST, 0L);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
 
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr, "curl_easy_perform failed: `%s'\n",
@@ -238,15 +238,15 @@ send_curl_req (char *url, struct CBC * cbc, const char 
*cipher_suite,
   curl_easy_setopt (c, CURLOPT_SSL_CIPHER_LIST, cipher_suite);
 
   /* currently skip any peer authentication */
-  curl_easy_setopt (c, CURLOPT_SSL_VERIFYPEER, 0);
-  curl_easy_setopt (c, CURLOPT_SSL_VERIFYHOST, 0);
+  curl_easy_setopt (c, CURLOPT_SSL_VERIFYPEER, 0L);
+  curl_easy_setopt (c, CURLOPT_SSL_VERIFYHOST, 0L);
 
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
 
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr, "curl_easy_perform failed: `%s'\n",
diff --git a/src/microhttpd/test_helpers.h b/src/testcurl/mhd_has_in_name.h
similarity index 71%
copy from src/microhttpd/test_helpers.h
copy to src/testcurl/mhd_has_in_name.h
index 4f015ef2..50f32cca 100644
--- a/src/microhttpd/test_helpers.h
+++ b/src/testcurl/mhd_has_in_name.h
@@ -1,6 +1,6 @@
 /*
   This file is part of libmicrohttpd
-  Copyright (C) 2016 Karlson2k (Evgeny Grin)
+  Copyright (C) 2016-2019 Karlson2k (Evgeny Grin)
 
   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
@@ -18,7 +18,7 @@
 */
 
 /**
- * @file microhttpd/test_helpers.h
+ * @file testcurl/mhd_has_in_name.h
  * @brief Static functions and macros helpers for testsuite.
  * @author Karlson2k (Evgeny Grin)
  */
@@ -63,29 +63,3 @@ has_in_name(const char *prog_name, const char *marker)
     return 0;
   return strstr(prog_name + name_pos, marker) != (char*)0;
 }
-
-/**
- * Check whether one of strings in array is equal to @a param.
- * String @a argv[0] is ignored.
- * @param argc number of strings in @a argv, as passed to main function
- * @param argv array of strings, as passed to main function
- * @param param parameter to look for.
- * @return zero if @a argv is NULL, @a param is NULL or empty string,
- *         @a argc is less then 2 or @a param is not found in @a argv,
- *         non-zero if one of strings in @a argv is equal to @a param.
- */
-static int
-has_param(int argc, char * const argv[], const char * param)
-{
-  int i;
-  if (!argv || !param || !param[0])
-    return 0;
-
-  for(i = 1; i < argc; i++)
-    {
-      if(argv[i] && strcmp(argv[i], param) == 0)
-        return !0;
-    }
-
-  return 0;
-}
diff --git a/src/testcurl/perf_get.c b/src/testcurl/perf_get.c
index b5d754a8..a0af70cd 100644
--- a/src/testcurl/perf_get.c
+++ b/src/testcurl/perf_get.c
@@ -44,6 +44,7 @@
 #include <string.h>
 #include <time.h>
 #include "gauger.h"
+#include "mhd_has_in_name.h"
 
 #ifndef WINDOWS
 #include <unistd.h>
@@ -219,7 +220,7 @@ testInternalGet (int port, int poll_flag)
       curl_easy_setopt (c, CURLOPT_URL, url);
       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
       curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
       if (oneone)
@@ -229,7 +230,7 @@ testInternalGet (int port, int poll_flag)
       /* NOTE: use of CONNECTTIMEOUT without also
         setting NOSIGNAL results in really weird
         crashes on my system!*/
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       if (CURLE_OK != (errornum = curl_easy_perform (c)))
        {
          fprintf (stderr,
@@ -293,7 +294,7 @@ testMultithreadedGet (int port, int poll_flag)
       curl_easy_setopt (c, CURLOPT_URL, url);
       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
       if (oneone)
        curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -303,7 +304,7 @@ testMultithreadedGet (int port, int poll_flag)
       /* NOTE: use of CONNECTTIMEOUT without also
         setting NOSIGNAL results in really weird
         crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       if (CURLE_OK != (errornum = curl_easy_perform (c)))
        {
          fprintf (stderr,
@@ -368,7 +369,7 @@ testMultithreadedPoolGet (int port, int poll_flag)
       curl_easy_setopt (c, CURLOPT_URL, url);
       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
       if (oneone)
        curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -378,7 +379,7 @@ testMultithreadedPoolGet (int port, int poll_flag)
       /* NOTE: use of CONNECTTIMEOUT without also
         setting NOSIGNAL results in really weird
         crashes on my system!*/
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       if (CURLE_OK != (errornum = curl_easy_perform (c)))
        {
          fprintf (stderr,
@@ -464,7 +465,7 @@ testExternalGet (int port)
       curl_easy_setopt (c, CURLOPT_URL, url);
       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       if (oneone)
        curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
       else
@@ -474,7 +475,7 @@ testExternalGet (int port)
       /* NOTE: use of CONNECTTIMEOUT without also
         setting NOSIGNAL results in really weird
         crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       mret = curl_multi_add_handle (multi, c);
       if (mret != CURLM_OK)
        {
@@ -579,8 +580,9 @@ main (int argc, char *const *argv)
   int port = 1130;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (oneone)
     port += 15;
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
diff --git a/src/testcurl/perf_get_concurrent.c 
b/src/testcurl/perf_get_concurrent.c
index e1c2e997..336a1d1e 100644
--- a/src/testcurl/perf_get_concurrent.c
+++ b/src/testcurl/perf_get_concurrent.c
@@ -41,6 +41,7 @@
 #include <time.h>
 #include <pthread.h>
 #include "gauger.h"
+#include "mhd_has_in_name.h"
 
 #if defined(CPU_COUNT) && (CPU_COUNT+0) < 2
 #undef CPU_COUNT
@@ -52,8 +53,13 @@
 /**
  * How many rounds of operations do we do for each
  * test (total number of requests will be ROUNDS * PAR).
+ * Ensure that free ports are not exhausted during test.
  */
+#if CPU_COUNT > 8
+#define ROUNDS (1 + (30000 / 12) / CPU_COUNT)
+#else
 #define ROUNDS 500
+#endif
 
 /**
  * How many requests do we do in parallel?
@@ -177,23 +183,23 @@ thread_gets (void *param)
   unsigned int i;
   char * const url = (char*) param;
 
+  c = curl_easy_init ();
+  curl_easy_setopt (c, CURLOPT_URL, url);
+  curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
+  curl_easy_setopt (c, CURLOPT_WRITEDATA, NULL);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
+  curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
+  if (oneone)
+    curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
+  else
+    curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
+  curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
+  /* NOTE: use of CONNECTTIMEOUT without also
+     setting NOSIGNAL results in really weird
+     crashes on my system! */
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   for (i=0;i<ROUNDS;i++)
     {
-      c = curl_easy_init ();
-      curl_easy_setopt (c, CURLOPT_URL, url);
-      curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
-      curl_easy_setopt (c, CURLOPT_WRITEDATA, NULL);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
-      curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
-      if (oneone)
-        curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
-      else
-        curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
-      curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
-      /* NOTE: use of CONNECTTIMEOUT without also
-         setting NOSIGNAL results in really weird
-         crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
       if (CURLE_OK != (errornum = curl_easy_perform (c)))
         {
           fprintf (stderr,
@@ -202,8 +208,8 @@ thread_gets (void *param)
           curl_easy_cleanup (c);
           return "curl error";
         }
-      curl_easy_cleanup (c);
     }
+  curl_easy_cleanup (c);
 
   return NULL;
 }
@@ -462,8 +468,9 @@ main (int argc, char *const *argv)
   int port = 1100;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (oneone)
     port += 15;
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
diff --git a/src/testcurl/test_callback.c b/src/testcurl/test_callback.c
index 34bf8679..5b1062fe 100644
--- a/src/testcurl/test_callback.c
+++ b/src/testcurl/test_callback.c
@@ -158,11 +158,11 @@ main(int argc, char **argv)
   curl_easy_setopt (c, CURLOPT_URL, "http://127.0.0.1/";);
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &discard_buffer);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   multi = curl_multi_init ();
   if (multi == NULL)
     {
diff --git a/src/testcurl/test_concurrent_stop.c 
b/src/testcurl/test_concurrent_stop.c
index 263aaf0a..71202add 100644
--- a/src/testcurl/test_concurrent_stop.c
+++ b/src/testcurl/test_concurrent_stop.c
@@ -33,11 +33,12 @@
 #include <pthread.h>
 #include "gauger.h"
 
-#ifdef CPU_COUNT
+#if defined(CPU_COUNT) && (CPU_COUNT+0) < 2
 #undef CPU_COUNT
 #endif
-#define CPU_COUNT 40
-
+#if !defined(CPU_COUNT)
+#define CPU_COUNT 2
+#endif
 
 /**
  * How many rounds of operations do we do for each
@@ -48,7 +49,7 @@
 /**
  * How many requests do we do in parallel?
  */
-#define PAR CPU_COUNT
+#define PAR (CPU_COUNT * 4)
 
 /**
  * Do we use HTTP 1.1?
@@ -60,6 +61,63 @@ static int oneone;
  */
 static struct MHD_Response *response;
 
+/**
+ * Continue generating new requests?
+ */
+static volatile int continue_requesting;
+
+/**
+ * Continue waiting in watchdog thread?
+ */
+static volatile int watchdog_continue;
+
+static const char *watchdog_obj;
+
+static void *
+thread_watchdog (void *param)
+{
+  int seconds_passed;
+  const int timeout_val = (int) (intptr_t) param;
+
+  seconds_passed = 0;
+  while (watchdog_continue) /* Poor threads sync, but works for testing. */
+    {
+      if (0 == sleep (1)) /* Poor accuracy, but enough for testing. */
+        seconds_passed++;
+      if (timeout_val < seconds_passed)
+        {
+          fprintf (stderr, "%s timeout expired.\n", watchdog_obj ? 
watchdog_obj : "Watchdog");
+          fflush (stderr);
+          _exit(16);
+        }
+    }
+  return NULL;
+}
+
+pthread_t watchdog_tid;
+
+static void
+start_watchdog(int timeout, const char *obj_name)
+{
+  watchdog_continue = 1;
+  watchdog_obj = obj_name;
+  if (0 != pthread_create(&watchdog_tid, NULL, &thread_watchdog, 
(void*)(intptr_t)timeout))
+    {
+      fprintf(stderr, "Failed to start watchdog.\n");
+      _exit (99);
+    }
+}
+
+static void
+stop_watchdog(void)
+{
+  watchdog_continue = 0;
+  if (0 != pthread_join (watchdog_tid, NULL))
+    {
+      fprintf(stderr, "Failed to stop watchdog.\n");
+      _exit (99);
+    }
+}
 
 static size_t
 copyBuffer (void *ptr,
@@ -103,61 +161,44 @@ ahc_echo (void *cls,
   return ret;
 }
 
-static void
-clean_curl(void * param)
-{
-  if (param)
-    {
-      CURL * const c = *((CURL **)param);
-      if (c)
-        curl_easy_cleanup (c);
-    }
-}
-
 static void *
 thread_gets (void *param)
 {
   CURL *c;
   CURLcode errornum;
-  unsigned int i;
   char * const url = (char*) param;
-  int pth_olst;
-  if (pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &pth_olst) ||
-      pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &pth_olst) )
+
+  c = NULL;
+  c = curl_easy_init ();
+  if (NULL == c)
     {
-      fprintf(stderr,
-              "pthread_setcancelstate()/pthread_setcanceltype() failed.\n");
+      fprintf(stderr, "curl_easy_init failed.\n");
       _exit(99);
     }
-
-  for (i=0;i<ROUNDS;i++)
+  curl_easy_setopt (c, CURLOPT_URL, url);
+  curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
+  curl_easy_setopt (c, CURLOPT_WRITEDATA, NULL);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
+  curl_easy_setopt (c, CURLOPT_TIMEOUT, 2L);
+  if (oneone)
+    curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
+  else
+    curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
+  curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 2L);
+  /* NOTE: use of CONNECTTIMEOUT without also
+     setting NOSIGNAL results in really weird
+     crashes on my system! */
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
+  while (continue_requesting)
     {
-      pthread_testcancel();
-      c = NULL;
-      pthread_cleanup_push(clean_curl, (void*)&c);
-      c = curl_easy_init ();
-      pthread_testcancel();
-      curl_easy_setopt (c, CURLOPT_URL, url);
-      curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
-      curl_easy_setopt (c, CURLOPT_WRITEDATA, NULL);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
-      curl_easy_setopt (c, CURLOPT_TIMEOUT, 5L);
-      if (oneone)
-        curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
-      else
-        curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
-      curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 5L);
-      /* NOTE: use of CONNECTTIMEOUT without also
-         setting NOSIGNAL results in really weird
-         crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
-      pthread_testcancel();
       errornum = curl_easy_perform (c);
-      pthread_cleanup_pop (1);
       if (CURLE_OK != errornum)
-        return NULL;
+        {
+          curl_easy_cleanup (c);
+          return NULL;
+        }
     }
-
+  curl_easy_cleanup (c);
   return NULL;
 }
 
@@ -179,9 +220,9 @@ do_gets (void * param)
       if (0 != pthread_create(&par[j], NULL, &thread_gets, (void*)url))
         {
           fprintf(stderr, "pthread_create failed.\n");
+          continue_requesting = 0;
           for (j--; j >= 0; j--)
             {
-              pthread_cancel(par[j]);
               pthread_join(par[j], NULL);
             }
           _exit(99);
@@ -190,7 +231,6 @@ do_gets (void * param)
   (void)sleep (1);
   for (j=0;j<PAR;j++)
     {
-      pthread_cancel(par[j]);
       pthread_join(par[j], NULL);
     }
   return NULL;
@@ -200,6 +240,7 @@ do_gets (void * param)
 pthread_t start_gets(int port)
 {
   pthread_t tid;
+  continue_requesting = 1;
   if (0 != pthread_create(&tid, NULL, &do_gets, (void*)(intptr_t)port))
     {
       fprintf(stderr, "pthread_create failed.\n");
@@ -233,7 +274,10 @@ testMultithreadedGet (int port,
     }
   p = start_gets (port);
   (void)sleep (1);
+  start_watchdog(10, "daemon_stop() in testMultithreadedGet");
   MHD_stop_daemon (d);
+  stop_watchdog();
+  continue_requesting = 0;
   pthread_join (p, NULL);
   return 0;
 }
@@ -264,7 +308,10 @@ testMultithreadedPoolGet (int port,
     }
   p = start_gets (port);
   (void)sleep (1);
+  start_watchdog(10, "daemon_stop() in testMultithreadedPoolGet");
   MHD_stop_daemon (d);
+  stop_watchdog();
+  continue_requesting = 0;
   pthread_join (p, NULL);
   return 0;
 }
@@ -276,14 +323,16 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   int port;
   (void)argc;   /* Unused. Silent compiler warning. */
+  (void)argv;   /* Unused. Silent compiler warning. */
 
   if (MHD_NO != MHD_is_feature_supported (MHD_FEATURE_AUTODETECT_BIND_PORT))
     port = 0;
   else
     port = 1142;
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  /* Do reuse connection, otherwise all available local ports may exhausted. */
+  oneone = 1;
+
   if (0 != port && oneone)
     port += 5;
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
diff --git a/src/testcurl/test_delete.c b/src/testcurl/test_delete.c
index 35f7f6a2..35e9dc62 100644
--- a/src/testcurl/test_delete.c
+++ b/src/testcurl/test_delete.c
@@ -31,6 +31,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
+#include "mhd_has_in_name.h"
 
 #ifndef WINDOWS
 #include <unistd.h>
@@ -161,7 +162,7 @@ testInternalDelete ()
   curl_easy_setopt (c, CURLOPT_CUSTOMREQUEST, "DELETE");
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -171,7 +172,7 @@ testInternalDelete ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -234,7 +235,7 @@ testMultithreadedDelete ()
   curl_easy_setopt (c, CURLOPT_CUSTOMREQUEST, "DELETE");
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -244,7 +245,7 @@ testMultithreadedDelete ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -308,7 +309,7 @@ testMultithreadedPoolDelete ()
   curl_easy_setopt (c, CURLOPT_CUSTOMREQUEST, "DELETE");
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -318,7 +319,7 @@ testMultithreadedPoolDelete ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -397,7 +398,7 @@ testExternalDelete ()
   curl_easy_setopt (c, CURLOPT_CUSTOMREQUEST, "DELETE");
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -407,7 +408,7 @@ testExternalDelete ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
@@ -508,8 +509,9 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
     return 2;
   if (MHD_YES == MHD_is_feature_supported(MHD_FEATURE_THREADS))
diff --git a/src/testcurl/test_digestauth.c b/src/testcurl/test_digestauth.c
index b8b77674..b0a39bf7 100644
--- a/src/testcurl/test_digestauth.c
+++ b/src/testcurl/test_digestauth.c
@@ -255,14 +255,14 @@ testDigestAuth ()
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
   curl_easy_setopt (c, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
   curl_easy_setopt (c, CURLOPT_USERPWD, "testuser:testpass");
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system!*/
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
diff --git a/src/testcurl/test_digestauth_sha256.c 
b/src/testcurl/test_digestauth_sha256.c
index aaa57bbe..c3430283 100644
--- a/src/testcurl/test_digestauth_sha256.c
+++ b/src/testcurl/test_digestauth_sha256.c
@@ -259,14 +259,14 @@ testDigestAuth ()
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
   curl_easy_setopt (c, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
   curl_easy_setopt (c, CURLOPT_USERPWD, "testuser:testpass");
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system!*/
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
diff --git a/src/testcurl/test_digestauth_with_arguments.c 
b/src/testcurl/test_digestauth_with_arguments.c
index be59fab7..3f2852c0 100644
--- a/src/testcurl/test_digestauth_with_arguments.c
+++ b/src/testcurl/test_digestauth_with_arguments.c
@@ -224,14 +224,14 @@ testDigestAuth ()
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
   curl_easy_setopt (c, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
   curl_easy_setopt (c, CURLOPT_USERPWD, "testuser:testpass");
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system!*/
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
diff --git a/src/testcurl/test_get.c b/src/testcurl/test_get.c
index 841c2ffd..567b0787 100644
--- a/src/testcurl/test_get.c
+++ b/src/testcurl/test_get.c
@@ -30,6 +30,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
+#include "test_helpers.h"
 #include "mhd_sockets.h" /* only macros used */
 
 
@@ -91,7 +92,7 @@ log_cb (void *cls,
       fprintf (stderr,
                "Wrong URI: `%s'\n",
                uri);
-      abort ();
+      _exit (22);
     }
   return NULL;
 }
@@ -129,7 +130,11 @@ ahc_echo (void *cls,
   if ( (NULL == v) ||
        (0 != strcmp ("&",
                      v)) )
-    abort ();
+    {
+      fprintf (stderr, "Found while looking for 'a=&': 'a=%s'\n",
+               NULL == v ? "NULL" : v);
+      _exit (17);
+    }
   v = NULL;
   if (MHD_YES != MHD_lookup_connection_value_n (connection,
                                                 MHD_GET_ARGUMENT_KIND,
@@ -137,11 +142,18 @@ ahc_echo (void *cls,
                                                 1,
                                                 &v,
                                                 NULL))
-    abort ();
+    {
+      fprintf (stderr, "Not found 'b' GET argument.\n");
+      _exit (18);
+    }
   if ( (NULL == v) ||
        (0 != strcmp ("c",
                      v)) )
-    abort ();
+    {
+      fprintf (stderr, "Found while looking for 'b=c': 'b=%s'\n",
+               NULL == v ? "NULL" : v);
+      _exit (19);
+    }
   response = MHD_create_response_from_buffer (strlen (url),
                                              (void *) url,
                                              MHD_RESPMEM_MUST_COPY);
@@ -150,7 +162,10 @@ ahc_echo (void *cls,
                             response);
   MHD_destroy_response (response);
   if (ret == MHD_NO)
-    abort ();
+    {
+      fprintf (stderr, "Failed to queue response.\n");
+      _exit (19);
+    }
   return ret;
 }
 
@@ -195,7 +210,7 @@ testInternalGet (int poll_flag)
   curl_easy_setopt (c, CURLOPT_PORT, (long)global_port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   if (oneone)
@@ -205,7 +220,7 @@ testInternalGet (int poll_flag)
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system!*/
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -265,7 +280,7 @@ testMultithreadedGet (int poll_flag)
   curl_easy_setopt (c, CURLOPT_PORT, (long)global_port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -275,7 +290,7 @@ testMultithreadedGet (int poll_flag)
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -336,7 +351,7 @@ testMultithreadedPoolGet (int poll_flag)
   curl_easy_setopt (c, CURLOPT_PORT, (long)global_port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -346,7 +361,7 @@ testMultithreadedPoolGet (int poll_flag)
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system!*/
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -417,7 +432,7 @@ testExternalGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)global_port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   else
@@ -427,7 +442,7 @@ testExternalGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
@@ -473,8 +488,10 @@ testExternalGet ()
         }
       tv.tv_sec = 0;
       tv.tv_usec = 1000;
+#ifdef MHD_POSIX_SOCKETS
       if (maxsock > maxposixs)
         maxposixs = maxsock;
+#endif /* MHD_POSIX_SOCKETS */
       if (-1 == select (maxposixs + 1, &rs, &ws, &es, &tv))
         {
 #ifdef MHD_POSIX_SOCKETS
@@ -482,7 +499,7 @@ testExternalGet ()
             abort ();
 #else
           if (WSAEINVAL != WSAGetLastError() || 0 != rs.fd_count || 0 != 
ws.fd_count || 0 != es.fd_count)
-            abort ();
+            _exit (99);
           Sleep (1000);
 #endif
         }
@@ -581,7 +598,7 @@ testUnknownPortGet (int poll_flag)
   curl_easy_setopt (c, CURLOPT_URL, buf);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   if (oneone)
@@ -591,7 +608,7 @@ testUnknownPortGet (int poll_flag)
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -704,7 +721,10 @@ ahc_empty (void *cls,
   ret = MHD_queue_response (connection, MHD_HTTP_OK, response);
   MHD_destroy_response (response);
   if (ret == MHD_NO)
-    abort ();
+    {
+      fprintf (stderr, "Failed to queue response.\n");
+      _exit (20);
+    }
   return ret;
 }
 
@@ -767,8 +787,8 @@ testEmptyGet (int poll_flag)
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
   curl_easy_setopt (c, CURLOPT_DEBUGFUNCTION, &curlExcessFound);
   curl_easy_setopt (c, CURLOPT_DEBUGDATA, &excess_found);
-  curl_easy_setopt (c, CURLOPT_VERBOSE, 1);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_VERBOSE, 1L);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   if (oneone)
@@ -778,7 +798,7 @@ testEmptyGet (int poll_flag)
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system!*/
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -802,43 +822,133 @@ int
 main (int argc, char *const *argv)
 {
   unsigned int errorCount = 0;
-  (void) argc;   /* Unused. Silence compiler warning. */
+  unsigned int test_result = 0;
+  int verbose = 0;
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
+  verbose = has_param (argc, argv, "-v") || has_param (argc, argv, 
"--verbose");
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
     return 2;
   global_port = 0;
-  errorCount += testExternalGet ();
+  test_result = testExternalGet ();
+  if (test_result)
+    fprintf (stderr, "FAILED: testExternalGet () - %u.\n", test_result);
+  else if (verbose)
+    printf ("PASSED: testExternalGet ().\n");
+  errorCount += test_result;
   if (MHD_YES == MHD_is_feature_supported(MHD_FEATURE_THREADS))
     {
-      errorCount += testInternalGet (0);
-      errorCount += testMultithreadedGet (0);
-      errorCount += testMultithreadedPoolGet (0);
-      errorCount += testUnknownPortGet (0);
-      errorCount += testStopRace (0);
-      errorCount += testEmptyGet (0);
+      test_result += testInternalGet (0);
+      if (test_result)
+        fprintf (stderr, "FAILED: testInternalGet (0) - %u.\n", test_result);
+      else if (verbose)
+        printf ("PASSED: testInternalGet (0).\n");
+      errorCount += test_result;
+      test_result += testMultithreadedGet (0);
+      if (test_result)
+        fprintf (stderr, "FAILED: testMultithreadedGet (0) - %u.\n", 
test_result);
+      else if (verbose)
+        printf ("PASSED: testMultithreadedGet (0).\n");
+      errorCount += test_result;
+      test_result += testMultithreadedPoolGet (0);
+      if (test_result)
+        fprintf (stderr, "FAILED: testMultithreadedPoolGet (0) - %u.\n", 
test_result);
+      else if (verbose)
+        printf ("PASSED: testMultithreadedPoolGet (0).\n");
+      errorCount += test_result;
+      test_result += testUnknownPortGet (0);
+      if (test_result)
+        fprintf (stderr, "FAILED: testUnknownPortGet (0) - %u.\n", 
test_result);
+      else if (verbose)
+        printf ("PASSED: testUnknownPortGet (0).\n");
+      errorCount += test_result;
+      test_result += testStopRace (0);
+      if (test_result)
+        fprintf (stderr, "FAILED: testStopRace (0) - %u.\n", test_result);
+      else if (verbose)
+        printf ("PASSED: testStopRace (0).\n");
+      errorCount += test_result;
+      test_result += testEmptyGet (0);
+      if (test_result)
+        fprintf (stderr, "FAILED: testEmptyGet (0) - %u.\n", test_result);
+      else if (verbose)
+        printf ("PASSED: testEmptyGet (0).\n");
+      errorCount += test_result;
       if (MHD_YES == MHD_is_feature_supported(MHD_FEATURE_POLL))
        {
-         errorCount += testInternalGet(MHD_USE_POLL);
-         errorCount += testMultithreadedGet(MHD_USE_POLL);
-         errorCount += testMultithreadedPoolGet(MHD_USE_POLL);
-         errorCount += testUnknownPortGet(MHD_USE_POLL);
-         errorCount += testStopRace(MHD_USE_POLL);
-         errorCount += testEmptyGet(MHD_USE_POLL);
+          test_result += testInternalGet(MHD_USE_POLL);
+          if (test_result)
+            fprintf (stderr, "FAILED: testInternalGet (MHD_USE_POLL) - %u.\n", 
test_result);
+          else if (verbose)
+            printf ("PASSED: testInternalGet (MHD_USE_POLL).\n");
+          errorCount += test_result;
+          test_result += testMultithreadedGet(MHD_USE_POLL);
+          if (test_result)
+            fprintf (stderr, "FAILED: testMultithreadedGet (MHD_USE_POLL) - 
%u.\n", test_result);
+          else if (verbose)
+            printf ("PASSED: testMultithreadedGet (MHD_USE_POLL).\n");
+          errorCount += test_result;
+          test_result += testMultithreadedPoolGet(MHD_USE_POLL);
+          if (test_result)
+            fprintf (stderr, "FAILED: testMultithreadedPoolGet (MHD_USE_POLL) 
- %u.\n", test_result);
+          else if (verbose)
+            printf ("PASSED: testMultithreadedPoolGet (MHD_USE_POLL).\n");
+          errorCount += test_result;
+          test_result += testUnknownPortGet(MHD_USE_POLL);
+          if (test_result)
+            fprintf (stderr, "FAILED: testUnknownPortGet (MHD_USE_POLL) - 
%u.\n", test_result);
+          else if (verbose)
+            printf ("PASSED: testUnknownPortGet (MHD_USE_POLL).\n");
+          errorCount += test_result;
+          test_result += testStopRace(MHD_USE_POLL);
+          if (test_result)
+            fprintf (stderr, "FAILED: testStopRace (MHD_USE_POLL) - %u.\n", 
test_result);
+          else if (verbose)
+            printf ("PASSED: testStopRace (MHD_USE_POLL).\n");
+          errorCount += test_result;
+          test_result += testEmptyGet(MHD_USE_POLL);
+          if (test_result)
+            fprintf (stderr, "FAILED: testEmptyGet (MHD_USE_POLL) - %u.\n", 
test_result);
+          else if (verbose)
+            printf ("PASSED: testEmptyGet (MHD_USE_POLL).\n");
+          errorCount += test_result;
        }
       if (MHD_YES == MHD_is_feature_supported(MHD_FEATURE_EPOLL))
        {
-         errorCount += testInternalGet(MHD_USE_EPOLL);
-         errorCount += testMultithreadedPoolGet(MHD_USE_EPOLL);
-         errorCount += testUnknownPortGet(MHD_USE_EPOLL);
-         errorCount += testEmptyGet(MHD_USE_EPOLL);
+          test_result += testInternalGet(MHD_USE_EPOLL);
+          if (test_result)
+            fprintf (stderr, "FAILED: testInternalGet (MHD_USE_EPOLL) - 
%u.\n", test_result);
+          else if (verbose)
+            printf ("PASSED: testInternalGet (MHD_USE_EPOLL).\n");
+          errorCount += test_result;
+          test_result += testMultithreadedPoolGet(MHD_USE_EPOLL);
+          if (test_result)
+            fprintf (stderr, "FAILED: testMultithreadedPoolGet (MHD_USE_EPOLL) 
- %u.\n", test_result);
+          else if (verbose)
+            printf ("PASSED: testMultithreadedPoolGet (MHD_USE_EPOLL).\n");
+          errorCount += test_result;
+          test_result += testUnknownPortGet(MHD_USE_EPOLL);
+          if (test_result)
+            fprintf (stderr, "FAILED: testUnknownPortGet (MHD_USE_EPOLL) - 
%u.\n", test_result);
+          else if (verbose)
+            printf ("PASSED: testUnknownPortGet (MHD_USE_EPOLL).\n");
+          errorCount += test_result;
+          test_result += testEmptyGet(MHD_USE_EPOLL);
+          if (test_result)
+            fprintf (stderr, "FAILED: testEmptyGet (MHD_USE_EPOLL) - %u.\n", 
test_result);
+          else if (verbose)
+            printf ("PASSED: testEmptyGet (MHD_USE_EPOLL).\n");
+          errorCount += test_result;
        }
     }
   if (0 != errorCount)
     fprintf (stderr,
             "Error (code: %u)\n",
             errorCount);
+  else if (verbose)
+    printf ("All tests passed.\n");
   curl_global_cleanup ();
   return errorCount != 0;       /* 0 == pass */
 }
diff --git a/src/testcurl/test_get_chunked.c b/src/testcurl/test_get_chunked.c
index 66a9fbde..c7be5c83 100644
--- a/src/testcurl/test_get_chunked.c
+++ b/src/testcurl/test_get_chunked.c
@@ -213,14 +213,14 @@ testInternalGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -270,14 +270,14 @@ testMultithreadedGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -328,14 +328,14 @@ testMultithreadedPoolGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -400,14 +400,14 @@ testExternalGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 5L);
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
diff --git a/src/testcurl/test_get_response_cleanup.c 
b/src/testcurl/test_get_response_cleanup.c
index 457c646f..66653a93 100644
--- a/src/testcurl/test_get_response_cleanup.c
+++ b/src/testcurl/test_get_response_cleanup.c
@@ -51,6 +51,8 @@
 #include <windows.h>
 #endif
 
+#include "mhd_has_in_name.h"
+
 #if defined(CPU_COUNT) && (CPU_COUNT+0) < 2
 #undef CPU_COUNT
 #endif
@@ -415,8 +417,9 @@ main (int argc, char *const *argv)
     }
 #endif /* _WIN32 */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (MHD_YES == MHD_is_feature_supported(MHD_FEATURE_THREADS))
     {
       errorCount += testInternalGet ();
diff --git a/src/testcurl/test_get_sendfile.c b/src/testcurl/test_get_sendfile.c
index 3d820fc8..3e68647b 100644
--- a/src/testcurl/test_get_sendfile.c
+++ b/src/testcurl/test_get_sendfile.c
@@ -33,6 +33,7 @@
 #include <sys/types.h>
 #include <fcntl.h>
 #include "mhd_sockets.h"
+#include "mhd_has_in_name.h"
 
 #ifndef WINDOWS
 #include <sys/socket.h>
@@ -154,7 +155,7 @@ testInternalGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   if (oneone)
@@ -164,7 +165,7 @@ testInternalGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system!*/
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -223,7 +224,7 @@ testMultithreadedGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -233,7 +234,7 @@ testMultithreadedGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -293,7 +294,7 @@ testMultithreadedPoolGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -303,7 +304,7 @@ testMultithreadedPoolGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system!*/
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -377,7 +378,7 @@ testExternalGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   else
@@ -387,7 +388,7 @@ testExternalGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
@@ -538,7 +539,7 @@ testUnknownPortGet ()
   curl_easy_setopt (c, CURLOPT_URL, buf);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   if (oneone)
@@ -548,7 +549,7 @@ testUnknownPortGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -576,8 +577,9 @@ main (int argc, char *const *argv)
   FILE *f;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
 
   if ( (NULL == (tmp = getenv ("TMPDIR"))) &&
        (NULL == (tmp = getenv ("TMP"))) &&
diff --git a/src/testcurl/test_iplimit.c b/src/testcurl/test_iplimit.c
index 32f7e36a..35ae6645 100644
--- a/src/testcurl/test_iplimit.c
+++ b/src/testcurl/test_iplimit.c
@@ -32,6 +32,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
+#include "mhd_has_in_name.h"
 
 #ifndef WINDOWS
 #include <unistd.h>
@@ -166,7 +167,7 @@ testMultithreadedGet ()
           curl_easy_setopt (c, CURLOPT_PORT, (long)port);
           curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
           curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc[i]);
-          curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+          curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
           curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
           curl_easy_setopt (c, CURLOPT_FORBID_REUSE, 0L);
           curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -174,7 +175,7 @@ testMultithreadedGet ()
           /* NOTE: use of CONNECTTIMEOUT without also
            *   setting NOSIGNAL results in really weird
            *   crashes on my system! */
-          curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+          curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
           errornum = curl_easy_perform (c);
           if (CURLE_OK == errornum)
@@ -273,7 +274,7 @@ testMultithreadedPoolGet ()
           curl_easy_setopt (c, CURLOPT_PORT, (long)port);
           curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
           curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc[i]);
-          curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+          curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
           curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
           curl_easy_setopt (c, CURLOPT_FORBID_REUSE, 0L);
           curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -281,7 +282,7 @@ testMultithreadedPoolGet ()
           /* NOTE: use of CONNECTTIMEOUT without also
            *   setting NOSIGNAL results in really weird
            *   crashes on my system! */
-          curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+          curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
           errornum = curl_easy_perform (c);
           if ( ( (CURLE_OK != errornum) && (i <  2) ) ||
@@ -339,8 +340,9 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
     return 2;
   errorCount |= testMultithreadedGet ();
diff --git a/src/testcurl/test_large_put.c b/src/testcurl/test_large_put.c
index f4c767cc..352a1732 100644
--- a/src/testcurl/test_large_put.c
+++ b/src/testcurl/test_large_put.c
@@ -223,7 +223,7 @@ testPutInternalThread (unsigned int add_flag)
   curl_easy_setopt (c, CURLOPT_READDATA, &pos);
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE, (long) PUT_SIZE);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -233,7 +233,7 @@ testPutInternalThread (unsigned int add_flag)
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -303,7 +303,7 @@ testPutThreadPerConn (unsigned int add_flag)
   curl_easy_setopt (c, CURLOPT_READDATA, &pos);
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE, (long) PUT_SIZE);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -313,7 +313,7 @@ testPutThreadPerConn (unsigned int add_flag)
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -386,7 +386,7 @@ testPutThreadPool (unsigned int add_flag)
   curl_easy_setopt (c, CURLOPT_READDATA, &pos);
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE, (long) PUT_SIZE);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -396,7 +396,7 @@ testPutThreadPool (unsigned int add_flag)
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -483,7 +483,7 @@ testPutExternal (void)
   curl_easy_setopt (c, CURLOPT_READDATA, &pos);
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE, (long) PUT_SIZE);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -493,7 +493,7 @@ testPutExternal (void)
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
diff --git a/src/testcurl/test_long_header.c b/src/testcurl/test_long_header.c
index 49b183dc..80842622 100644
--- a/src/testcurl/test_long_header.c
+++ b/src/testcurl/test_long_header.c
@@ -31,6 +31,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
+#include "mhd_has_in_name.h"
 
 #ifndef WINDOWS
 #include <unistd.h>
@@ -146,7 +147,7 @@ testLongUrlGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   if (oneone)
@@ -156,7 +157,7 @@ testLongUrlGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK == curl_easy_perform (c))
     {
       curl_easy_cleanup (c);
@@ -240,7 +241,7 @@ testLongHeaderGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   if (oneone)
@@ -250,7 +251,7 @@ testLongHeaderGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK == curl_easy_perform (c))
     {
       curl_easy_cleanup (c);
@@ -282,8 +283,9 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
     return 2;
   errorCount += testLongUrlGet ();
diff --git a/src/testcurl/test_parse_cookies.c 
b/src/testcurl/test_parse_cookies.c
index 3e2c181e..c09846d8 100644
--- a/src/testcurl/test_parse_cookies.c
+++ b/src/testcurl/test_parse_cookies.c
@@ -32,6 +32,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
+#include "mhd_has_in_name.h"
 
 #ifndef WINDOWS
 #include <unistd.h>
@@ -159,7 +160,7 @@ testExternalGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   /* note that the string below intentionally uses the
      various ways cookies can be specified to exercise the
      parser! Do not change! */
@@ -174,7 +175,7 @@ testExternalGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
@@ -274,8 +275,9 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
     return 2;
   errorCount += testExternalGet ();
diff --git a/src/testcurl/test_post.c b/src/testcurl/test_post.c
index cfef2c46..03452a2f 100644
--- a/src/testcurl/test_post.c
+++ b/src/testcurl/test_post.c
@@ -43,6 +43,8 @@
 #include <windows.h>
 #endif
 
+#include "mhd_has_in_name.h"
+
 #if defined(CPU_COUNT) && (CPU_COUNT+0) < 2
 #undef CPU_COUNT
 #endif
@@ -206,7 +208,7 @@ testInternalPost ()
   curl_easy_setopt (c, CURLOPT_POSTFIELDS, POST_DATA);
   curl_easy_setopt (c, CURLOPT_POSTFIELDSIZE, strlen (POST_DATA));
   curl_easy_setopt (c, CURLOPT_POST, 1L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -216,7 +218,7 @@ testInternalPost ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -279,7 +281,7 @@ testMultithreadedPost ()
   curl_easy_setopt (c, CURLOPT_POSTFIELDS, POST_DATA);
   curl_easy_setopt (c, CURLOPT_POSTFIELDSIZE, strlen (POST_DATA));
   curl_easy_setopt (c, CURLOPT_POST, 1L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -289,7 +291,7 @@ testMultithreadedPost ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -353,7 +355,7 @@ testMultithreadedPoolPost ()
   curl_easy_setopt (c, CURLOPT_POSTFIELDS, POST_DATA);
   curl_easy_setopt (c, CURLOPT_POSTFIELDSIZE, strlen (POST_DATA));
   curl_easy_setopt (c, CURLOPT_POST, 1L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -363,7 +365,7 @@ testMultithreadedPoolPost ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -441,7 +443,7 @@ testExternalPost ()
   curl_easy_setopt (c, CURLOPT_POSTFIELDS, POST_DATA);
   curl_easy_setopt (c, CURLOPT_POSTFIELDSIZE, strlen (POST_DATA));
   curl_easy_setopt (c, CURLOPT_POST, 1L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -451,7 +453,7 @@ testExternalPost ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
@@ -685,7 +687,7 @@ testMultithreadedPostCancelPart(int flags)
   curl_easy_setopt (c, CURLOPT_POSTFIELDS, NULL);
   curl_easy_setopt (c, CURLOPT_POSTFIELDSIZE, crbc.size);
   curl_easy_setopt (c, CURLOPT_POST, 1L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -695,7 +697,7 @@ testMultithreadedPostCancelPart(int flags)
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
   if (flags & FLAG_CHUNKED)
       headers = curl_slist_append(headers, "Transfer-Encoding: chunked");
@@ -770,8 +772,9 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
     return 2;
   if (MHD_YES == MHD_is_feature_supported(MHD_FEATURE_THREADS))
diff --git a/src/testcurl/test_post_loop.c b/src/testcurl/test_post_loop.c
index aae297d4..6da54a95 100644
--- a/src/testcurl/test_post_loop.c
+++ b/src/testcurl/test_post_loop.c
@@ -31,7 +31,8 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
-#include <gauger.h>
+#include "gauger.h"
+#include "mhd_has_in_name.h"
 
 #ifndef WINDOWS
 #include <unistd.h>
@@ -161,7 +162,7 @@ testInternalPost ()
       curl_easy_setopt (c, CURLOPT_POSTFIELDS, POST_DATA);
       curl_easy_setopt (c, CURLOPT_POSTFIELDSIZE, strlen (POST_DATA));
       curl_easy_setopt (c, CURLOPT_POST, 1L);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -171,7 +172,7 @@ testInternalPost ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       if (CURLE_OK != (errornum = curl_easy_perform (c)))
         {
           fprintf (stderr,
@@ -249,7 +250,7 @@ testMultithreadedPost ()
       curl_easy_setopt (c, CURLOPT_POSTFIELDS, POST_DATA);
       curl_easy_setopt (c, CURLOPT_POSTFIELDSIZE, strlen (POST_DATA));
       curl_easy_setopt (c, CURLOPT_POST, 1L);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -259,7 +260,7 @@ testMultithreadedPost ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       if (CURLE_OK != (errornum = curl_easy_perform (c)))
         {
           fprintf (stderr,
@@ -336,7 +337,7 @@ testMultithreadedPoolPost ()
       curl_easy_setopt (c, CURLOPT_POSTFIELDS, POST_DATA);
       curl_easy_setopt (c, CURLOPT_POSTFIELDSIZE, strlen (POST_DATA));
       curl_easy_setopt (c, CURLOPT_POST, 1L);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -346,7 +347,7 @@ testMultithreadedPoolPost ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       if (CURLE_OK != (errornum = curl_easy_perform (c)))
         {
           fprintf (stderr,
@@ -446,7 +447,7 @@ testExternalPost ()
       curl_easy_setopt (c, CURLOPT_POSTFIELDS, POST_DATA);
       curl_easy_setopt (c, CURLOPT_POSTFIELDSIZE, strlen (POST_DATA));
       curl_easy_setopt (c, CURLOPT_POST, 1L);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -456,7 +457,7 @@ testExternalPost ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       mret = curl_multi_add_handle (multi, c);
       if (mret != CURLM_OK)
         {
@@ -579,8 +580,9 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
     return 2;
   if (MHD_YES == MHD_is_feature_supported(MHD_FEATURE_THREADS))
diff --git a/src/testcurl/test_postform.c b/src/testcurl/test_postform.c
index 746d6baa..723bde0f 100644
--- a/src/testcurl/test_postform.c
+++ b/src/testcurl/test_postform.c
@@ -41,6 +41,8 @@
 #include <unistd.h>
 #endif
 
+#include "mhd_has_in_name.h"
+
 #if defined(CPU_COUNT) && (CPU_COUNT+0) < 2
 #undef CPU_COUNT
 #endif
@@ -220,7 +222,7 @@ testInternalPost ()
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
   pd = make_form ();
   curl_easy_setopt (c, CURLOPT_HTTPPOST, pd);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -230,7 +232,7 @@ testInternalPost ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -295,7 +297,7 @@ testMultithreadedPost ()
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
   pd = make_form ();
   curl_easy_setopt (c, CURLOPT_HTTPPOST, pd);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -305,7 +307,7 @@ testMultithreadedPost ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -371,7 +373,7 @@ testMultithreadedPoolPost ()
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
   pd = make_form ();
   curl_easy_setopt (c, CURLOPT_HTTPPOST, pd);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -381,7 +383,7 @@ testMultithreadedPoolPost ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -461,7 +463,7 @@ testExternalPost ()
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
   pd = make_form ();
   curl_easy_setopt (c, CURLOPT_HTTPPOST, pd);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -471,7 +473,7 @@ testExternalPost ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
@@ -585,8 +587,9 @@ main (int argc, char *const *argv)
 #endif
 #endif
 #endif /* MHD_HTTPS_REQUIRE_GRYPT */
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
     return 2;
   if (MHD_YES == MHD_is_feature_supported(MHD_FEATURE_THREADS))
diff --git a/src/testcurl/test_process_arguments.c 
b/src/testcurl/test_process_arguments.c
index 4f29574d..0817836d 100644
--- a/src/testcurl/test_process_arguments.c
+++ b/src/testcurl/test_process_arguments.c
@@ -31,6 +31,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
+#include "mhd_has_in_name.h"
 
 #ifndef WINDOWS
 #include <unistd.h>
@@ -164,7 +165,7 @@ testExternalGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   else
@@ -174,7 +175,7 @@ testExternalGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
@@ -274,8 +275,9 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
     return 2;
   errorCount += testExternalGet ();
diff --git a/src/testcurl/test_process_headers.c 
b/src/testcurl/test_process_headers.c
index f9c7cd03..a1237c78 100644
--- a/src/testcurl/test_process_headers.c
+++ b/src/testcurl/test_process_headers.c
@@ -32,6 +32,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
+#include "mhd_has_in_name.h"
 
 #ifndef WINDOWS
 #include <unistd.h>
@@ -187,7 +188,7 @@ testInternalGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   if (oneone)
@@ -197,7 +198,7 @@ testInternalGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -255,7 +256,7 @@ testMultithreadedGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -265,7 +266,7 @@ testMultithreadedGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -324,7 +325,7 @@ testMultithreadedPoolGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -334,7 +335,7 @@ testMultithreadedPoolGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -407,7 +408,7 @@ testExternalGet ()
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   else
@@ -417,7 +418,7 @@ testExternalGet ()
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
@@ -518,8 +519,9 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (MHD_YES == MHD_is_feature_supported(MHD_FEATURE_THREADS))
     {
       errorCount += testInternalGet ();
diff --git a/src/testcurl/test_put.c b/src/testcurl/test_put.c
index 11e99cc3..fd56e2b2 100644
--- a/src/testcurl/test_put.c
+++ b/src/testcurl/test_put.c
@@ -31,6 +31,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
+#include "mhd_has_in_name.h"
 
 #ifndef WINDOWS
 #include <unistd.h>
@@ -164,7 +165,7 @@ testInternalPut ()
   curl_easy_setopt (c, CURLOPT_READDATA, &pos);
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -174,7 +175,7 @@ testInternalPut ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -239,7 +240,7 @@ testMultithreadedPut ()
   curl_easy_setopt (c, CURLOPT_READDATA, &pos);
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -249,7 +250,7 @@ testMultithreadedPut ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -316,7 +317,7 @@ testMultithreadedPoolPut ()
   curl_easy_setopt (c, CURLOPT_READDATA, &pos);
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -326,7 +327,7 @@ testMultithreadedPoolPut ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -404,7 +405,7 @@ curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_READDATA, &pos);
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -414,7 +415,7 @@ curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
@@ -458,8 +459,10 @@ curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
           MHD_stop_daemon (d);
           return 4096;
         }
+#ifdef MHD_POSIX_SOCKETS
       if (maxsock > maxposixs)
         maxposixs = maxsock;
+#endif /* MHD_POSIX_SOCKETS */
       tv.tv_sec = 0;
       tv.tv_usec = 1000;
       if (-1 == select (maxposixs + 1, &rs, &ws, &es, &tv))
@@ -469,7 +472,7 @@ curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
             abort ();
 #else
           if (WSAEINVAL != WSAGetLastError() || 0 != rs.fd_count || 0 != 
ws.fd_count || 0 != es.fd_count)
-            abort ();
+            _exit (99);
           Sleep (1000);
 #endif
         }
@@ -517,8 +520,9 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
     return 2;
   if (MHD_YES == MHD_is_feature_supported(MHD_FEATURE_THREADS))
diff --git a/src/testcurl/test_put_chunked.c b/src/testcurl/test_put_chunked.c
index 017bff99..9f875a40 100644
--- a/src/testcurl/test_put_chunked.c
+++ b/src/testcurl/test_put_chunked.c
@@ -175,14 +175,14 @@ testInternalPut ()
   /*
      curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
    */
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -246,14 +246,14 @@ testMultithreadedPut ()
   /*
      curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
    */
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -319,14 +319,14 @@ testMultithreadedPoolPut ()
   /*
      curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
    */
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -407,14 +407,14 @@ testExternalPut ()
   /*
      curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
    */
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
   multi = curl_multi_init ();
diff --git a/src/testcurl/test_quiesce.c b/src/testcurl/test_quiesce.c
index 5795898a..69b07618 100644
--- a/src/testcurl/test_quiesce.c
+++ b/src/testcurl/test_quiesce.c
@@ -185,14 +185,14 @@ setupCURL (void *cbc)
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, 150L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system!*/
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
   return c;
 }
diff --git a/src/testcurl/test_timeout.c b/src/testcurl/test_timeout.c
index 7621cfd1..d87bb368 100644
--- a/src/testcurl/test_timeout.c
+++ b/src/testcurl/test_timeout.c
@@ -31,6 +31,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
+#include "mhd_has_in_name.h"
 
 #ifndef WINDOWS
 #include <unistd.h>
@@ -210,7 +211,7 @@ testWithoutTimeout ()
   curl_easy_setopt (c, CURLOPT_READDATA, &pos);
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -220,7 +221,7 @@ testWithoutTimeout ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       curl_easy_cleanup (c);
@@ -284,7 +285,7 @@ testWithTimeout ()
   curl_easy_setopt (c, CURLOPT_READDATA, &testWithTimeout);
   curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
   curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   if (oneone)
     curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -294,7 +295,7 @@ testWithTimeout ()
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       curl_easy_cleanup (c);
@@ -318,8 +319,9 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
     return 16;
   errorCount += testWithoutTimeout ();
diff --git a/src/testcurl/test_urlparse.c b/src/testcurl/test_urlparse.c
index 8675f19c..d7c133ae 100644
--- a/src/testcurl/test_urlparse.c
+++ b/src/testcurl/test_urlparse.c
@@ -31,6 +31,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
+#include "mhd_has_in_name.h"
 
 #ifdef _WIN32
 #ifndef WIN32_LEAN_AND_MEAN
@@ -163,7 +164,7 @@ testInternalGet (int poll_flag)
   curl_easy_setopt (c, CURLOPT_PORT, (long)port);
   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
   if (oneone)
@@ -173,7 +174,7 @@ testInternalGet (int poll_flag)
   /* NOTE: use of CONNECTTIMEOUT without also
      setting NOSIGNAL results in really weird
      crashes on my system!*/
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -201,8 +202,9 @@ main (int argc, char *const *argv)
   unsigned int errorCount = 0;
   (void)argc;   /* Unused. Silent compiler warning. */
 
-  oneone = (NULL != strrchr (argv[0], (int) '/')) ?
-    (NULL != strstr (strrchr (argv[0], (int) '/'), "11")) : 0;
+  if (NULL == argv || 0 == argv[0])
+    return 99;
+  oneone = has_in_name (argv[0], "11");
   if (0 != curl_global_init (CURL_GLOBAL_WIN32))
     return 2;
   errorCount += testInternalGet (0);
diff --git a/src/testzzuf/test_get.c b/src/testzzuf/test_get.c
index 223b85e5..08954226 100644
--- a/src/testzzuf/test_get.c
+++ b/src/testzzuf/test_get.c
@@ -117,7 +117,7 @@ testInternalGet ()
       curl_easy_setopt (c, CURLOPT_URL, "http://127.0.0.1:11081/hello_world";);
       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
@@ -127,7 +127,7 @@ testInternalGet ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
     }
@@ -161,7 +161,7 @@ testMultithreadedGet ()
       curl_easy_setopt (c, CURLOPT_URL, "http://127.0.0.1:11081/hello_world";);
       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -171,7 +171,7 @@ testMultithreadedGet ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
     }
@@ -222,7 +222,7 @@ testExternalGet ()
       curl_easy_setopt (c, CURLOPT_URL, "http://127.0.0.1:11081/hello_world";);
       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
       else
@@ -232,7 +232,7 @@ testExternalGet ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       mret = curl_multi_add_handle (multi, c);
       if (mret != CURLM_OK)
         {
diff --git a/src/testzzuf/test_get_chunked.c b/src/testzzuf/test_get_chunked.c
index 44828853..2a16202b 100644
--- a/src/testzzuf/test_get_chunked.c
+++ b/src/testzzuf/test_get_chunked.c
@@ -156,14 +156,14 @@ testInternalGet ()
       curl_easy_setopt (c, CURLOPT_URL, "http://127.0.0.1:11081/hello_world";);
       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT);
       curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
     }
@@ -197,14 +197,14 @@ testMultithreadedGet ()
       curl_easy_setopt (c, CURLOPT_URL, "http://127.0.0.1:11081/hello_world";);
       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
       curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT);
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
     }
@@ -255,14 +255,14 @@ testExternalGet ()
       curl_easy_setopt (c, CURLOPT_URL, "http://127.0.0.1:11081/hello_world";);
       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT);
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       mret = curl_multi_add_handle (multi, c);
       if (mret != CURLM_OK)
         {
diff --git a/src/testzzuf/test_long_header.c b/src/testzzuf/test_long_header.c
index 63555d50..12a396bb 100644
--- a/src/testzzuf/test_long_header.c
+++ b/src/testzzuf/test_long_header.c
@@ -132,7 +132,7 @@ testLongUrlGet ()
       curl_easy_setopt (c, CURLOPT_URL, url);
       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
@@ -142,7 +142,7 @@ testLongUrlGet ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
       free (url);
@@ -195,7 +195,7 @@ testLongHeaderGet ()
       curl_easy_setopt (c, CURLOPT_URL, "http://127.0.0.1:11081/hello_world";);
       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
@@ -205,7 +205,7 @@ testLongHeaderGet ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_slist_free_all (header);
       header = NULL;
diff --git a/src/testzzuf/test_post.c b/src/testzzuf/test_post.c
index 836f3395..03b8e5a8 100644
--- a/src/testzzuf/test_post.c
+++ b/src/testzzuf/test_post.c
@@ -179,7 +179,7 @@ testInternalPost ()
       curl_easy_setopt (c, CURLOPT_POSTFIELDS, POST_DATA);
       curl_easy_setopt (c, CURLOPT_POSTFIELDSIZE, strlen (POST_DATA));
       curl_easy_setopt (c, CURLOPT_POST, 1L);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -189,7 +189,7 @@ testInternalPost ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
     }
@@ -231,7 +231,7 @@ testMultithreadedPost ()
       curl_easy_setopt (c, CURLOPT_POSTFIELDS, POST_DATA);
       curl_easy_setopt (c, CURLOPT_POSTFIELDSIZE, strlen (POST_DATA));
       curl_easy_setopt (c, CURLOPT_POST, 1L);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -241,7 +241,7 @@ testMultithreadedPost ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
     }
@@ -301,7 +301,7 @@ testExternalPost ()
       curl_easy_setopt (c, CURLOPT_POSTFIELDS, POST_DATA);
       curl_easy_setopt (c, CURLOPT_POSTFIELDSIZE, strlen (POST_DATA));
       curl_easy_setopt (c, CURLOPT_POST, 1L);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -311,7 +311,7 @@ testExternalPost ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
       mret = curl_multi_add_handle (multi, c);
diff --git a/src/testzzuf/test_post_form.c b/src/testzzuf/test_post_form.c
index 571c9d99..cbe55b5d 100644
--- a/src/testzzuf/test_post_form.c
+++ b/src/testzzuf/test_post_form.c
@@ -196,7 +196,7 @@ testInternalPost ()
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
       pd = make_form ();
       curl_easy_setopt (c, CURLOPT_HTTPPOST, pd);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -206,7 +206,7 @@ testInternalPost ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
       curl_formfree (pd);
@@ -247,7 +247,7 @@ testMultithreadedPost ()
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
       pd = make_form ();
       curl_easy_setopt (c, CURLOPT_HTTPPOST, pd);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -257,7 +257,7 @@ testMultithreadedPost ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
       curl_formfree (pd);
@@ -315,7 +315,7 @@ testExternalPost ()
       curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
       pd = make_form ();
       curl_easy_setopt (c, CURLOPT_HTTPPOST, pd);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -325,7 +325,7 @@ testExternalPost ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
       mret = curl_multi_add_handle (multi, c);
       if (mret != CURLM_OK)
diff --git a/src/testzzuf/test_put.c b/src/testzzuf/test_put.c
index 63518ba8..5a237ddd 100644
--- a/src/testzzuf/test_put.c
+++ b/src/testzzuf/test_put.c
@@ -146,7 +146,7 @@ testInternalPut ()
       curl_easy_setopt (c, CURLOPT_READDATA, &pos);
       curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
       curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -156,7 +156,7 @@ testInternalPut ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
     }
@@ -197,7 +197,7 @@ testMultithreadedPut ()
       curl_easy_setopt (c, CURLOPT_READDATA, &pos);
       curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
       curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -207,7 +207,7 @@ testMultithreadedPut ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
     }
@@ -266,7 +266,7 @@ testExternalPut ()
       curl_easy_setopt (c, CURLOPT_READDATA, &pos);
       curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
       curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -276,7 +276,7 @@ testExternalPut ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
 
diff --git a/src/testzzuf/test_put_chunked.c b/src/testzzuf/test_put_chunked.c
index 642e968a..d016d84e 100644
--- a/src/testzzuf/test_put_chunked.c
+++ b/src/testzzuf/test_put_chunked.c
@@ -155,14 +155,14 @@ testInternalPut ()
       /*
          curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
        */
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
       curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT);
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
     }
@@ -202,14 +202,14 @@ testMultithreadedPut ()
   /*
      curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
    */
-  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+  curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
   curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
   curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
   curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 15L);
   /* NOTE: use of CONNECTTIMEOUT without also
    *   setting NOSIGNAL results in really weird
    *   crashes on my system! */
-  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+  curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
   if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
       fprintf (stderr,
@@ -281,14 +281,14 @@ testExternalPut ()
       /*
          curl_easy_setopt (c, CURLOPT_INFILESIZE_LARGE, (curl_off_t) 8L);
        */
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
       curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT);
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
       mret = curl_multi_add_handle (multi, c);
diff --git a/src/testzzuf/test_put_large.c b/src/testzzuf/test_put_large.c
index 40861b87..815ce77d 100644
--- a/src/testzzuf/test_put_large.c
+++ b/src/testzzuf/test_put_large.c
@@ -161,7 +161,7 @@ testInternalPut ()
       curl_easy_setopt (c, CURLOPT_READDATA, &pos);
       curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
       curl_easy_setopt (c, CURLOPT_INFILESIZE, (long) PUT_SIZE);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -171,7 +171,7 @@ testInternalPut ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
     }
@@ -213,7 +213,7 @@ testMultithreadedPut ()
       curl_easy_setopt (c, CURLOPT_READDATA, &pos);
       curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
       curl_easy_setopt (c, CURLOPT_INFILESIZE, (long) PUT_SIZE);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -223,7 +223,7 @@ testMultithreadedPut ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
       curl_easy_perform (c);
       curl_easy_cleanup (c);
     }
@@ -284,7 +284,7 @@ testExternalPut ()
       curl_easy_setopt (c, CURLOPT_READDATA, &pos);
       curl_easy_setopt (c, CURLOPT_UPLOAD, 1L);
       curl_easy_setopt (c, CURLOPT_INFILESIZE, (long) PUT_SIZE);
-      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
+      curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
       curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
       if (oneone)
         curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
@@ -294,7 +294,7 @@ testExternalPut ()
       /* NOTE: use of CONNECTTIMEOUT without also
        *   setting NOSIGNAL results in really weird
        *   crashes on my system! */
-      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
+      curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
 
 
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]