]> granicus.if.org Git - check/commitdiff
Fixed distcheck problem
authorhugo303 <hugo303@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Wed, 18 Aug 2004 12:52:09 +0000 (12:52 +0000)
committerhugo303 <hugo303@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Wed, 18 Aug 2004 12:52:09 +0000 (12:52 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/check/code/trunk@186 64e312b2-a51f-0410-8e61-82d0ca0eb02a

check/ChangeLog
check/src/check_print.c
check/tests/test_xml_output.sh

index 3427ea20f50bcb60150678b40921d60c2529d7b7..44f409d4c7d83c51dd3697f3fcd465ed2e656730 100644 (file)
@@ -1,3 +1,12 @@
+2004-08-18 hugo303
+
+       * src/check.c, src/check.h.in, src/check_impl.h, src/check_log.c,
+       src/check_log.h, src/check_print.c, src/check_print.h,
+       src/check_run.c, tests/Makefile.am, tests/check_check_log.c,
+       tests/ex_xml_output.c, tests/test_xml_output.sh:
+       Added support for XML output of the test results, courtesy of
+       Frederic Peters.
+
 2004-08-18 hugo303
 
        * src/check_run.c, tests/check_check_fixture.c: Fixed setup bug
index c0f0db183a82791c9eee1b7281831ec5ff80831d..1c50e3f312406f1e0eedb3c63c25dbd29087c36a 100644 (file)
@@ -95,6 +95,9 @@ void tr_fprint (FILE *file, TestResult *tr, enum print_output print_mode)
 void tr_xmlprint (FILE *file, TestResult *tr, enum print_output print_mode)
 {
   char result[10];
+  char *path_name;
+  char *file_name;
+  char *slash;
 
   switch (tr->rtype) {
   case CK_PASS:
@@ -107,12 +110,29 @@ void tr_xmlprint (FILE *file, TestResult *tr, enum print_output print_mode)
     strcpy(result, "error");
     break;
   }
+
+  slash = strrchr(tr->file, '/');
+  if (slash == NULL) {
+    path_name = (char*)".";
+    file_name = tr->file;
+  } else {
+    path_name = strdup(tr->file);
+    path_name[slash - tr->file] = 0; /* Terminate the temporary string. */
+    file_name = slash + 1;
+  }
+    
+
   fprintf(file, "    <test result=\"%s\">\n", result);
-  fprintf(file, "      <fn>%s:%d</fn>\n", tr->file, tr->line);
+  fprintf(file, "      <path>%s</path>\n", path_name);
+  fprintf(file, "      <fn>%s:%d</fn>\n", file_name, tr->line);
   fprintf(file, "      <id>%s</id>\n", tr->tname);
   fprintf(file, "      <description>%s</description>\n", tr->tcname);
   fprintf(file, "      <message>%s</message>\n", tr->msg);
   fprintf(file, "    </test>\n");
+  
+  if (slash != NULL) {
+    free(path_name);
+  }
 }
 
 enum print_output get_env_printmode (void)
index 104475dd12d36381fcef33e1b8dd53e5c2a01176..e1fce7f4a0a61c32a7bb9a69db8fd2f4a5fa5257 100755 (executable)
@@ -41,9 +41,9 @@ expected="<?xml version=\"1.0\"?>
 </testsuites>"
 
 ./ex_xml_output > /dev/null
-actual=`cat test.log.xml | grep -v duration | grep -v datetime`
+actual=`cat test.log.xml | grep -v \<duration\> | grep -v \<datetime\> | grep -v \<path\>`
 if [ x"${expected}" != x"${actual}" ]; then
-    echo "Problem with ex_log_output ${3}";
+    echo "Problem with ex_xml_output ${3}";
     echo "Expected:";
     echo "${expected}";
     echo "Got:";