]> granicus.if.org Git - curl/commitdiff
lib500: verify timers relative each other
authorDaniel Stenberg <daniel@haxx.se>
Tue, 20 Dec 2011 14:41:43 +0000 (15:41 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 20 Dec 2011 14:41:43 +0000 (15:41 +0100)
As commit ce896875f8 fixed a timer that accidentally had been moved in
code and then returned a bad timer, the lib500.c code (used in test 500
and some others) now verifies 5 timers against each other to verify that
they have the correct relative values. We cannot compare against
absolute values as the timings will vary a lot.

tests/libtest/lib500.c

index 812fb0dd5f9dcd210685a875eb871f206373ded0..109312b37e75de3db70d2f30ebc84ac35ff673bc 100644 (file)
@@ -88,7 +88,38 @@ int test(char *URL)
     res = curl_easy_getinfo(curl, CURLINFO_PRIMARY_IP, &ipstr);
     moo = fopen(libtest_arg2, "wb");
     if(moo) {
+      double time_namelookup;
+      double time_connect;
+      double time_pretransfer;
+      double time_starttransfer;
+      double time_total;
       fprintf(moo, "IP: %s\n", ipstr);
+      curl_easy_getinfo(curl, CURLINFO_NAMELOOKUP_TIME, &time_namelookup);
+      curl_easy_getinfo(curl, CURLINFO_CONNECT_TIME, &time_connect);
+      curl_easy_getinfo(curl, CURLINFO_PRETRANSFER_TIME, &time_pretransfer);
+      curl_easy_getinfo(curl, CURLINFO_STARTTRANSFER_TIME,
+                        &time_starttransfer);
+      curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &time_total);
+
+      /* since the timing will always vary we only compare relative differences
+         between these 5 times */
+      if(time_namelookup >= time_connect) {
+        fprintf(moo, "namelookup vs connect: %f %f\n",
+                time_namelookup, time_connect);
+      }
+      if(time_connect >= time_pretransfer) {
+        fprintf(moo, "connect vs pretransfer: %f %f\n",
+                time_connect, time_pretransfer);
+      }
+      if(time_pretransfer >= time_starttransfer) {
+        fprintf(moo, "pretransfer vs starttransfer: %f %f\n",
+                time_pretransfer, time_starttransfer);
+      }
+      if(time_starttransfer >= time_total) {
+        fprintf(moo, "starttransfer vs total: %f %f\n",
+                time_starttransfer, time_total);
+      }
+
       fclose(moo);
     }
   }