Bladeren bron

test_daemon: fixed to not skip if failed

Evgeny Grin (Karlson2k) 2 jaren geleden
bovenliggende
commit
9dcf06f9eb
1 gewijzigde bestanden met toevoegingen van 19 en 12 verwijderingen
  1. 19 12
      src/microhttpd/test_daemon.c

+ 19 - 12
src/microhttpd/test_daemon.c

@@ -1,6 +1,7 @@
 /*
      This file is part of libmicrohttpd
      Copyright (C) 2007, 2017 Christian Grothoff
+     Copyright (C) 2014--2023  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_daemon.c
  * @brief  Testcase for libmicrohttpd starts and stops
  * @author Christian Grothoff
+ * @author Karlson2k (Evgeny Grin)
  */
 
 #include "platform.h"
@@ -106,7 +108,7 @@ testStartStop (void)
     fprintf (stderr,
              "Failed to start daemon on port %u\n",
              (unsigned int) 0);
-    exit (77);
+    exit (3);
   }
   MHD_stop_daemon (d);
   return 0;
@@ -133,10 +135,9 @@ testExternalRun (void)
     fprintf (stderr,
              "Failed to start daemon on port %u\n",
              (unsigned int) 0);
-    exit (77);
+    exit (3);
   }
-  i = 0;
-  while (i < 15)
+  for (i = 0; i < 15; ++i)
   {
     maxfd = 0;
     FD_ZERO (&rs);
@@ -147,14 +148,13 @@ testExternalRun (void)
                "Failed in MHD_get_fdset().\n");
       return 256;
     }
-    if (MHD_run (d) == MHD_NO)
+    if (MHD_NO == MHD_run (d))
     {
       MHD_stop_daemon (d);
       fprintf (stderr,
                "Failed in MHD_run().\n");
       return 8;
     }
-    i++;
   }
   MHD_stop_daemon (d);
   return 0;
@@ -176,8 +176,8 @@ testThread (void)
   {
     fprintf (stderr,
              "Failed to start daemon on port %u.\n",
-             (unsigned int) 1082);
-    exit (77);
+             (unsigned int) 0);
+    exit (3);
   }
   if (MHD_run (d) != MHD_NO)
   {
@@ -207,7 +207,7 @@ testMultithread (void)
     fprintf (stderr,
              "Failed to start daemon on port %u\n",
              (unsigned int) 0);
-    exit (77);
+    exit (3);
   }
   if (MHD_run (d) != MHD_NO)
   {
@@ -225,13 +225,20 @@ main (int argc,
       char *const *argv)
 {
   unsigned int errorCount = 0;
+  int has_threads_support;
   (void) argc; (void) argv; /* Unused. Silent compiler warning. */
 
+  has_threads_support =
+    (MHD_NO != MHD_is_feature_supported (MHD_FEATURE_THREADS));
   errorCount += testStartError ();
-  errorCount += testStartStop ();
+  if (has_threads_support)
+    errorCount += testStartStop ();
   errorCount += testExternalRun ();
-  errorCount += testThread ();
-  errorCount += testMultithread ();
+  if (has_threads_support)
+  {
+    errorCount += testThread ();
+    errorCount += testMultithread ();
+  }
   if (0 != errorCount)
     fprintf (stderr,
              "Error (code: %u)\n",