gnunet-svn
[Top][All Lists]
Advanced

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

[libmicrohttpd] 01/04: curl tests: updated select() error handling, file


From: gnunet
Subject: [libmicrohttpd] 01/04: curl tests: updated select() error handling, file doxy
Date: Wed, 18 Aug 2021 11:56:19 +0200

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

karlson2k pushed a commit to branch master
in repository libmicrohttpd.

commit 0c3806b05804d668f3a88853f90e930bc180b10e
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
AuthorDate: Wed Aug 18 12:00:29 2021 +0300

    curl tests: updated select() error handling, file doxy
    
    Tests reports now about unexpected errors from select() and
    source code line number to simplify problematic position
    locating.
    Used much smaller timeout on W32 if system is doing some
    sockets data processing in other threads.
---
 src/testcurl/curl_version_check.c             |  2 ++
 src/testcurl/mhd_has_in_name.h                |  2 +-
 src/testcurl/perf_get.c                       | 30 +++++++++++++-------
 src/testcurl/perf_get_concurrent.c            | 37 ++++++++++++++-----------
 src/testcurl/test_add_conn.c                  | 25 +++++++++++------
 src/testcurl/test_callback.c                  | 20 +++++++++++---
 src/testcurl/test_concurrent_stop.c           |  6 ++--
 src/testcurl/test_delete.c                    | 24 +++++++++++-----
 src/testcurl/test_digestauth.c                |  2 ++
 src/testcurl/test_digestauth_sha256.c         |  2 ++
 src/testcurl/test_digestauth_with_arguments.c |  2 ++
 src/testcurl/test_get.c                       | 25 +++++++++++------
 src/testcurl/test_get_chunked.c               | 24 ++++++++++------
 src/testcurl/test_get_close_keep_alive.c      | 40 +++++++++++++++++----------
 src/testcurl/test_get_empty.c                 | 24 +++++++++++-----
 src/testcurl/test_get_iovec.c                 | 22 ++++++++++-----
 src/testcurl/test_get_response_cleanup.c      | 40 +++++++++++++++++++++++++--
 src/testcurl/test_get_sendfile.c              | 24 +++++++++++-----
 src/testcurl/test_get_wait.c                  |  2 +-
 src/testcurl/test_iplimit.c                   |  5 ++--
 src/testcurl/test_large_put.c                 | 24 +++++++++++-----
 src/testcurl/test_long_header.c               |  2 ++
 src/testcurl/test_parse_cookies.c             | 24 +++++++++++-----
 src/testcurl/test_patch.c                     | 24 +++++++++++-----
 src/testcurl/test_post.c                      | 24 +++++++++++-----
 src/testcurl/test_post_loop.c                 | 27 ++++++++++++++----
 src/testcurl/test_postform.c                  | 24 +++++++++++-----
 src/testcurl/test_process_arguments.c         | 24 +++++++++++-----
 src/testcurl/test_process_headers.c           | 24 +++++++++++-----
 src/testcurl/test_put.c                       | 24 +++++++++++-----
 src/testcurl/test_put_chunked.c               | 24 +++++++++++-----
 src/testcurl/test_quiesce.c                   | 30 +++++++++++++-------
 src/testcurl/test_quiesce_stream.c            |  1 +
 src/testcurl/test_termination.c               |  2 ++
 src/testcurl/test_timeout.c                   |  2 ++
 src/testcurl/test_urlparse.c                  |  2 ++
 36 files changed, 456 insertions(+), 184 deletions(-)

