test_callback: improved test

Added detection of curl reported errors,
Added check that data was sent.
This commit is contained in:
Evgeny Grin (Karlson2k)
2021-08-15 15:51:01 +03:00
parent f5d387df7e
commit a03cd38794
+29 -17
View File
@@ -54,6 +54,7 @@ called_twice (void *cls, uint64_t pos, char *buf, size_t max)
}
fprintf (stderr,
"Handler called after returning END_OF_STREAM!\n");
abort ();
return MHD_CONTENT_READER_END_WITH_ERROR;
}
@@ -170,7 +171,7 @@ main (int argc, char **argv)
{
curl_easy_cleanup (c);
MHD_stop_daemon (d);
return 1;
return 99;
}
mret = curl_multi_add_handle (multi, c);
if (mret != CURLM_OK)
@@ -178,7 +179,7 @@ main (int argc, char **argv)
curl_multi_cleanup (multi);
curl_easy_cleanup (c);
MHD_stop_daemon (d);
return 2;
return 99;
}
extra = 10;
while ( (c != NULL) || (--extra > 0) )
@@ -198,7 +199,7 @@ main (int argc, char **argv)
curl_multi_cleanup (multi);
curl_easy_cleanup (c);
MHD_stop_daemon (d);
return 3;
return 99;
}
}
if (MHD_YES !=
@@ -231,22 +232,33 @@ main (int argc, char **argv)
curl_multi_perform (multi, &running);
if (running == 0)
{
msg = curl_multi_info_read (multi, &running);
if (msg == NULL)
break;
if (msg->msg == CURLMSG_DONE)
int pending;
int curl_fine = 0;
while (NULL != (msg = curl_multi_info_read (multi, &pending)))
{
if (msg->data.result != CURLE_OK)
printf ("%s failed at %s:%d: `%s'\n",
"curl_multi_perform",
__FILE__,
__LINE__, curl_easy_strerror (msg->data.result));
curl_multi_remove_handle (multi, c);
curl_multi_cleanup (multi);
curl_easy_cleanup (c);
c = NULL;
multi = NULL;
if (msg->msg != CURLMSG_DONE)
{
if (msg->data.result != CURLE_OK)
fprintf (stderr,
"%s failed at %s:%d: `%s'\n",
"curl_multi_perform",
__FILE__,
__LINE__, curl_easy_strerror (msg->data.result));
abort ();
}
else
curl_fine = 1;
}
if (! curl_fine)
{
fprintf (stderr, "libcurl haven't returned OK code\n");
abort ();
}
curl_multi_remove_handle (multi, c);
curl_multi_cleanup (multi);
curl_easy_cleanup (c);
c = NULL;
multi = NULL;
}
}
MHD_run (d);