You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2011/12/10 21:28:34 UTC

[lucy-commits] svn commit: r1212865 - in /incubator/lucy/trunk: c/t/ charmonizer/src/Charmonizer/ charmonizer/src/Charmonizer/Test/

Author: marvin
Date: Sat Dec 10 20:28:34 2011
New Revision: 1212865

URL: http://svn.apache.org/viewvc?rev=1212865&view=rev
Log:
Simplify Charmonizer/Test interface.

Have test programs exit with an error status under fail conditions.  Create an
implicit global TestBatch so that routines no longer need reference one
explicitly.

Modified:
    incubator/lucy/trunk/c/t/000-sanity-check.t.c
    incubator/lucy/trunk/charmonizer/src/Charmonizer/Test.c
    incubator/lucy/trunk/charmonizer/src/Charmonizer/Test.h
    incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestDirManip.c
    incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestFuncMacro.c
    incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestHeaders.c
    incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestIntegers.c
    incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestLargeFiles.c
    incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestUnusedVars.c
    incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestVariadicMacros.c

Modified: incubator/lucy/trunk/c/t/000-sanity-check.t.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/c/t/000-sanity-check.t.c?rev=1212865&r1=1212864&r2=1212865&view=diff
==============================================================================
--- incubator/lucy/trunk/c/t/000-sanity-check.t.c (original)
+++ incubator/lucy/trunk/c/t/000-sanity-check.t.c Sat Dec 10 20:28:34 2011
@@ -13,11 +13,8 @@ S_run_tests(TestBatch *batch) {
 }
 
 int main(int argc, char **argv) {
-    TestBatch *batch;
-    
-    Test_init();
-    batch = Test_new_batch("sanity", 1, S_run_tests);
-    batch->run_test(batch);
-    batch->destroy(batch);
-    return 0;
+    TestBatch *batch = Test_start(1);
+    S_run_tests(batch);
+    return !Test_finish();
 }
+

Modified: incubator/lucy/trunk/charmonizer/src/Charmonizer/Test.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/charmonizer/src/Charmonizer/Test.c?rev=1212865&r1=1212864&r2=1212865&view=diff
==============================================================================
--- incubator/lucy/trunk/charmonizer/src/Charmonizer/Test.c (original)
+++ incubator/lucy/trunk/charmonizer/src/Charmonizer/Test.c Sat Dec 10 20:28:34 2011
@@ -20,6 +20,9 @@
 #include <string.h>
 #include "Charmonizer/Test.h"
 
+chaz_TestBatch*
+chaz_Test_current = NULL;
+
 static void
 S_TestBatch_destroy(chaz_TestBatch *batch);
 
@@ -72,6 +75,27 @@ chaz_Test_new_batch(const char *batch_na
     return batch;
 }
 