diff --git a/src/testcurl/curl_version_check.c 
b/src/testcurl/curl_version_check.c
index e77cf7d6..8678d452 100644
--- a/src/testcurl/curl_version_check.c
+++ b/src/testcurl/curl_version_check.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007 Christian Grothoff
+     Copyright (C) 2016-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file curl_version_check.c
  * @brief  verify required cURL version is available to run tests
  * @author Sagie Amir
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
diff --git a/src/testcurl/mhd_has_in_name.h b/src/testcurl/mhd_has_in_name.h
index aff15e15..570a2332 100644
--- a/src/testcurl/mhd_has_in_name.h
+++ b/src/testcurl/mhd_has_in_name.h
@@ -1,6 +1,6 @@
 /*
   This file is part of libmicrohttpd
-  Copyright (C) 2016-2019 Karlson2k (Evgeny Grin)
+  Copyright (C) 2016-2021 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
diff --git a/src/testcurl/perf_get.c b/src/testcurl/perf_get.c
index 90aa6d25..9a7e3e08 100644
--- a/src/testcurl/perf_get.c
+++ b/src/testcurl/perf_get.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2009, 2011 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -34,6 +35,7 @@
  *        not universally meaningful (i.e. when comparing
  *        multithreaded vs. single-threaded or select/poll).
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -543,17 +545,25 @@ testExternalGet (int port)
       tv.tv_usec = 1000;
       if (-1 == select (maxposixs + 1, &rs, &ws, &es, &tv))
       {
-#ifdef MHD_POSIX_SOCKETS
+  #ifdef MHD_POSIX_SOCKETS
         if (EINTR != errno)
-          abort ();
-#else
-        if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                        ws.
-                                                                        
fd_count)
-            || (0 != es.fd_count) )
-          abort ();
-        Sleep (1000);
-#endif
+        {
+          fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                   (int) errno, __LINE__);
+          fflush (stderr);
+          exit (99);
+        }
+  #else
+        if ((WSAEINVAL != WSAGetLastError ()) ||
+            (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+        {
+          fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                   (int) WSAGetLastError (), __LINE__);
+          fflush (stderr);
+          exit (99);
+        }
+        Sleep (1);
+  #endif
       }
       curl_multi_perform (multi, &running);
       if (0 == running)
diff --git a/src/testcurl/perf_get_concurrent.c 
b/src/testcurl/perf_get_concurrent.c
index 0cfd1366..76bb42f9 100644
--- a/src/testcurl/perf_get_concurrent.c
+++ b/src/testcurl/perf_get_concurrent.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2009, 2011 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -30,6 +31,7 @@
  *        (since MHD is actually better); only the relative
  *        scores between MHD versions are meaningful.
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -203,7 +205,7 @@ thread_gets (void *param)
      setting NOSIGNAL results in really weird
      crashes on my system! */
   curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1L);
-  for (i = 0; i<ROUNDS; i++)
+  for (i = 0; i < ROUNDS; i++)
   {
     if (CURLE_OK != (errornum = curl_easy_perform (c)))
     {
@@ -233,7 +235,7 @@ do_gets (void *param)
             sizeof (url),
             "http://127.0.0.1:%d/hello_world";,
             port);
-  for (j = 0; j<PAR; j++)
+  for (j = 0; j < PAR; j++)
   {
     if (0 != pthread_create (&par[j], NULL, &thread_gets, (void*) url))
     {
@@ -242,7 +244,7 @@ do_gets (void *param)
       return "pthread_create error";
     }
   }
-  for (j = 0; j<PAR; j++)
+  for (j = 0; j < PAR; j++)
   {
     char *ret_val;
     if ((0 != pthread_join (par[j], (void**) &ret_val)) ||
@@ -461,23 +463,26 @@ testExternalGet (int port)
     if (-1 == select (max + 1, &rs, &ws, &es, &tv))
     {
 #ifdef MHD_POSIX_SOCKETS
-      if (EINTR == errno)
-        continue;
-      fprintf (stderr,
-               "select failed: %s\n",
-               strerror (errno));
-#else
-      if ((WSAEINVAL == WSAGetLastError ()) && (0 == rs.fd_count) && (0 ==
-                                                                      ws.
-                                                                      fd_count)
-          && (0 == es.fd_count) )
+      if (EINTR != errno)
       {
-        Sleep (1000);
-        continue;
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
       }
-#endif
       ret |= 1024;
       break;
+#else
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
+#endif
     }
     MHD_run_from_select (d, &rs, &ws, &es);
   }
diff --git a/src/testcurl/test_add_conn.c b/src/testcurl/test_add_conn.c
index d122a50e..04def886 100644
--- a/src/testcurl/test_add_conn.c
+++ b/src/testcurl/test_add_conn.c
@@ -1,7 +1,8 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2009, 2011 Christian Grothoff
-     Copyright (C) 2020 Karlson2k (Evgeny Grin) - large rework, multithreading.
+     Copyright (C) 2014-2020 Evgeny Grin (Karlson2k) - large rework,
+                             multithreading.
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -922,14 +923,22 @@ testExternalGet (void)
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        externalErrorExitDesc ("select() failed");
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        externalErrorExitDesc ("select() failed");
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     if (FD_ISSET (aParam.lstn_sk, &rs))
diff --git a/src/testcurl/test_callback.c b/src/testcurl/test_callback.c
index d2894c06..8290851c 100644
--- a/src/testcurl/test_callback.c
+++ b/src/testcurl/test_callback.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2009, 2011 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @brief Testcase for MHD not calling the callback too often
  * @author Jan Seeger
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 #include "MHD_config.h"
 #include "platform.h"
@@ -217,12 +219,22 @@ main (int argc, char **argv)
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
       if ((WSAEINVAL != WSAGetLastError ()) ||
-          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count))
-        abort ();
-      Sleep (1000);
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     if (NULL != multi)
diff --git a/src/testcurl/test_concurrent_stop.c 
b/src/testcurl/test_concurrent_stop.c
index 7def86a8..6cea8abf 100644
--- a/src/testcurl/test_concurrent_stop.c
+++ b/src/testcurl/test_concurrent_stop.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2009, 2011, 2015, 2016 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file test_concurrent_stop.c
  * @brief test stopping server while concurrent GETs are ongoing
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 #include "MHD_config.h"
 #include "platform.h"
@@ -222,7 +224,7 @@ do_gets (void *param)
             "http://127.0.0.1:%d/hello_world";,
             port);
 
