]> granicus.if.org Git - check/commitdiff
Fully implemented new messaging back-end based on pipes
authoramalec <amalec@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Sat, 13 Oct 2001 06:05:11 +0000 (06:05 +0000)
committeramalec <amalec@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Sat, 13 Oct 2001 06:05:11 +0000 (06:05 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/check/code/trunk@100 64e312b2-a51f-0410-8e61-82d0ca0eb02a

12 files changed:
check/src/check.c
check/src/check.h
check/src/check_log.c
check/src/check_msg.c
check/src/check_pack.c
check/src/check_run.c
check/src/check_str.c
check/src/error.c
check/src/error.h
check/tests/check_check_master.c
check/tests/test_log_output.sh
check/tests/test_output.sh

index db80c16ceb46cc2f4ff337597cabf5eec9cf02f8..338acd70968bc2022db6662a909f9c458502a26d 100644 (file)
@@ -23,7 +23,7 @@
 #include "list.h"
 #include "check.h"
 #include "check_impl.h"
-#include "check_msg.h"
+#include "check_msg_new.h"
 
 static int non_pass (int val);
 static Fixture *fixture_create (SFun fun, int ischecked);
@@ -147,31 +147,23 @@ static void tcase_add_fixture (TCase *tc, SFun setup, SFun teardown,
 
 void tcase_fn_start (char *fname, char *file, int line)
 {
-  MsgSys *msgsys;
-
-  msgsys = get_send_msgsys();
-  send_last_loc_msg (msgsys, file, line);
+  send_ctx_info (get_send_key(),CK_CTX_TEST);
+  send_loc_info (get_send_key(),file, line);
 }
 
 void _mark_point (char *file, int line)
 {
-  MsgSys *msgsys;
-
-  msgsys = get_send_msgsys();
-  send_last_loc_msg (msgsys, file, line);
+  send_loc_info (get_send_key(), file, line);
 }
 
 void _fail_unless (int result, char *file, int line, char * msg)
 {
-  MsgSys *msgsys;
-
-  msgsys = get_send_msgsys();
   if (line > MAXLINE)
-    eprintf ("Line number %d too large to use", line);
+    eprintf ("Line number %d too large to use",__FILE__,__LINE__, line);
 
-  send_last_loc_msg (msgsys, file, line);
+  send_loc_info (get_send_key(), file, line);
   if (!result) {
-    send_failure_msg (msgsys, msg);
+    send_failure_info (get_send_key(), msg);
     if (cur_fork_status() == CK_FORK)
       exit(1);
   }
@@ -325,7 +317,7 @@ void set_fork_status (enum fork_status fstat)
   if (fstat == CK_FORK || fstat == CK_NOFORK)
     _fstat = fstat;
   else
-    eprintf ("Bad status in set_fork_status");
+    eprintf ("Bad status in set_fork_status", __FILE__, __LINE__);
 }
 
 enum fork_status cur_fork_status (void)
index e5acd361f01273909233fa0b53245bfce6fd8d69..4ede2461ad543ba33f2e0333967211bd67789127 100644 (file)
@@ -174,8 +174,7 @@ void _mark_point (char *file, int line);
 enum test_result {
   CK_PASS, /* Test passed*/
   CK_FAILURE, /* Test completed but failed */
-  CK_ERROR, /* Test failed to complete (signal or non-zero early exit) */
-  CK_FIXTURE /* Failure signaled in fixture setup function */
+  CK_ERROR /* Test failed to complete (signal or non-zero early exit) */
 };
 
 /* Specifies the how much output an SRunner should produce */
index f61ac6d59df8d0098a0e8cde4011ccc7a7e50106..781840260bb7f241b4b2036ba3faf22f23170c2e 100644 (file)
@@ -126,7 +126,7 @@ void stdout_lfun (SRunner *sr, FILE *file, enum print_output printmode,
     tr = obj;
     break;
   default:
-    eprintf("Bad event type received in stdout_lfun");
+    eprintf("Bad event type received in stdout_lfun", __FILE__, __LINE__);
   }
 
   
@@ -157,7 +157,7 @@ void lfile_lfun (SRunner *sr, FILE *file, enum print_output printmode,
     tr_fprint(file, tr, CRVERBOSE);
     break;
   default:
-    eprintf("Bad event type received in stdout_lfun");
+    eprintf("Bad event type received in stdout_lfun", __FILE__, __LINE__);
   }
 
   
@@ -169,7 +169,8 @@ FILE *srunner_open_lfile (SRunner *sr)
   if (srunner_has_log (sr)) {
     f = fopen(sr->log_fname, "w");
     if (f == NULL)
-      eprintf ("Could not open log file %s:", sr->log_fname);
+      eprintf ("Could not open log file %s:", __FILE__, __LINE__,
+              sr->log_fname);
   }
   return f;
 }
@@ -196,7 +197,7 @@ void srunner_end_logging (SRunner *sr)
     if (lg->close) {
       rval = fclose (lg->lfile);
       if (rval != 0)
-       eprintf ("Error closing log file:");
+       eprintf ("Error closing log file:", __FILE__, __LINE__);
     }
     free (lg);
   }
