]> granicus.if.org Git - check/commitdiff
Changed timeout error message
authorhugo303 <hugo303@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Tue, 1 Mar 2005 09:46:47 +0000 (09:46 +0000)
committerhugo303 <hugo303@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Tue, 1 Mar 2005 09:46:47 +0000 (09:46 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/check/code/trunk@225 64e312b2-a51f-0410-8e61-82d0ca0eb02a

check/ChangeLog
check/src/check_run.c

index 9ede50f3b42df78b61c0fbad1f4d7048d348127b..8ff10183366b1a00cd3e6e0aa5833f4033ee9e2d 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-01 hugo303
+
+       * src/check_run.c, tests/check_check_master.c: Changed timeout
+       error message according to sourceforge feature request #1121452.
+
 2005-02-28 hugo303
 
        * debian/files: Removed this auto generated file.
index 857cfddb33749e26d3099961290c664b6886618e..4b444cf3a4ff392331922d2ab752456a61288f24 100644 (file)
@@ -81,9 +81,11 @@ static int waserror (int status, int expected_signal);
 #define MSG_LEN 100
 
 static pid_t current_test;
+static int alarm_received;
 
 static void sig_handler(int sig_nr)
 {
+  alarm_received = 1;
   kill(current_test, SIGKILL);
 }
 
@@ -336,12 +338,20 @@ static void set_fork_info (TestResult *tr, int status, int signal_expected)
 
   if (was_sig) {
     if (signal_expected == signal_received) {
-      tr->rtype = CK_PASS;
-      tr->msg = pass_msg();
-    } else if (signal_expected != 0) { /* signal received, but no the expected one */
+      if (alarm_received) {
+        /* Got alarm instead of signal */
+        tr->rtype = CK_ERROR;
+        tr->msg = signal_error_msg(signal_received, signal_expected);
+      } else {
+        tr->rtype = CK_PASS;
+        tr->msg = pass_msg();
+      }
+    } else if (signal_expected != 0) {
+      /* signal received, but not the expected one */
       tr->rtype = CK_ERROR;
       tr->msg = signal_error_msg(signal_received, signal_expected);
-    } else {                           /* signal received and none expected */
+    } else {
+      /* signal received and none expected */
       tr->rtype = CK_ERROR;
       tr->msg = signal_msg(signal_received);
     }
@@ -409,6 +419,7 @@ static TestResult *tcase_run_tfun_fork (SRunner *sr, TCase *tc, TF *tfun)
   }
 
   current_test = pid;
+  alarm_received = 0;
   alarm(tc->timeout);
   do {
     pid = wait(&status);
@@ -424,8 +435,13 @@ static char *signal_error_msg (int signal_received, int signal_expected)
   char *msg = emalloc (MSG_LEN); /* free'd by caller */
   sig_r_str = strdup(strsignal(signal_received));
   sig_e_str = strdup(strsignal(signal_expected));
-  snprintf (msg, MSG_LEN, "Error: Received signal %d (%s), expected %d (%s)",
-            signal_received, sig_r_str, signal_expected, sig_e_str);
+  if (alarm_received) {
+    snprintf (msg, MSG_LEN, "Test timeout expired, expected signal %d (%s)",
+              signal_expected, sig_e_str);
+  } else {
+    snprintf (msg, MSG_LEN, "Received signal %d (%s), expected %d (%s)",
+              signal_received, sig_r_str, signal_expected, sig_e_str);
+  }
   free(sig_r_str);
   free(sig_e_str);
   return msg;
@@ -434,8 +450,13 @@ static char *signal_error_msg (int signal_received, int signal_expected)
 static char *signal_msg (int signal)
 {
   char *msg = emalloc (MSG_LEN); /* free'd by caller */
-  snprintf (msg, MSG_LEN, "Received signal %d (%s)",
-            signal, strsignal(signal));
+  if (alarm_received) {
+    snprintf (msg, MSG_LEN, "Test timeout expired",
+              signal, strsignal(signal));
+  } else {
+    snprintf (msg, MSG_LEN, "Received signal %d (%s)",
+              signal, strsignal(signal));
+  }
   return msg;
 }