-  for (j = 0; j<PAR; j++)
+  for (j = 0; j < PAR; j++)
   {
     if (0 != pthread_create (&par[j], NULL, &thread_gets, (void*) url))
     {
@@ -236,7 +238,7 @@ do_gets (void *param)
     }
   }
   (void) sleep (1);
-  for (j = 0; j<PAR; j++)
+  for (j = 0; j < PAR; j++)
   {
     pthread_join (par[j], NULL);
   }
diff --git a/src/testcurl/test_delete.c b/src/testcurl/test_delete.c
index bfb0ea47..7ecaa3e9 100644
--- a/src/testcurl/test_delete.c
+++ b/src/testcurl/test_delete.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2016 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file daemontest_delete.c
  * @brief  Testcase for libmicrohttpd DELETE operations
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -471,14 +473,22 @@ testExternalDelete ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        abort ();
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_digestauth.c b/src/testcurl/test_digestauth.c
index 389cfd5a..e93a13bb 100644
--- a/src/testcurl/test_digestauth.c
+++ b/src/testcurl/test_digestauth.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2010 Christian Grothoff
+     Copyright (C) 2016-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file daemontest_digestauth.c
  * @brief  Testcase for libmicrohttpd Digest Auth
  * @author Amr Ali
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
diff --git a/src/testcurl/test_digestauth_sha256.c 
b/src/testcurl/test_digestauth_sha256.c
index 5023bcad..7cb9557e 100644
--- a/src/testcurl/test_digestauth_sha256.c
+++ b/src/testcurl/test_digestauth_sha256.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2010, 2018 Christian Grothoff
+     Copyright (C) 2019-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -23,6 +24,7 @@
  * @brief  Testcase for libmicrohttpd Digest Auth with SHA256
  * @author Amr Ali
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
diff --git a/src/testcurl/test_digestauth_with_arguments.c 
b/src/testcurl/test_digestauth_with_arguments.c
index c6154ffb..2132ca93 100644
--- a/src/testcurl/test_digestauth_with_arguments.c
+++ b/src/testcurl/test_digestauth_with_arguments.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2010, 2012 Christian Grothoff
+     Copyright (C) 2016-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file daemontest_digestauth_with_arguments.c
  * @brief  Testcase for libmicrohttpd Digest Auth with arguments
  * @author Amr Ali
+ * @author Karlson2k (Evgeny Grin)
  */
 #include "MHD_config.h"
 #include "platform.h"