index 08bad0513d4c2b468ccb6092869082f542f6ca83..5655ed2b6a0ed1dc4b46e37818c17a5c2a8f1a38 100644 (file)
@@ -90,7 +90,7 @@ static char *last_loc_file (LastLocMsg *msg)
     return NULL;
   for (i = 0; mmsg[i] != '\n'; i++) {
     if (mmsg[i] == '\0')
-      eprintf ("Badly formated last loc message");
+      eprintf ("Badly formated last loc message", __FILE__, __LINE__);
     rmsg[i] = mmsg[i];
   }
   rmsg[i] = '\0';
@@ -105,7 +105,7 @@ static int last_loc_line (LastLocMsg *msg)
   rmsg  = msg->msg;
   while (*rmsg != '\n') {
     if (*rmsg == '\0')
-      eprintf ("Badly formated last loc message");
+      eprintf ("Badly formated last loc message", __FILE__, __LINE__);
     rmsg++;
   }
   rmsg++; /*advance past \n */
@@ -120,7 +120,7 @@ void send_last_loc_msg (MsgSys *msgsys, char *file, int line)
   rval = msgsnd(msgsys->msqid, (void *) rmsg, CMAXMSG, IPC_NOWAIT);
   if (rval == -1) {
     eprintf ("send_last_loc_msg:Failed to send message, msqid = %d:",
-            msgsys->msqid);
+            __FILE__, __LINE__, msgsys->msqid);
   }
   free(rmsg);
 }
@@ -147,7 +147,8 @@ MsgSys *create_msgsys_with_key (int key)
 
   msgsys->msqid = msgget((key_t) key, 0666 | IPC_CREAT);
   if (msgsys->msqid == -1)
-    eprintf ("Unable to create message queue (%s):", ipcerrstr(errno));
+    eprintf ("Unable to create message queue (%s):",
+            __FILE__, __LINE__, ipcerrstr(errno));
   return msgsys;
 }
 
@@ -160,7 +161,8 @@ MsgSys *get_msgsys_with_key (int key)
   
   msgsys->msqid = msgget ((key_t) key, 0666);
   if (msgsys->msqid == -1)
-    eprintf ("Unable to get message queue (%s):", ipcerrstr(errno));
+    eprintf ("Unable to get message queue (%s):",
+            __FILE__, __LINE__, ipcerrstr(errno));
   return msgsys;
 }
 
@@ -170,7 +172,7 @@ void delete_msgsys_with_key (int key)
 
   msgsys = get_msgsys_with_key ((key_t) key);
   if (msgctl (msgsys->msqid, IPC_RMID, NULL) == -1)
-    eprintf ("Failed to free message queue:");
+    eprintf ("Failed to free message queue:", __FILE__, __LINE__);
   free(msgsys);
 }
 
@@ -188,7 +190,7 @@ void send_failure_msg (MsgSys *msgsys, char *msg)
   
   rval = msgsnd(msgsys->msqid, (void *) rmsg, CMAXMSG, IPC_NOWAIT);
   if (rval == -1)
-    eprintf ("send_failure_msg:Failed to send message:");
+    eprintf ("send_failure_msg:Failed to send message:", __FILE__, __LINE__);
   free(rmsg);
 }
 
@@ -206,7 +208,8 @@ Loc *receive_last_loc_msg (MsgSys *msgsys)
     if (rval == -1) {
       if (errno == ENOMSG)
        break;
-      eprintf ("receive_last_loc_msg:Failed to receive message:");
+      eprintf ("receive_last_loc_msg:Failed to receive message:",
+              __FILE__, __LINE__);
     }
     got_msg = 1;
   }
