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();
}
+