diff --git a/src/testcurl/test_get.c b/src/testcurl/test_get.c
index 971bfc82..68ff6218 100644
--- a/src/testcurl/test_get.c
+++ b/src/testcurl/test_get.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2009, 2011 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -20,8 +21,8 @@
 /**
  * @file test_get.c
  * @brief  Testcase for libmicrohttpd GET operations
- *         TODO: test parsing of query
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 #include "MHD_config.h"
 #include "platform.h"
@@ -508,14 +509,22 @@ testExternalGet ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        _exit (99);
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_get_chunked.c b/src/testcurl/test_get_chunked.c
index b4644e5b..dc07f578 100644
--- a/src/testcurl/test_get_chunked.c
+++ b/src/testcurl/test_get_chunked.c
@@ -1,7 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007 Christian Grothoff
-     Copyright (C) 2015-2021 Karlson2k (Evgeny Grin)
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -675,14 +675,22 @@ testExternalGet ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        abort ();
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_get_close_keep_alive.c 
b/src/testcurl/test_get_close_keep_alive.c
index 1dbf7cc4..faa0f202 100644
--- a/src/testcurl/test_get_close_keep_alive.c
+++ b/src/testcurl/test_get_close_keep_alive.c
@@ -1,6 +1,6 @@
 /*
      This file is part of libmicrohttpd
-     Copyright (C) 2017-2021 Karlson2k (Evgeny Grin)
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
      Copyright (C) 2007, 2009, 2011 Christian Grothoff
 
      libmicrohttpd is free software; you can redistribute it and/or modify
@@ -113,7 +113,7 @@ _externalErrorExit_func (const char *errDesc, const char 
*funcName, int lineNum)
   fprintf (stderr, "WSAGetLastError() value: %d\n", (int) WSAGetLastError ());
 #endif /* MHD_WINSOCK_SOCKETS */
   fflush (stderr);
-  _exit (99);
+  exit (99);
 }
 
 
@@ -137,7 +137,7 @@ _libcurlErrorExit_func (const char *errDesc, const char 
*funcName, int lineNum)
     fprintf (stderr, "Last libcurl error details: %s\n", libcurl_errbuf);
 
   fflush (stderr);
-  _exit (99);
+  exit (99);
 }
 
 
@@ -274,7 +274,7 @@ log_cb (void *cls,
     fprintf (stderr,
              "Wrong URI: `%s', line: %d\n",
              uri, __LINE__);
-    _exit (22);
+    exit (22);
   }
   return NULL;
 }
@@ -314,7 +314,7 @@ ahc_echo (void *cls,
   if (NULL == response)
   {
     fprintf (stderr, "Failed to create response. Line: %d\n", __LINE__);
-    _exit (19);
+    exit (19);
   }
   if (add_mhd_close)
   {
@@ -323,7 +323,7 @@ ahc_echo (void *cls,
                                            HDR_CONN_CLOSE_VALUE))
     {
       fprintf (stderr, "Failed to add header. Line: %d\n", __LINE__);
-      _exit (19);
+      exit (19);
     }
   }
   ret = MHD_queue_response (connection,
@@ -333,7 +333,7 @@ ahc_echo (void *cls,
   if (ret == MHD_NO)
   {
     fprintf (stderr, "Failed to queue response. Line: %d\n", __LINE__);
-    _exit (19);
+    exit (19);
   }
   return ret;
 }
@@ -523,11 +523,11 @@ performQueryExternal (struct MHD_Daemon *d, CURL *c)
     if (MHD_YES != MHD_get_fdset (d, &rs, &ws, &es, &maxMhdSk))
     {
       fprintf (stderr, "MHD_get_fdset() failed. Line: %d\n", __LINE__);
-      _exit (11);
+      exit (11);
       break;
     }
     tv.tv_sec = 0;
-    tv.tv_usec = 10000;
+    tv.tv_usec = 1000;
 #ifdef MHD_POSIX_SOCKETS
     if (maxMhdSk > maxCurlSk)
       maxCurlSk = maxMhdSk;
@@ -536,18 +536,28 @@ performQueryExternal (struct MHD_Daemon *d, CURL *c)
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        externalErrorExitDesc ("select() failed");
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
       if ((WSAEINVAL != WSAGetLastError ()) ||
-          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count))
-        externalErrorExitDesc ("select() failed");
-      Sleep (10);
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     if (MHD_YES != MHD_run_from_select (d, &rs, &ws, &es))
     {
       fprintf (stderr, "MHD_run_from_select() failed. Line: %d\n", __LINE__);
-      _exit (11);
+      exit (11);
     }
   }
 