@@ -235,7 +238,8 @@ char *receive_failure_msg (MsgSys *msgsys)
   if (rval == -1) {
     if (errno == ENOMSG)
       return NULL;
-    eprintf ("receive_failure_msg:Failed to receive message:");
+    eprintf ("receive_failure_msg:Failed to receive message:",
+            __FILE__, __LINE__);
   }
   msg = emalloc(strlen(fmsg->msg) + 1);
   strcpy(msg,fmsg->msg);
@@ -260,7 +264,7 @@ int send_key(void)
   else if (fstat == CK_NOFORK)
     key = (int) getpid();
   else
-    key = -1, eprintf ("Bad _fstat");
+    key = -1, eprintf ("Bad _fstat", __FILE__, __LINE__);
 
   return key;
 }
index dce64537f6e5323b0048bffad192161fb469579f..4d15fd3731979c88a700a3dfe7af3c328e801165 100644 (file)
@@ -228,7 +228,7 @@ void ppack (int fdes, enum ck_msg_type type, void *data)
   n = pack(type, buf, data);
   r = write (fdes, buf, n);
   if (r == -1)
-    eprintf("Error in ppack:");
+    eprintf("Error in ppack:",__FILE__,__LINE__);
 
   free(buf);
 }
@@ -248,7 +248,7 @@ static int read_buf (int fdes, char **buf)
     if (n == 0)
       break;
     if (n == -1)
-      eprintf("Error in read_buf:");
+      eprintf("Error in read_buf:", __FILE__, __LINE__);
 
     nread += n;
     *buf = erealloc(*buf,CK_MAXMSGBUF * mul);
index ef716fb8ac5eac42fff35b95f6d260a5a97973ba..4d590229116572724f96004e7a6a938e600bc10b 100644 (file)
@@ -27,7 +27,7 @@
 #include "list.h"
 #include "check.h"
 #include "check_impl.h"
-#include "check_msg.h"
+#include "check_msg_new.h"
 #include "check_log.h"
 
 
@@ -45,40 +45,28 @@ enum tf_type {
   CK_NOFORK_FIXTURE
 };
 
-
-static void receive_failure_info (MsgSys *msgsys,
-                                 TestResult *tr,
-                                 enum tf_type tf_type,
-                                 int status);
-
-
 static void srunner_run_init (SRunner *sr, enum print_output print_mode);
 static void srunner_run_end (SRunner *sr, enum print_output print_mode);
 static void srunner_iterate_suites (SRunner *sr,
                                    enum print_output print_mode);
 static void srunner_run_tcase (SRunner *sr, TCase *tc);
-static int srunner_run_setup (SRunner *sr, TCase *tc, MsgSys *msgsys);
+static int srunner_run_setup (SRunner *sr, TCase *tc);
 static void srunner_iterate_tcase_tfuns (SRunner *sr, TCase *tc);
 static void srunner_add_failure (SRunner *sr, TestResult *tf);
 static TestResult *tfun_run_fork (char *tcname, TF *tf);
 static TestResult *tfun_run_nofork (char *tcname, TF *tf);
-static TestResult *receive_result_info (MsgSys *msgsys, char *tcname,
-                                       enum tf_type, int status);
-static TestResult *receive_result_info_nofork (MsgSys *msgsys, char *tcname);
-static TestResult *receive_result_info_setup (MsgSys *msgsys, char *tcname);
-static enum test_result result_info_rtype (enum rinfo rinfo);
-static enum rinfo result_info (enum tf_type tf_type, char *msg, int status);
-static char *result_info_msg (enum rinfo rinfo, char *fmsg, int status);
-static void receive_last_loc_info (MsgSys *msgsys, TestResult *tr);
-
+static TestResult *receive_result_info_fork (char *tcname, int status);
+static TestResult *receive_result_info_nofork (char *tcname);
+static void set_fork_info (TestResult *tr, int status);
+static void set_nofork_info (TestResult *tr);
 static char *signal_msg (int sig);
+static char *pass_msg (void);
 static char *exit_msg (int exitstatus);
 
-
-
 static void srunner_run_init (SRunner *sr, enum print_output print_mode)
 {
   set_fork_status(srunner_fork_status(sr));
+  setup_messaging();
   srunner_init_logging (sr, print_mode);
   log_srunner_start (sr);
 }