+chaz_TestBatch*
+chaz_Test_start(unsigned num_tests) {
+    if (chaz_Test_current) {
+        fprintf(stderr, "Already started testing\n");
+        return NULL;
+    }
+    chaz_Test_init();
+    chaz_Test_current = chaz_Test_new_batch(NULL, num_tests, NULL);
+    CHAZ_TEST_PLAN(chaz_Test_current);
+    return chaz_Test_current;
+}
+
+int
+chaz_Test_finish(void) {
+    int remainder = chaz_Test_current->num_tests
+                    - chaz_Test_current->num_passed
+                    - chaz_Test_current->num_skipped;
+    chaz_Test_current->destroy(chaz_Test_current);
+    return !remainder;
+}
+
 void
 chaz_Test_plan(chaz_TestBatch *batch) {
     printf("1..%u\n", batch->num_tests);

Modified: incubator/lucy/trunk/charmonizer/src/Charmonizer/Test.h
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/charmonizer/src/Charmonizer/Test.h?rev=1212865&r1=1212864&r2=1212865&view=diff
==============================================================================
--- incubator/lucy/trunk/charmonizer/src/Charmonizer/Test.h (original)
+++ incubator/lucy/trunk/charmonizer/src/Charmonizer/Test.h Sat Dec 10 20:28:34 2011
@@ -28,6 +28,17 @@ extern "C" {
 
 typedef struct chaz_TestBatch chaz_TestBatch;
 
+/* Begin a test run.
+ */
+chaz_TestBatch*
+chaz_Test_start(unsigned num_tests);
+
+/* End a test run.  Returns true if all tests were run and there were no
+ * failures, false otherwise.
+ */
+int
+chaz_Test_finish(void);
+
 /* Destructor.
  */
 typedef void
@@ -128,7 +139,12 @@ void
 chaz_Test_report_skip_remaining(chaz_TestBatch* batch,
                                 const char *pat, ...);
 
+/* Global TestBatch implicitly accessed by testing macros. */
+extern chaz_TestBatch *chaz_Test_current;
+
 #ifdef CHAZ_USE_SHORT_NAMES
+  #define Test_start                   chaz_Test_start
+  #define Test_finish                  chaz_Test_finish
   #define TestBatch_destroy_t          chaz_TestBatch_destroy_t
   #define TestBatch_test_func_t        chaz_TestBatch_test_func_t
   #define TestBatch_run_test_t         chaz_TestBatch_run_test_t

Modified: incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestDirManip.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestDirManip.c?rev=1212865&r1=1212864&r2=1212865&view=diff
==============================================================================
--- incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestDirManip.c (original)
+++ incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestDirManip.c Sat Dec 10 20:28:34 2011
@@ -65,11 +65,8 @@ S_run_tests(TestBatch *batch) {
 }
 
 int main(int argc, char **argv) {
-    TestBatch *batch;
-
-    Test_init();
-    batch = Test_new_batch("Integers", 6, S_run_tests);
-    batch->run_test(batch);
-    batch->destroy(batch);
-    return 0;
+    TestBatch *batch = Test_start(6);
+    S_run_tests(batch);
+    return !Test_finish();
 }
+

Modified: incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestFuncMacro.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestFuncMacro.c?rev=1212865&r1=1212864&r2=1212865&view=diff
==============================================================================
--- incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestFuncMacro.c (original)
+++ incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestFuncMacro.c Sat Dec 10 20:28:34 2011
@@ -59,11 +59,8 @@ S_run_tests(TestBatch *batch) {
 
 
 int main(int argc, char **argv) {
-    TestBatch *batch;
-
-    Test_init();
-    batch = Test_new_batch("FuncMacro", 4, S_run_tests);
-    batch->run_test(batch);
-    batch->destroy(batch);
-    return 0;
+    TestBatch *batch = Test_start(4);
+    S_run_tests(batch);
+    return !Test_finish();
 }
+

Modified: incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestHeaders.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestHeaders.c?rev=1212865&r1=1212864&r2=1212865&view=diff
==============================================================================
--- incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestHeaders.c (original)
+++ incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestHeaders.c Sat Dec 10 20:28:34 2011
@@ -156,13 +156,9 @@ S_run_tests(TestBatch *batch) {
 #endif
 }
 
-
 int main(int argc, char **argv) {
-    TestBatch *batch;
-
-    Test_init();
-    batch = Test_new_batch("Headers", 2, S_run_tests);
-    batch->run_test(batch);
-    batch->destroy(batch);
-    return 0;
+    TestBatch *batch = Test_start(2);
+    S_run_tests(batch);
+    return !Test_finish();
 }
+

Modified: incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestIntegers.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestIntegers.c?rev=1212865&r1=1212864&r2=1212865&view=diff
==============================================================================
--- incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestIntegers.c (original)
+++ incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestIntegers.c Sat Dec 10 20:28:34 2011
@@ -120,13 +120,9 @@ S_run_tests(TestBatch *batch) {
 #endif
 }
 
-
 int main(int argc, char **argv) {
-    TestBatch *batch;
-
-    Test_init();
-    batch = Test_new_batch("Integers", 37, S_run_tests);
-    batch->run_test(batch);
-    batch->destroy(batch);
-    return 0;
+    TestBatch *batch = Test_start(37);
+    S_run_tests(batch);
+    return !Test_finish();
 }
+

Modified: incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestLargeFiles.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestLargeFiles.c?rev=1212865&r1=1212864&r2=1212865&view=diff
==============================================================================
--- incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestLargeFiles.c (original)
+++ incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestLargeFiles.c Sat Dec 10 20:28:34 2011
@@ -269,11 +269,8 @@ S_can_create_big_files(void) {
 #endif /* STAT_TESTS_ENABLED */
 
 int main(int argc, char **argv) {
-    TestBatch *batch;
-
-    Test_init();
-    batch = Test_new_batch("LargeFiles", 20, S_run_tests);
-    batch->run_test(batch);
-    batch->destroy(batch);
-    return 0;
+    TestBatch *batch = Test_start(20);
+    S_run_tests(batch);
+    return !Test_finish();
 }
+

Modified: incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestUnusedVars.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestUnusedVars.c?rev=1212865&r1=1212864&r2=1212865&view=diff
==============================================================================
--- incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestUnusedVars.c (original)
+++ incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestUnusedVars.c Sat Dec 10 20:28:34 2011
@@ -33,14 +33,10 @@ S_run_tests(TestBatch *batch) {
     FAIL(batch, "UNREACHABLE_RETURN macro is defined");
 #endif
 }
-int main(int argc, char **argv) {
-    TestBatch *batch;
 
-    Test_init();
-    batch = Test_new_batch("UnusedVars", 2, S_run_tests);
-    batch->run_test(batch);
-    batch->destroy(batch);
-    return 0;
+int main(int argc, char **argv) {
+    TestBatch *batch = Test_start(2);
+    S_run_tests(batch);
+    return !Test_finish();
 }
 
-

Modified: incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestVariadicMacros.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestVariadicMacros.c?rev=1212865&r1=1212864&r2=1212865&view=diff
==============================================================================
--- incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestVariadicMacros.c (original)
+++ incubator/lucy/trunk/charmonizer/src/Charmonizer/Test/TestVariadicMacros.c Sat Dec 10 20:28:34 2011
@@ -60,13 +60,9 @@ S_run_tests(TestBatch *batch) {
     TEST_TRUE(batch, really_has_var_macs, "either ISO or GNUC");
 }
 
-
 int main(int argc, char **argv) {
-    TestBatch *batch;
-
-    Test_init();
-    batch = Test_new_batch("VariadicMacros", 4, S_run_tests);
-    batch->run_test(batch);
-    batch->destroy(batch);
-    return 0;
+    TestBatch *batch = Test_start(4);
+    S_run_tests(batch);
+    return !Test_finish();
 }
+