@@ -706,7 +716,7 @@ doCurlQueryInThread (struct MHD_Daemon *d,
         fprintf (stderr, "MHD has wrong number of active connection (%u) "
                  "after response has been sent. Line: %d\n", num_conn,
                  __LINE__);
-        _exit (23);
+        exit (23);
       }
     }
   }
diff --git a/src/testcurl/test_get_empty.c b/src/testcurl/test_get_empty.c
index 53e45f71..87d30c4d 100644
--- a/src/testcurl/test_get_empty.c
+++ b/src/testcurl/test_get_empty.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2009, 2011, 2019 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -21,6 +22,7 @@
  * @file test_get_empty.c
  * @brief  Testcase for libmicrohttpd GET operations returning an empty body
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 #include "MHD_config.h"
 #include "platform.h"
@@ -470,14 +472,22 @@ testExternalGet ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        _exit (99);
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_get_iovec.c b/src/testcurl/test_get_iovec.c
index 90d4c123..dbb259b6 100644
--- a/src/testcurl/test_get_iovec.c
+++ b/src/testcurl/test_get_iovec.c
@@ -592,14 +592,22 @@ testExternalGet ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        abort ();
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_get_response_cleanup.c 
b/src/testcurl/test_get_response_cleanup.c
index 0bb154c8..bdb83e2d 100644
--- a/src/testcurl/test_get_response_cleanup.c
+++ b/src/testcurl/test_get_response_cleanup.c
@@ -2,6 +2,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2009 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -23,6 +24,7 @@
  * @file daemontest_get_response_cleanup.c
  * @brief  Testcase for libmicrohttpd response cleanup
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -375,8 +377,25 @@ testExternalGet ()
     tv.tv_usec = 1000;
     if (-1 == select (max + 1, &rs, &ws, &es, &tv))
     {
+#ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+#else
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
+#endif
     }
     MHD_run (d);
   }
@@ -397,8 +416,25 @@ testExternalGet ()
     tv.tv_usec = 1000;
     if (-1 == select (max + 1, &rs, &ws, &es, &tv))
     {
+#ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+#else
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
+#endif
     }
     MHD_run (d);
   }