@@ -87,6 +75,7 @@ static void srunner_run_end (SRunner *sr, enum print_output print_mode)
 {
   log_srunner_end (sr);
   srunner_end_logging (sr);
+  teardown_messaging();
   set_fork_status(CK_FORK);  
 }
 
@@ -119,7 +108,8 @@ void srunner_run_all (SRunner *sr, enum print_output print_mode)
   if (sr == NULL)
     return;
   if (print_mode < 0 || print_mode >= CRLAST)
-    eprintf("Bad print_mode argument to srunner_run_all: %d", print_mode);
+    eprintf("Bad print_mode argument to srunner_run_all: %d",
+           __FILE__, __LINE__, print_mode);
       
   srunner_run_init (sr, print_mode);
   srunner_iterate_suites (sr, print_mode);
@@ -129,23 +119,15 @@ void srunner_run_all (SRunner *sr, enum print_output print_mode)
 static void srunner_add_failure (SRunner *sr, TestResult *tr)
 {  
   list_add_end (sr->resultlst, tr);
-  switch (tr->rtype) {
-    
-  case CK_PASS:
-    sr->stats->n_checked++;
-    return;
-  case CK_FAILURE:
+  if (tr->ctx == CK_CTX_TEST) {
     sr->stats->n_checked++;
+    if (tr->rtype == CK_FAILURE)
+      sr->stats->n_failed++;
+    else if (tr->rtype == CK_ERROR)
+      sr->stats->n_errors++;
+  } else
     sr->stats->n_failed++;
-    return;
-  case CK_ERROR:
-    sr->stats->n_checked++;
-    sr->stats->n_errors++;
-    return;
-  case CK_FIXTURE:
-    sr->stats->n_failed++;
-    return;
-  }
+  
 }
 
 static void srunner_iterate_tcase_tfuns (SRunner *sr, TCase *tc)
@@ -166,14 +148,14 @@ static void srunner_iterate_tcase_tfuns (SRunner *sr, TCase *tc)
       tr = tfun_run_nofork (tc->name, tfun);
       break;
     default:
-      eprintf("Bad fork status in SRunner");
+      eprintf("Bad fork status in SRunner", __FILE__, __LINE__);
     }
     srunner_add_failure (sr, tr);
     log_test_end(sr, tr);
   }
 }
 
