Просмотр исходного кода

test_quiesce: added more checks and more error reports

Evgeny Grin (Karlson2k) 9 лет назад
Родитель
Сommit
8bb4ce7621
1 измененных файлов с 19 добавлено и 3 удалено
  1. 19 3
      src/testcurl/test_quiesce.c

+ 19 - 3
src/testcurl/test_quiesce.c

@@ -152,7 +152,7 @@ ServeOneRequest(void *param)
     }
   MHD_stop_daemon (d);
   MHD_socket_close_(fd);
-  return NULL;
+  return done ? NULL : "Requests was not served by ServeOneRequest()";
 }
 
 
@@ -229,6 +229,14 @@ testGet (int type, int pool_count, int poll_flag)
   }
 
   fd = MHD_quiesce_daemon (d);
+  if (MHD_INVALID_SOCKET == fd)
+    {
+      fprintf (stderr,
+               "MHD_quiesce_daemon failed.\n");
+      curl_easy_cleanup (c);
+      MHD_stop_daemon (d);
+      return 2;
+    }
   if (0 != pthread_create(&thrd, NULL, &ServeOneRequest, (void*)(intptr_t) fd))
     {
       fprintf (stderr, "pthread_create failed\n");
@@ -411,8 +419,16 @@ testExternalGet ()
       if (i == 0) {
         /* quiesce the daemon on the 1st iteration, so the 2nd should fail */
         fd = MHD_quiesce_daemon(d);
-	if (MHD_INVALID_SOCKET == fd)
-	  abort ();
+        if (MHD_INVALID_SOCKET == fd)
+          {
+            fprintf (stderr,
+                     "MHD_quiesce_daemon failed.\n");
+            curl_multi_remove_handle (multi, c);
+            curl_multi_cleanup (multi);
+            curl_easy_cleanup (c);
+            MHD_stop_daemon (d);
+            return 2;
+          }
 	MHD_socket_close_ (fd);
         c = setupCURL (&cbc);
         multi = curl_multi_init ();