diff --git a/src/testcurl/test_get_sendfile.c b/src/testcurl/test_get_sendfile.c
index 9f1f82ae..c483da40 100644
--- a/src/testcurl/test_get_sendfile.c
+++ b/src/testcurl/test_get_sendfile.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2009 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -21,6 +22,7 @@
  * @file test_get_sendfile.c
  * @brief  Testcase for libmicrohttpd response from FD
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -449,14 +451,22 @@ testExternalGet ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        abort ();
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_get_wait.c b/src/testcurl/test_get_wait.c
index cfabd2d1..0fc190f9 100644
--- a/src/testcurl/test_get_wait.c
+++ b/src/testcurl/test_get_wait.c
@@ -1,7 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2009, 2011 Christian Grothoff
-     Copyright (C) 2016-2021 Karlson2k (Evgeny Grin)
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
diff --git a/src/testcurl/test_iplimit.c b/src/testcurl/test_iplimit.c
index 405f2777..f93c5030 100644
--- a/src/testcurl/test_iplimit.c
+++ b/src/testcurl/test_iplimit.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -20,9 +21,9 @@
 
 /**
  * @file test_iplimit.c
- * @brief  Testcase for libmicrohttpd GET operations
- *         TODO: test parsing of query
+ * @brief  Testcase for libmicrohttpd limits per IP
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
diff --git a/src/testcurl/test_large_put.c b/src/testcurl/test_large_put.c
index 1aa8a457..66c51588 100644
--- a/src/testcurl/test_large_put.c
+++ b/src/testcurl/test_large_put.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2008 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file test_large_put.c
  * @brief  Testcase for libmicrohttpd PUT operations
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -565,14 +567,22 @@ testPutExternal (void)
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        abort ();
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_long_header.c b/src/testcurl/test_long_header.c
index b9802fc5..884df6c9 100644
--- a/src/testcurl/test_long_header.c
+++ b/src/testcurl/test_long_header.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007 Christian Grothoff
+     Copyright (C) 2016-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file test_long_header.c
  * @brief  Testcase for libmicrohttpd handling of very long headers
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
diff --git a/src/testcurl/test_parse_cookies.c 
b/src/testcurl/test_parse_cookies.c
index 4356bf8c..a78e0afa 100644
--- a/src/testcurl/test_parse_cookies.c
+++ b/src/testcurl/test_parse_cookies.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file test_parse_cookies.c
  * @brief  Testcase for HTTP cookie parsing
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -228,14 +230,22 @@ testExternalGet ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        abort ();
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_patch.c b/src/testcurl/test_patch.c
index eb1fc707..85bec751 100644
--- a/src/testcurl/test_patch.c
+++ b/src/testcurl/test_patch.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2020 Christian Grothoff
+     Copyright (C) 2016-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file test_patch.c
  * @brief  Testcase for libmicrohttpd PATCH operations
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -439,14 +441,22 @@ testExternalPut ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        _exit (99);
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_post.c b/src/testcurl/test_post.c
index 2e34c38f..e5420fde 100644
--- a/src/testcurl/test_post.c
+++ b/src/testcurl/test_post.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file test_post.c
  * @brief  Testcase for libmicrohttpd POST operations using URL-encoding
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -515,14 +517,22 @@ testExternalPost ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        abort ();
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_post_loop.c b/src/testcurl/test_post_loop.c
index 0c8bf202..927c867b 100644
--- a/src/testcurl/test_post_loop.c
+++ b/src/testcurl/test_post_loop.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file daemontest_post_loop.c
  * @brief  Testcase for libmicrohttpd POST operations using URL-encoding
  * @author Christian Grothoff (inspired by bug report #1296)
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -525,12 +527,25 @@ testExternalPost ()
       tv.tv_usec = (timeout % 1000) * 1000;
       if (-1 == select (maxposixs + 1, &rs, &ws, &es, &tv))
       {
-        if (EINTR == errno)
-          continue;
-        fprintf (stderr,
-                 "select failed: %s\n",
-                 strerror (errno));
-        break;
+#ifdef MHD_POSIX_SOCKETS
+        if (EINTR != errno)
+        {
+          fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                   (int) errno, __LINE__);
+          fflush (stderr);
+          exit (99);
+        }
+#else
+        if ((WSAEINVAL != WSAGetLastError ()) ||
+            (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+        {
+          fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                   (int) WSAGetLastError (), __LINE__);
+          fflush (stderr);
+          exit (99);
+        }
+        Sleep (1);
+#endif
       }
       while (CURLM_CALL_MULTI_PERFORM ==
              curl_multi_perform (multi, &running))
diff --git a/src/testcurl/test_postform.c b/src/testcurl/test_postform.c
index 57d6b4bf..beb23f43 100644
--- a/src/testcurl/test_postform.c
+++ b/src/testcurl/test_postform.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file test_postform.c
  * @brief  Testcase for libmicrohttpd POST operations using multipart/postform 
data
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -540,14 +542,22 @@ testExternalPost ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        abort ();
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_process_arguments.c 
b/src/testcurl/test_process_arguments.c
index 96a46e1d..a7aecf88 100644
--- a/src/testcurl/test_process_arguments.c
+++ b/src/testcurl/test_process_arguments.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2013 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file test_process_arguments.c
  * @brief  Testcase for HTTP URI arguments
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -227,14 +229,22 @@ testExternalGet ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        abort ();
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_process_headers.c 
b/src/testcurl/test_process_headers.c
index b0826b3d..e7e8897e 100644
--- a/src/testcurl/test_process_headers.c
+++ b/src/testcurl/test_process_headers.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file test_process_headers.c
  * @brief  Testcase for HTTP header access
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -483,14 +485,22 @@ testExternalGet ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        abort ();
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_put.c b/src/testcurl/test_put.c
index 2012b7fd..0612c65b 100644
--- a/src/testcurl/test_put.c
+++ b/src/testcurl/test_put.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file daemontest_put.c
  * @brief  Testcase for libmicrohttpd PUT operations
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -483,14 +485,22 @@ testExternalPut ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        _exit (99);
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_put_chunked.c b/src/testcurl/test_put_chunked.c
index 2c24130e..a1dee9cf 100644
--- a/src/testcurl/test_put_chunked.c
+++ b/src/testcurl/test_put_chunked.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -23,6 +24,7 @@
  * @brief Testcase for libmicrohttpd PUT operations with chunked encoding
  *        for the upload data
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -478,14 +480,22 @@ testExternalPut ()
     {
 #ifdef MHD_POSIX_SOCKETS
       if (EINTR != errno)
-        abort ();
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) errno, __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
 #else
-      if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                      ws.
-                                                                      fd_count)
-          || (0 != es.fd_count) )
-        abort ();
-      Sleep (1000);
+      if ((WSAEINVAL != WSAGetLastError ()) ||
+          (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+      {
+        fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                 (int) WSAGetLastError (), __LINE__);
+        fflush (stderr);
+        exit (99);
+      }
+      Sleep (1);
 #endif
     }
     curl_multi_perform (multi, &running);
diff --git a/src/testcurl/test_quiesce.c b/src/testcurl/test_quiesce.c
index 4482cde4..b78b3f4a 100644
--- a/src/testcurl/test_quiesce.c
+++ b/src/testcurl/test_quiesce.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2013, 2015 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -21,6 +22,7 @@
  * @file test_quiesce.c
  * @brief  Testcase for libmicrohttpd quiescing
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
@@ -454,17 +456,25 @@ testExternalGet ()
       tv.tv_usec = 1000;
       if (-1 == select (maxposixs + 1, &rs, &ws, &es, &tv))
       {
-#ifdef MHD_POSIX_SOCKETS
+  #ifdef MHD_POSIX_SOCKETS
         if (EINTR != errno)
-          abort ();
-#else
-        if ((WSAEINVAL != WSAGetLastError ()) || (0 != rs.fd_count) || (0 !=
-                                                                        ws.
-                                                                        
fd_count)
-            || (0 != es.fd_count) )
-          abort ();
-        Sleep (1000);
-#endif
+        {
+          fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                   (int) errno, __LINE__);
+          fflush (stderr);
+          exit (99);
+        }
+  #else
+        if ((WSAEINVAL != WSAGetLastError ()) ||
+            (0 != rs.fd_count) || (0 != ws.fd_count) || (0 != es.fd_count) )
+        {
+          fprintf (stderr, "Unexpected select() error: %d. Line: %d\n",
+                   (int) WSAGetLastError (), __LINE__);
+          fflush (stderr);
+          exit (99);
+        }
+        Sleep (1);
+  #endif
       }
       curl_multi_perform (multi, &running);
       if (0 == running)
diff --git a/src/testcurl/test_quiesce_stream.c 
b/src/testcurl/test_quiesce_stream.c
index c9336f2c..96a4a973 100644
--- a/src/testcurl/test_quiesce_stream.c
+++ b/src/testcurl/test_quiesce_stream.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2016 Christian Grothoff
+     Copyright (C) 2016-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
diff --git a/src/testcurl/test_termination.c b/src/testcurl/test_termination.c
index e32d3322..3e1c1f91 100644
--- a/src/testcurl/test_termination.c
+++ b/src/testcurl/test_termination.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2009 Christian Grothoff
+     Copyright (C) 2014-2021 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file daemontest_termination.c
  * @brief  Testcase for libmicrohttpd tolerating client not closing immediately
  * @author hollosig
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "platform.h"
diff --git a/src/testcurl/test_timeout.c b/src/testcurl/test_timeout.c
index 018195f4..8fae1745 100644
--- a/src/testcurl/test_timeout.c
+++ b/src/testcurl/test_timeout.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007 Christian Grothoff
+     Copyright (C) 2016-2019 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file test_timeout.c
  * @brief  Testcase for libmicrohttpd PUT operations
  * @author Matthias Wachs
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"
diff --git a/src/testcurl/test_urlparse.c b/src/testcurl/test_urlparse.c
index d089ab22..2550227f 100644
--- a/src/testcurl/test_urlparse.c
+++ b/src/testcurl/test_urlparse.c
@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2009, 2011 Christian Grothoff
+     Copyright (C) 2014-2019 Evgeny Grin (Karlson2k)
 
      libmicrohttpd is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -22,6 +23,7 @@
  * @file daemontest_urlparse.c
  * @brief  Testcase for libmicrohttpd url parsing
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "MHD_config.h"

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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