-static int srunner_run_setup (SRunner *sr, TCase *tc, MsgSys *msgsys)
+static int srunner_run_setup (SRunner *sr, TCase *tc)
 {
   TestResult *tr;
   List *l;
@@ -187,9 +169,10 @@ static int srunner_run_setup (SRunner *sr, TCase *tc, MsgSys *msgsys)
   for (list_front(l); !list_at_end(l); list_advance(l)) {
     
     f = list_val(l);
+    send_ctx_info(get_send_key(),CK_CTX_SETUP);
     f->fun();
 
-    tr = receive_result_info_setup (msgsys, tc->name);
+    tr = receive_result_info_nofork (tc->name);
 
     if (tr->rtype != CK_PASS) {
       srunner_add_failure(sr, tr);
@@ -202,190 +185,96 @@ static int srunner_run_setup (SRunner *sr, TCase *tc, MsgSys *msgsys)
   return rval;
 }
 
-static void srunner_run_teardown (SRunner *sr, TCase *tc, MsgSys *msgsys)
+static void srunner_run_teardown (SRunner *sr, TCase *tc)
 {
   List *l;
   Fixture *f;
   
+  set_fork_status(CK_NOFORK);
   l = tc->unch_tflst;
   
   for (list_front(l); !list_at_end(l); list_advance(l)) {
     
     f = list_val(l);
+    send_ctx_info(get_send_key(),CK_CTX_TEARDOWN);
     f->fun ();
   }
+  set_fork_status(srunner_fork_status(sr));
 }
 
 static void srunner_run_tcase (SRunner *sr, TCase *tc)
 {
-  MsgSys *msgsys;
-
-  msgsys = init_msgsys();
-
-  if (srunner_run_setup (sr,tc,msgsys)) {  
+  
+  if (srunner_run_setup (sr,tc)) {  
   
     srunner_iterate_tcase_tfuns(sr,tc);
   
-    srunner_run_teardown (sr, tc, msgsys);
+    srunner_run_teardown (sr, tc);
   }
-  delete_msgsys();
 }
 
-static void receive_last_loc_info (MsgSys *msgsys, TestResult *tr)
-{
-  Loc *loc;
-  loc = receive_last_loc_msg (msgsys);
-  if (loc == NULL) {
-    char *s = emalloc (strlen ("unknown") + 1);
-    strcpy(s,"unknown");
-    tr->file = s;
-    tr->line = -1;
-  } else {
-    tr->file = loc->file;
-    tr->line = loc->line;
-    free (loc);
-  }
-}  
-
-
-static TestResult *receive_result_info (MsgSys *msgsys, char *tcname,
-                                       enum tf_type tf_type, int status)
+static TestResult *receive_result_info_fork (char *tcname, int status)
 {
-  TestResult *tr = emalloc (sizeof(TestResult));
+  TestResult *tr;
 
+  tr = receive_test_result (get_recv_key());
+  if (tr == NULL)
+    eprintf("Failed to receive test result", __FILE__, __LINE__);
   tr->tcname = tcname;
-  receive_last_loc_info (msgsys, tr);
-  receive_failure_info (msgsys, tr, tf_type, status);
-  return tr;
-}
-
-static TestResult *receive_result_info_fork (MsgSys *msgsys, char *tcname,
-                                            int status)
-{
-  return receive_result_info (msgsys, tcname, CK_FORK_TEST, status);
-}
+  set_fork_info(tr, status);
 
-static TestResult *receive_result_info_nofork (MsgSys *msgsys, char *tcname)
-{
-  return receive_result_info (msgsys,tcname, CK_NOFORK_TEST, 0);
+  return tr;
 }
 
-
-static TestResult *receive_result_info_setup (MsgSys *msgsys, char *tcname)
+static TestResult *receive_result_info_nofork (char *tcname)
 {
-  return receive_result_info (msgsys,tcname, CK_NOFORK_FIXTURE, 0);
-}
-
+  TestResult *tr;
 
-static enum rinfo result_info (enum tf_type tf_type, char *msg, int status)
-{
-  enum rinfo rinfo = -1;
-  
-  if (tf_type == CK_FORK_TEST) {
-    int was_sig = WIFSIGNALED(status);
-    int was_exit = WIFEXITED(status);
-    int exit_status = WEXITSTATUS(status);
-    
-    if (was_sig)
-      rinfo = CK_R_SIG;
-    else if (was_exit && exit_status == 0)
-      rinfo = CK_R_PASS;
-    else if (was_exit && exit_status != 0) {
-      if (msg == NULL) /* early exit */
-       rinfo = CK_R_EXIT;
-      else
-       rinfo = CK_R_FAIL_TEST;
-    } else
-      eprintf ("Bad status from wait() call\n");
-  } else {
-    if (msg == NULL)
-      rinfo = CK_R_PASS;
-    else if (tf_type == CK_NOFORK_FIXTURE)
-      rinfo = CK_R_FAIL_FIXTURE;
-    else
-      rinfo = CK_R_FAIL_TEST;
-  }
+  tr = receive_test_result(get_recv_key());
+  if (tr == NULL)
+    eprintf("Failed to receive test result", __FILE__, __LINE__);
+  tr->tcname = tcname;
+  set_nofork_info(tr);
 
-  return rinfo;
+  return tr;
 }
 
-    
-static enum test_result result_info_rtype (enum rinfo rinfo)
+static void set_fork_info (TestResult *tr, int status)
 {
-  enum test_result rtype = -1;
-  switch (rinfo) {
-  case CK_R_SIG:
-    rtype = CK_ERROR;
-    break;
-  case CK_R_PASS:
-    rtype = CK_PASS;
-    break;
-  case CK_R_EXIT:
-    rtype = CK_ERROR;
-    break;
-  case CK_R_FAIL_TEST:
-    rtype = CK_FAILURE;
-    break;
-  case CK_R_FAIL_FIXTURE:
-    rtype = CK_FIXTURE;
-    break;
-  default: eprintf ("Bad parameter value in result_info_rtype");
+  int was_sig = WIFSIGNALED(status);
+  int was_exit = WIFEXITED(status);
+  int exit_status = WEXITSTATUS(status);
+
+  if (was_sig) {
+    tr->rtype = CK_ERROR;
+    tr->msg = signal_msg(WTERMSIG(status));
+  } else if (was_exit && exit_status == 0) {
+    tr->rtype = CK_PASS;
+    tr->msg = pass_msg();
+  } else if (was_exit && exit_status != 0) {
+    if (tr->msg == NULL) { /* early exit */
+      tr->rtype = CK_ERROR;
+      tr->msg = exit_msg(exit_status);
+    } else {
+      tr->rtype = CK_FAILURE;
+    }
   }
-  return rtype;
 }
 
-static char * result_info_msg (enum rinfo rinfo, char *fmsg, int status)
+static void set_nofork_info (TestResult *tr)
 {
-  char *msg = NULL;
-  
-  switch (rinfo) {
-  case CK_R_SIG:
-    msg = signal_msg (WTERMSIG(status));
-    break;
-  case CK_R_PASS:
-    msg = emalloc (sizeof("Test passed"));
-    strcpy (msg,"Test passed");
-    break;
-  case CK_R_EXIT:
-    msg = exit_msg(WEXITSTATUS(status));
-    break;
-  case CK_R_FAIL_TEST: /* fall through */
-  case CK_R_FAIL_FIXTURE:
-    msg = emalloc(strlen(fmsg) + 1);
-    strcpy (msg, fmsg);
-    break;
-  default: eprintf ("Bad parameter value in result_info_rtype");
+  if (tr->msg == NULL) {
+    tr->rtype = CK_PASS;
+    tr->msg = pass_msg();
+  } else {
+    tr->rtype = CK_FAILURE;
   }
-
-  return msg;
-}
-
-static void receive_failure_info (MsgSys *msgsys,
-                                 TestResult *tr,
-                                 enum tf_type tf_type,
-                                 int status)
-{
-  char *fmsg;
-  enum rinfo rinfo;
-
-  fmsg = receive_failure_msg (msgsys);
-
-  rinfo = result_info (tf_type, fmsg, status);
-  tr->rtype = result_info_rtype (rinfo);
-  tr->msg = result_info_msg (rinfo, fmsg, status);
-  
-  if (fmsg != NULL)
-    free (fmsg);
-
 }
 
 static TestResult *tfun_run_nofork (char *tcname, TF *tfun)
 {
-  MsgSys  *msgsys;
-
-  msgsys = get_recv_msgsys();
   tfun->fn();
-  return receive_result_info_nofork (msgsys, tcname);
+  return receive_result_info_nofork (tcname);
 }
 
   
@@ -393,19 +282,16 @@ static TestResult *tfun_run_fork (char *tcname, TF *tfun)
 {
   pid_t pid;
   int status = 0;
-  MsgSys  *msgsys;
-
-  msgsys = get_recv_msgsys();
 
   pid = fork();
   if (pid == -1)
-     eprintf ("Unable to fork:");
+     eprintf ("Unable to fork:",__FILE__,__LINE__);
   if (pid == 0) {
     tfun->fn();
     _exit(EXIT_SUCCESS);
   }
   (void) wait(&status);
-  return receive_result_info_fork (msgsys, tcname, status);
+  return receive_result_info_fork (tcname, status);
 }
 
 static char *signal_msg (int signal)
@@ -423,6 +309,13 @@ static char *exit_msg (int exitval)
   return msg;
 }
 
+static char *pass_msg (void)
+{
+  char *msg = emalloc(sizeof("Passed"));
+  strcpy (msg, "Passed");
+  return msg;
+}
+
 enum fork_status srunner_fork_status (SRunner *sr)
 {
   if (sr->fstat == CK_FORK_UNSPECIFIED) {
index deb8c29a6b2b8934fd7ec34073542e64da66209e..620082c44f79529f40731b85f88bdc0e6ec1779e 100644 (file)
@@ -24,7 +24,7 @@
 #include "check_impl.h"
 #include "check_str.h"
 
-static char *rtype_str (int rtype);
+static char *tr_type_str (TestResult *tr);
 static int percent_passed (TestStats *t);
 
 char *tr_str (TestResult *tr) 
@@ -37,7 +37,7 @@ char *tr_str (TestResult *tr)
   
   snprintf (rstr, CMAXMSG, "%s:%d:%s:%s: %s%s",
            tr->file, tr->line,
-           rtype_str(tr->rtype),  tr->tcname,
+           tr_type_str(tr),  tr->tcname,
            exact_msg, tr->msg);
 
   return rstr;
@@ -58,25 +58,20 @@ char *sr_stat_str (SRunner *sr)
 }
 
 
-static char *rtype_str (int rtype)
+static char *tr_type_str (TestResult *tr)
 {
-  switch (rtype) {
-  case CK_PASS:
-    return "P";
-    break;
-  case CK_FAILURE:
-    return "F";
-    break;
-  case CK_ERROR:
-    return "E";
-    break;
-  case CK_FIXTURE:
-    return "S";
-    break;
-  default:
-    eprintf("Bad argument %d to rtype_to_string", rtype);
-    return NULL;
-  }
+  char *str = NULL;
+  if (tr->ctx == CK_CTX_TEST) {
+    if (tr->rtype == CK_PASS)
+      str = "P";
+    else if (tr->rtype == CK_FAILURE)
+      str = "F";
+    else if (tr->rtype == CK_ERROR)
+      str = "E";
+  } else
+    str = "S";
+
+  return str;
 }
 
 static int percent_passed (TestStats *t)
index f2227a2b553b19b2365371166583b0f9d888d232..d281f8a814d0730bdbd1d4bac567a06f7b049ad1 100644 (file)
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
 
-void eprintf (char *fmt, ...)
+void eprintf (char *fmt, char *file, int line, ...)
 {
   va_list args;
-  fflush(stdout);
+  fflush(stderr);
 
-  va_start(args, fmt);
+  fprintf(stderr,"%s:%d: ",file,line);
+  va_start(args, line);
   vfprintf(stderr, fmt, args);
   va_end(args);
 
@@ -46,7 +47,7 @@ void *emalloc (size_t n)
   void *p;
   p = malloc(n);
   if (p == NULL)
-    eprintf("malloc of %u bytes failed:", n);
+    eprintf("malloc of %u bytes failed:", __FILE__, __LINE__, n);
   return p;
 }
 
@@ -55,6 +56,6 @@ void *erealloc (void * ptr, size_t n)
   void *p;
   p = realloc (ptr, n);
   if (p == NULL)
-    eprintf("realloc of %u bytes failed:", n);
+    eprintf("realloc of %u bytes failed:", __FILE__, __LINE__, n);
   return p;
 }
index 01c2e136c3ac38366d08bc8e34fc01a7fdf0a6a1..58ed2f5d80f660056bb5f372635c525b4847497f 100644 (file)
@@ -24,7 +24,7 @@
 
 /* Print error message and die
    If fmt ends in colon, include system error information */
-void eprintf (char *fmt, ...);
+void eprintf (char *fmt, char *file, int line,...);
 /* malloc or die */
 void *emalloc(size_t n);
 void *erealloc(void *, size_t n);
index e72af53caa6c2ec40bf304c3a6ff4e104cb7d578..09a92c046164f1691f0f8d7df9775c9a45afcfb7 100644 (file)
@@ -146,7 +146,7 @@ START_TEST(test_check_all_msgs)
   char *msgar[] = {
     "Failure expected",
     "Early exit with return value 1",
-    "Test passed",
+    "Passed",
     "This test should fail",
     "Received signal 11",
     "Received signal 8",
index 49f7e8cf1aac50cf6bc6461ce1fa806b6b3dd6bd..3a3dbf0e0c3efb0c1ec537c0fbc444ecbcf13d59 100755 (executable)
@@ -1,11 +1,11 @@
 #!/bin/sh
 
 expected="Running suite S1
-ex_log_output.c:7:P:Core: Test passed
+ex_log_output.c:7:P:Core: Passed
 ex_log_output.c:13:F:Core: Failure
 ex_log_output.c:17:E:Core: (after this point) Early exit with return value 1
 Running suite S2
-ex_log_output.c:25:P:Core: Test passed
+ex_log_output.c:25:P:Core: Passed
 Results for all suites run:
 50%: Checks: 4, Failures: 1, Errors: 1"
 
index a3291d57839273a16cc89c47fda475dc762c867a..85bbbb70f54106441bddf27acc5ba6b6b8820f60 100755 (executable)
@@ -9,7 +9,7 @@ ex_output.c:13:F:Core: Failure
 ex_output.c:17:E:Core: (after this point) Early exit with return value 1"
 t3="xRunning suite(s): Master
 33%: Checks: 3, Failures: 1, Errors: 1
-ex_output.c:7:P:Core: Test passed
+ex_output.c:7:P:Core: Passed
 ex_output.c:13:F:Core: Failure
 ex_output.c:17:E:Core: (after this point) Early exit with return value 1"