You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2013/05/28 19:47:42 UTC

[lucy-commits] [09/19] Move test harness classes to Clownfish::TestHarness

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Clownfish/TestHarness/TestRunner.c
----------------------------------------------------------------------
diff --git a/core/Clownfish/TestHarness/TestRunner.c b/core/Clownfish/TestHarness/TestRunner.c
new file mode 100644
index 0000000..3132d39
--- /dev/null
+++ b/core/Clownfish/TestHarness/TestRunner.c
@@ -0,0 +1,93 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define C_CFISH_TESTRUNNER
+#define CFISH_USE_SHORT_NAMES
+#define LUCY_USE_SHORT_NAMES
+#define CHY_USE_SHORT_NAMES
+
+#include "Clownfish/TestHarness/TestRunner.h"
+#include "Clownfish/Err.h"
+#include "Clownfish/TestHarness/TestBatch.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
+#include "Clownfish/VTable.h"
+
+TestRunner*
+TestRunner_new(TestFormatter *formatter) {
+    TestRunner *self = (TestRunner*)VTable_Make_Obj(TESTRUNNER);
+    return TestRunner_init(self, formatter);
+}
+
+TestRunner*
+TestRunner_init(TestRunner *self, TestFormatter *formatter) {
+    self->formatter          = (TestFormatter*)INCREF(formatter);
+    self->num_tests          = 0;
+    self->num_tests_failed   = 0;
+    self->num_batches        = 0;
+    self->num_batches_failed = 0;
+
+    return self;
+}
+
+void
+TestRunner_destroy(TestRunner *self) {
+    DECREF(self->formatter);
+    SUPER_DESTROY(self, TESTRUNNER);
+}
+
+bool
+TestRunner_run_batch(TestRunner *self, TestBatch *batch) {
+    bool success = TestBatch_Run(batch);
+
+    self->num_tests        += TestBatch_Get_Num_Tests(batch);
+    self->num_tests_failed += TestBatch_Get_Num_Failed(batch);
+    self->num_batches      += 1;
+
+    if (!success) {
+        self->num_batches_failed += 1;
+    }
+
+    return success;
+}
+
+bool
+TestRunner_finish(TestRunner *self) {
+    TestFormatter_Summary(self->formatter, self);
+
+    return self->num_batches != 0 && self->num_batches_failed == 0;
+}
+
+uint32_t
+TestRunner_get_num_tests(TestRunner *self) {
+    return self->num_tests;
+}
+
+uint32_t
+TestRunner_get_num_tests_failed(TestRunner *self) {
+    return self->num_tests_failed;
+}
+
+uint32_t
+TestRunner_get_num_batches(TestRunner *self) {
+    return self->num_batches;
+}
+
+uint32_t
+TestRunner_get_num_batches_failed(TestRunner *self) {
+    return self->num_batches_failed;
+}
+
+

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Clownfish/TestHarness/TestRunner.cfh
----------------------------------------------------------------------
diff --git a/core/Clownfish/TestHarness/TestRunner.cfh b/core/Clownfish/TestHarness/TestRunner.cfh
new file mode 100644
index 0000000..8bebac0
--- /dev/null
+++ b/core/Clownfish/TestHarness/TestRunner.cfh
@@ -0,0 +1,77 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+parcel Clownfish;
+
+/**
+ * Run multiple test batches and collect statistics.
+ */
+class Clownfish::TestHarness::TestRunner inherits Clownfish::Obj {
+    TestFormatter *formatter;
+    uint32_t       num_tests;
+    uint32_t       num_tests_failed;
+    uint32_t       num_batches;
+    uint32_t       num_batches_failed;
+
+    inert incremented TestRunner*
+    new(TestFormatter *formatter);
+
+    /**
+     * @param formatter The test formatter to format the test output.
+     */
+    inert TestRunner*
+    init(TestRunner *self, TestFormatter *formatter);
+
+    public void
+    Destroy(TestRunner *self);
+
+    /** Run a test batch and collect statistics.
+     *
+     * @param batch The test batch.
+     * @return true if the test batch passed.
+     */
+    bool
+    Run_Batch(TestRunner *self, TestBatch *batch);
+
+    /** Print a summary after running all test batches.
+     *
+     * @return true if any tests were run and all test batches passed.
+     */
+    bool
+    Finish(TestRunner *self);
+
+    /** Return the number of tests run.
+     */
+    uint32_t
+    Get_Num_Tests(TestRunner *self);
+
+    /** Return the number of failed tests.
+     */
+    uint32_t
+    Get_Num_Tests_Failed(TestRunner *self);
+
+    /** Return the number of test batches run.
+     */
+    uint32_t
+    Get_Num_Batches(TestRunner *self);
+
+    /** Return the number of failed test batches.
+     */
+    uint32_t
+    Get_Num_Batches_Failed(TestRunner *self);
+}
+
+

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Clownfish/TestHarness/TestUtils.c
----------------------------------------------------------------------
diff --git a/core/Clownfish/TestHarness/TestUtils.c b/core/Clownfish/TestHarness/TestUtils.c
new file mode 100644
index 0000000..a45bf87
--- /dev/null
+++ b/core/Clownfish/TestHarness/TestUtils.c
@@ -0,0 +1,140 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#define CHY_USE_SHORT_NAMES
+#define CFISH_USE_SHORT_NAMES
+#define LUCY_USE_SHORT_NAMES
+
+#include "Clownfish/TestHarness/TestUtils.h"
+
+#include "Clownfish/CharBuf.h"
+#include "Clownfish/Util/Memory.h"
+#include "Lucy/Store/InStream.h"
+#include "Lucy/Store/OutStream.h"
+#include "Lucy/Store/RAMFile.h"
+#include "Lucy/Util/Freezer.h"
+
+uint64_t
+TestUtils_random_u64() {
+    uint64_t num = ((uint64_t)(rand()   & 0x7FFF) << 60)
+                   | ((uint64_t)(rand() & 0x7FFF) << 45)
+                   | ((uint64_t)(rand() & 0x7FFF) << 30)
+                   | ((uint64_t)(rand() & 0x7FFF) << 15)
+                   | ((uint64_t)(rand() & 0x7FFF) << 0);
+    return num;
+}
+
+int64_t*
+TestUtils_random_i64s(int64_t *buf, size_t count, int64_t min,
+                      int64_t limit) {
+    uint64_t  range = min < limit ? limit - min : 0;
+    int64_t *ints = buf ? buf : (int64_t*)CALLOCATE(count, sizeof(int64_t));
+    for (size_t i = 0; i < count; i++) {
+        ints[i] = min + TestUtils_random_u64() % range;
+    }
+    return ints;
+}
+
+uint64_t*
+TestUtils_random_u64s(uint64_t *buf, size_t count, uint64_t min,
+                      uint64_t limit) {
+    uint64_t  range = min < limit ? limit - min : 0;
+    uint64_t *ints = buf ? buf : (uint64_t*)CALLOCATE(count, sizeof(uint64_t));
+    for (size_t i = 0; i < count; i++) {
+        ints[i] = min + TestUtils_random_u64() % range;
+    }
+    return ints;
+}
+
+double*
+TestUtils_random_f64s(double *buf, size_t count) {
+    double *f64s = buf ? buf : (double*)CALLOCATE(count, sizeof(double));
+    for (size_t i = 0; i < count; i++) {
+        uint64_t num = TestUtils_random_u64();
+        f64s[i] = U64_TO_DOUBLE(num) / UINT64_MAX;
+    }
+    return f64s;
+}
+
+static uint32_t
+S_random_code_point(void) {
+    uint32_t code_point = 0;
+    while (1) {
+        uint8_t chance = (rand() % 9) + 1;
+        switch (chance) {
+            case 1: case 2: case 3:
+                code_point = rand() % 0x80;
+                break;
+            case 4: case 5: case 6:
+                code_point = (rand() % (0x0800  - 0x0080)) + 0x0080;
+                break;
+            case 7: case 8:
+                code_point = (rand() % (0x10000 - 0x0800)) + 0x0800;
+                break;
+            case 9: {
+                    uint64_t num = TestUtils_random_u64();
+                    code_point = (num % (0x10FFFF - 0x10000)) + 0x10000;
+                }
+        }
+        if (code_point > 0x10FFFF) {
+            continue; // Too high.
+        }
+        if (code_point > 0xD7FF && code_point < 0xE000) {
+            continue; // UTF-16 surrogate.
+        }
+        break;
+    }
+    return code_point;
+}
+
+CharBuf*
+TestUtils_random_string(size_t length) {
+    CharBuf *string = CB_new(length);
+    while (length--) {
+        CB_Cat_Char(string, S_random_code_point());
+    }
+    return string;
+}
+
+CharBuf*
+TestUtils_get_cb(const char *ptr) {
+    return CB_new_from_utf8(ptr, strlen(ptr));
+}
+
+Obj*
+TestUtils_freeze_thaw(Obj *object) {
+    if (object) {
+        RAMFile *ram_file = RAMFile_new(NULL, false);
+        OutStream *outstream = OutStream_open((Obj*)ram_file);
+        FREEZE(object, outstream);
+        OutStream_Close(outstream);
+        DECREF(outstream);
+
+        InStream *instream = InStream_open((Obj*)ram_file);
+        Obj *retval = THAW(instream);
+        DECREF(instream);
+        DECREF(ram_file);
+        return retval;
+    }
+    else {
+        return NULL;
+    }
+}
+
+

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Clownfish/TestHarness/TestUtils.cfh
----------------------------------------------------------------------
diff --git a/core/Clownfish/TestHarness/TestUtils.cfh b/core/Clownfish/TestHarness/TestUtils.cfh
new file mode 100644
index 0000000..507114d
--- /dev/null
+++ b/core/Clownfish/TestHarness/TestUtils.cfh
@@ -0,0 +1,71 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+parcel Clownfish;
+
+inert class Clownfish::TestHarness::TestUtils  {
+
+    /** Testing-only CharBuf factory which uses strlen().
+     */
+    inert incremented CharBuf*
+    get_cb(const char *utf8);
+
+    /** Return a random unsigned 64-bit integer.
+     */
+    inert uint64_t
+    random_u64();
+
+    /** Return an array of <code>count</code> random 64-bit integers where
+     * <code>min <= n < limit</code>.
+     *
+     * If <code>buf</code> is NULL, it will be allocated, otherwise it will
+     * be used.
+     */
+    inert int64_t*
+    random_i64s(int64_t *buf, size_t count, int64_t min, int64_t limit);
+
+    /** Return an array of <code>count</code> random unsigned, 64-bit integers
+     * where <code>min <= n < limit</code>.
+     *
+     * If <code>buf</code> is NULL, it will be allocated, otherwise it will
+     * be used.
+     */
+    inert uint64_t*
+    random_u64s(uint64_t *buf, size_t count, uint64_t min, uint64_t limit);
+
+    /** Return an array of <code>count</code> random double-precision floating
+     * point numbers between 0 and 1.
+     *
+     * If <code>buf</code> is NULL, it will be allocated, otherwise it will
+     * be used.
+     */
+    inert double*
+    random_f64s(double *buf, size_t count);
+
+    /** Return a string with a random (legal) sequence of code points.
+     * @param length Length of the string in code points.
+     */
+    inert incremented CharBuf*
+    random_string(size_t length);
+
+    /** Return the result of round-tripping the object through FREEZE and
+     * THAW.
+     */
+    inert incremented Obj*
+    freeze_thaw(Obj *object);
+}
+
+

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test.c b/core/Lucy/Test.c
index ded5834..c131931 100644
--- a/core/Lucy/Test.c
+++ b/core/Lucy/Test.c
@@ -20,9 +20,9 @@
 #include "Lucy/Util/ToolSet.h"
 
 #include "Lucy/Test.h"
-#include "Clownfish/Test/TestBatch.h"
-#include "Clownfish/Test/TestFormatter.h"
-#include "Clownfish/Test/TestRunner.h"
+#include "Clownfish/TestHarness/TestBatch.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
+#include "Clownfish/TestHarness/TestRunner.h"
 #include "Lucy/Test/Analysis/TestAnalyzer.h"
 #include "Lucy/Test/Analysis/TestCaseFolder.h"
 #include "Lucy/Test/Analysis/TestNormalizer.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestAnalyzer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestAnalyzer.c b/core/Lucy/Test/Analysis/TestAnalyzer.c
index 1443f8c..04e6fc7 100644
--- a/core/Lucy/Test/Analysis/TestAnalyzer.c
+++ b/core/Lucy/Test/Analysis/TestAnalyzer.c
@@ -17,7 +17,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Analysis/TestAnalyzer.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestAnalyzer.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestAnalyzer.cfh b/core/Lucy/Test/Analysis/TestAnalyzer.cfh
index 78c0391..e9d67ea 100644
--- a/core/Lucy/Test/Analysis/TestAnalyzer.cfh
+++ b/core/Lucy/Test/Analysis/TestAnalyzer.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Analysis::TestAnalyzer
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestAnalyzer*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestCaseFolder.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestCaseFolder.c b/core/Lucy/Test/Analysis/TestCaseFolder.c
index 8ee0f51..1c8670b 100644
--- a/core/Lucy/Test/Analysis/TestCaseFolder.c
+++ b/core/Lucy/Test/Analysis/TestCaseFolder.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Analysis/TestCaseFolder.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestCaseFolder.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestCaseFolder.cfh b/core/Lucy/Test/Analysis/TestCaseFolder.cfh
index 087a5e1..2ff9067 100644
--- a/core/Lucy/Test/Analysis/TestCaseFolder.cfh
+++ b/core/Lucy/Test/Analysis/TestCaseFolder.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Analysis::TestCaseFolder
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestCaseFolder*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestNormalizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestNormalizer.c b/core/Lucy/Test/Analysis/TestNormalizer.c
index 94904d2..40d26e3 100644
--- a/core/Lucy/Test/Analysis/TestNormalizer.c
+++ b/core/Lucy/Test/Analysis/TestNormalizer.c
@@ -19,7 +19,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Analysis/TestNormalizer.h"
 #include "Lucy/Analysis/Normalizer.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestNormalizer.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestNormalizer.cfh b/core/Lucy/Test/Analysis/TestNormalizer.cfh
index cff80bc..ac5567f 100644
--- a/core/Lucy/Test/Analysis/TestNormalizer.cfh
+++ b/core/Lucy/Test/Analysis/TestNormalizer.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Analysis::TestNormalizer
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestNormalizer*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestPolyAnalyzer.c b/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
index a1f3f8f..cee8df1 100644
--- a/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
+++ b/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Analysis/TestPolyAnalyzer.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestPolyAnalyzer.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestPolyAnalyzer.cfh b/core/Lucy/Test/Analysis/TestPolyAnalyzer.cfh
index 2e5319b..7d4d2fc 100644
--- a/core/Lucy/Test/Analysis/TestPolyAnalyzer.cfh
+++ b/core/Lucy/Test/Analysis/TestPolyAnalyzer.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Analysis::TestPolyAnalyzer
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestPolyAnalyzer*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestRegexTokenizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestRegexTokenizer.c b/core/Lucy/Test/Analysis/TestRegexTokenizer.c
index 92b9b5b..cf9bb72 100644
--- a/core/Lucy/Test/Analysis/TestRegexTokenizer.c
+++ b/core/Lucy/Test/Analysis/TestRegexTokenizer.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Analysis/TestRegexTokenizer.h"
 #include "Lucy/Analysis/RegexTokenizer.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestRegexTokenizer.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestRegexTokenizer.cfh b/core/Lucy/Test/Analysis/TestRegexTokenizer.cfh
index 8a23975..bb0f352 100644
--- a/core/Lucy/Test/Analysis/TestRegexTokenizer.cfh
+++ b/core/Lucy/Test/Analysis/TestRegexTokenizer.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Analysis::TestRegexTokenizer
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestRegexTokenizer*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestSnowballStemmer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestSnowballStemmer.c b/core/Lucy/Test/Analysis/TestSnowballStemmer.c
index f045fe0..36a1879 100644
--- a/core/Lucy/Test/Analysis/TestSnowballStemmer.c
+++ b/core/Lucy/Test/Analysis/TestSnowballStemmer.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Analysis/TestSnowballStemmer.h"
 #include "Lucy/Analysis/SnowballStemmer.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestSnowballStemmer.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestSnowballStemmer.cfh b/core/Lucy/Test/Analysis/TestSnowballStemmer.cfh
index f91aea4..8a651ee 100644
--- a/core/Lucy/Test/Analysis/TestSnowballStemmer.cfh
+++ b/core/Lucy/Test/Analysis/TestSnowballStemmer.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Analysis::TestSnowballStemmer cnick TestSnowStemmer
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestSnowballStemmer*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestSnowballStopFilter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestSnowballStopFilter.c b/core/Lucy/Test/Analysis/TestSnowballStopFilter.c
index 0e5663e..217464a 100644
--- a/core/Lucy/Test/Analysis/TestSnowballStopFilter.c
+++ b/core/Lucy/Test/Analysis/TestSnowballStopFilter.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Analysis/TestSnowballStopFilter.h"
 #include "Lucy/Analysis/SnowballStopFilter.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestSnowballStopFilter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestSnowballStopFilter.cfh b/core/Lucy/Test/Analysis/TestSnowballStopFilter.cfh
index c80864b..33140a5 100644
--- a/core/Lucy/Test/Analysis/TestSnowballStopFilter.cfh
+++ b/core/Lucy/Test/Analysis/TestSnowballStopFilter.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Analysis::TestSnowballStopFilter cnick TestSnowStop
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestSnowballStopFilter*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestStandardTokenizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestStandardTokenizer.c b/core/Lucy/Test/Analysis/TestStandardTokenizer.c
index 9f1775c..063e17c 100644
--- a/core/Lucy/Test/Analysis/TestStandardTokenizer.c
+++ b/core/Lucy/Test/Analysis/TestStandardTokenizer.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Analysis/TestStandardTokenizer.h"
 #include "Lucy/Analysis/StandardTokenizer.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Analysis/TestStandardTokenizer.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestStandardTokenizer.cfh b/core/Lucy/Test/Analysis/TestStandardTokenizer.cfh
index 12f93b6..257879d 100644
--- a/core/Lucy/Test/Analysis/TestStandardTokenizer.cfh
+++ b/core/Lucy/Test/Analysis/TestStandardTokenizer.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Analysis::TestStandardTokenizer
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestStandardTokenizer*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Highlight/TestHeatMap.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Highlight/TestHeatMap.c b/core/Lucy/Test/Highlight/TestHeatMap.c
index 08877e8..2f2da84 100644
--- a/core/Lucy/Test/Highlight/TestHeatMap.c
+++ b/core/Lucy/Test/Highlight/TestHeatMap.c
@@ -17,7 +17,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Highlight/TestHeatMap.h"
 #include "Lucy/Highlight/HeatMap.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Highlight/TestHeatMap.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Highlight/TestHeatMap.cfh b/core/Lucy/Test/Highlight/TestHeatMap.cfh
index 8df87c9..2a4ed5a 100644
--- a/core/Lucy/Test/Highlight/TestHeatMap.cfh
+++ b/core/Lucy/Test/Highlight/TestHeatMap.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Highlight::TestHeatMap
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestHeatMap*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Highlight/TestHighlighter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Highlight/TestHighlighter.c b/core/Lucy/Test/Highlight/TestHighlighter.c
index 4194539..808267b 100644
--- a/core/Lucy/Test/Highlight/TestHighlighter.c
+++ b/core/Lucy/Test/Highlight/TestHighlighter.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Highlight/TestHighlighter.h"
 #include "Lucy/Highlight/Highlighter.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Highlight/TestHighlighter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Highlight/TestHighlighter.cfh b/core/Lucy/Test/Highlight/TestHighlighter.cfh
index 6419bb9..848836d 100644
--- a/core/Lucy/Test/Highlight/TestHighlighter.cfh
+++ b/core/Lucy/Test/Highlight/TestHighlighter.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Highlight::TestHighlighter
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestHighlighter*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestDocWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestDocWriter.c b/core/Lucy/Test/Index/TestDocWriter.c
index b49a30f..879d830 100644
--- a/core/Lucy/Test/Index/TestDocWriter.c
+++ b/core/Lucy/Test/Index/TestDocWriter.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestDocWriter.h"
 #include "Lucy/Index/DocWriter.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestDocWriter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestDocWriter.cfh b/core/Lucy/Test/Index/TestDocWriter.cfh
index 40403af..1426d1c 100644
--- a/core/Lucy/Test/Index/TestDocWriter.cfh
+++ b/core/Lucy/Test/Index/TestDocWriter.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Index::TestDocWriter
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestDocWriter*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestHighlightWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestHighlightWriter.c b/core/Lucy/Test/Index/TestHighlightWriter.c
index e4152f6..791da1b 100644
--- a/core/Lucy/Test/Index/TestHighlightWriter.c
+++ b/core/Lucy/Test/Index/TestHighlightWriter.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestHighlightWriter.h"
 #include "Lucy/Index/HighlightWriter.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestHighlightWriter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestHighlightWriter.cfh b/core/Lucy/Test/Index/TestHighlightWriter.cfh
index 7173c63..d761e38 100644
--- a/core/Lucy/Test/Index/TestHighlightWriter.cfh
+++ b/core/Lucy/Test/Index/TestHighlightWriter.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Index::TestHighlightWriter cnick TestHLWriter
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestHighlightWriter*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestIndexManager.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestIndexManager.c b/core/Lucy/Test/Index/TestIndexManager.c
index aeda532..a856300 100644
--- a/core/Lucy/Test/Index/TestIndexManager.c
+++ b/core/Lucy/Test/Index/TestIndexManager.c
@@ -17,7 +17,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestIndexManager.h"
 #include "Lucy/Index/IndexManager.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestIndexManager.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestIndexManager.cfh b/core/Lucy/Test/Index/TestIndexManager.cfh
index 911afaa..105b833 100644
--- a/core/Lucy/Test/Index/TestIndexManager.cfh
+++ b/core/Lucy/Test/Index/TestIndexManager.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Index::TestIndexManager cnick TestIxManager
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestIndexManager*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestPolyReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestPolyReader.c b/core/Lucy/Test/Index/TestPolyReader.c
index 58bd248..2f8dfc5 100644
--- a/core/Lucy/Test/Index/TestPolyReader.c
+++ b/core/Lucy/Test/Index/TestPolyReader.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestPolyReader.h"
 #include "Lucy/Index/PolyReader.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestPolyReader.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestPolyReader.cfh b/core/Lucy/Test/Index/TestPolyReader.cfh
index 1040439..36c957e 100644
--- a/core/Lucy/Test/Index/TestPolyReader.cfh
+++ b/core/Lucy/Test/Index/TestPolyReader.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Index::TestPolyReader
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestPolyReader*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestPostingListWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestPostingListWriter.c b/core/Lucy/Test/Index/TestPostingListWriter.c
index 27db6a8..f393665 100644
--- a/core/Lucy/Test/Index/TestPostingListWriter.c
+++ b/core/Lucy/Test/Index/TestPostingListWriter.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestPostingListWriter.h"
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestPostingListWriter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestPostingListWriter.cfh b/core/Lucy/Test/Index/TestPostingListWriter.cfh
index 353bdbe..5c460bf 100644
--- a/core/Lucy/Test/Index/TestPostingListWriter.cfh
+++ b/core/Lucy/Test/Index/TestPostingListWriter.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Index::TestPostingListWriter cnick TestPListWriter
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestPostingListWriter*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestSegWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSegWriter.c b/core/Lucy/Test/Index/TestSegWriter.c
index e949c9d..1e26311 100644
--- a/core/Lucy/Test/Index/TestSegWriter.c
+++ b/core/Lucy/Test/Index/TestSegWriter.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestSegWriter.h"
 #include "Lucy/Index/SegWriter.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestSegWriter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSegWriter.cfh b/core/Lucy/Test/Index/TestSegWriter.cfh
index 471df86..1ca9eaa 100644
--- a/core/Lucy/Test/Index/TestSegWriter.cfh
+++ b/core/Lucy/Test/Index/TestSegWriter.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Index::TestSegWriter
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestSegWriter*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestSegment.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSegment.c b/core/Lucy/Test/Index/TestSegment.c
index aa46dac..f0a3596 100644
--- a/core/Lucy/Test/Index/TestSegment.c
+++ b/core/Lucy/Test/Index/TestSegment.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestSegment.h"
 #include "Lucy/Index/Segment.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestSegment.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSegment.cfh b/core/Lucy/Test/Index/TestSegment.cfh
index 76feab5..9af7b60 100644
--- a/core/Lucy/Test/Index/TestSegment.cfh
+++ b/core/Lucy/Test/Index/TestSegment.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Index::TestSegment cnick TestSeg
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestSegment*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestSnapshot.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSnapshot.c b/core/Lucy/Test/Index/TestSnapshot.c
index 3e905cb..2d204aa 100644
--- a/core/Lucy/Test/Index/TestSnapshot.c
+++ b/core/Lucy/Test/Index/TestSnapshot.c
@@ -17,7 +17,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestSnapshot.h"
 #include "Lucy/Index/Snapshot.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestSnapshot.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSnapshot.cfh b/core/Lucy/Test/Index/TestSnapshot.cfh
index 4ecdf9d..cb9f316 100644
--- a/core/Lucy/Test/Index/TestSnapshot.cfh
+++ b/core/Lucy/Test/Index/TestSnapshot.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Index::TestSnapshot
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestSnapshot*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestTermInfo.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestTermInfo.c b/core/Lucy/Test/Index/TestTermInfo.c
index 3474e56..9872671 100644
--- a/core/Lucy/Test/Index/TestTermInfo.c
+++ b/core/Lucy/Test/Index/TestTermInfo.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestTermInfo.h"
 #include "Lucy/Index/TermInfo.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Index/TestTermInfo.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestTermInfo.cfh b/core/Lucy/Test/Index/TestTermInfo.cfh
index 6f7cb43..69e9ee9 100644
--- a/core/Lucy/Test/Index/TestTermInfo.cfh
+++ b/core/Lucy/Test/Index/TestTermInfo.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Index::TestTermInfo
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestTermInfo*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Object/TestBitVector.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestBitVector.c b/core/Lucy/Test/Object/TestBitVector.c
index cce4df9..cd04fbb 100644
--- a/core/Lucy/Test/Object/TestBitVector.c
+++ b/core/Lucy/Test/Object/TestBitVector.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Object/TestBitVector.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Object/TestBitVector.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestBitVector.cfh b/core/Lucy/Test/Object/TestBitVector.cfh
index 75a1006..b7f53bc 100644
--- a/core/Lucy/Test/Object/TestBitVector.cfh
+++ b/core/Lucy/Test/Object/TestBitVector.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Object::TestBitVector
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestBitVector*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Object/TestI32Array.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestI32Array.c b/core/Lucy/Test/Object/TestI32Array.c
index 058d9ec..2b66430 100644
--- a/core/Lucy/Test/Object/TestI32Array.c
+++ b/core/Lucy/Test/Object/TestI32Array.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Object/TestI32Array.h"
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Object/TestI32Array.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestI32Array.cfh b/core/Lucy/Test/Object/TestI32Array.cfh
index 7f5c19f..8211d07 100644
--- a/core/Lucy/Test/Object/TestI32Array.cfh
+++ b/core/Lucy/Test/Object/TestI32Array.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Object::TestI32Array cnick TestI32Arr
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestI32Array*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Plan/TestBlobType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestBlobType.c b/core/Lucy/Test/Plan/TestBlobType.c
index 1b0f0b4..03ecf10 100644
--- a/core/Lucy/Test/Plan/TestBlobType.c
+++ b/core/Lucy/Test/Plan/TestBlobType.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Plan/TestBlobType.h"
 #include "Lucy/Test/TestUtils.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Plan/TestBlobType.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestBlobType.cfh b/core/Lucy/Test/Plan/TestBlobType.cfh
index 8ec6fc1..ade91fe 100644
--- a/core/Lucy/Test/Plan/TestBlobType.cfh
+++ b/core/Lucy/Test/Plan/TestBlobType.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Plan::TestBlobType
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestBlobType*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Plan/TestFieldMisc.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFieldMisc.c b/core/Lucy/Test/Plan/TestFieldMisc.c
index bd39cc4..a4bbf99 100644
--- a/core/Lucy/Test/Plan/TestFieldMisc.c
+++ b/core/Lucy/Test/Plan/TestFieldMisc.c
@@ -17,7 +17,7 @@
 
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Plan/TestFieldMisc.h"
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Plan/TestFieldMisc.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFieldMisc.cfh b/core/Lucy/Test/Plan/TestFieldMisc.cfh
index 98734b8..7673b5d 100644
--- a/core/Lucy/Test/Plan/TestFieldMisc.cfh
+++ b/core/Lucy/Test/Plan/TestFieldMisc.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Plan::TestFieldMisc
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestFieldMisc*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Plan/TestFieldType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFieldType.c b/core/Lucy/Test/Plan/TestFieldType.c
index e2ce6b2..7979aca 100644
--- a/core/Lucy/Test/Plan/TestFieldType.c
+++ b/core/Lucy/Test/Plan/TestFieldType.c
@@ -19,7 +19,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Plan/TestFieldType.h"
 #include "Lucy/Test/TestUtils.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Plan/TestFieldType.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFieldType.cfh b/core/Lucy/Test/Plan/TestFieldType.cfh
index f91ec94..2632b6f 100644
--- a/core/Lucy/Test/Plan/TestFieldType.cfh
+++ b/core/Lucy/Test/Plan/TestFieldType.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Plan::TestFieldType cnick TestFType
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestFieldType*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Plan/TestFullTextType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFullTextType.c b/core/Lucy/Test/Plan/TestFullTextType.c
index 67b60a8..8a3a336 100644
--- a/core/Lucy/Test/Plan/TestFullTextType.c
+++ b/core/Lucy/Test/Plan/TestFullTextType.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Plan/TestFullTextType.h"
 #include "Lucy/Test/TestUtils.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Plan/TestFullTextType.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFullTextType.cfh b/core/Lucy/Test/Plan/TestFullTextType.cfh
index 91b9f30..47b9592 100644
--- a/core/Lucy/Test/Plan/TestFullTextType.cfh
+++ b/core/Lucy/Test/Plan/TestFullTextType.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Plan::TestFullTextType
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestFullTextType*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Plan/TestNumericType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestNumericType.c b/core/Lucy/Test/Plan/TestNumericType.c
index cdc42b5..48ef96c 100644
--- a/core/Lucy/Test/Plan/TestNumericType.c
+++ b/core/Lucy/Test/Plan/TestNumericType.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Plan/TestNumericType.h"
 #include "Lucy/Test/TestUtils.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Plan/TestNumericType.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestNumericType.cfh b/core/Lucy/Test/Plan/TestNumericType.cfh
index 72f7823..21c4b31 100644
--- a/core/Lucy/Test/Plan/TestNumericType.cfh
+++ b/core/Lucy/Test/Plan/TestNumericType.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Plan::TestNumericType
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestNumericType*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestLeafQuery.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestLeafQuery.c b/core/Lucy/Test/Search/TestLeafQuery.c
index 7dd37f8..ba7db58 100644
--- a/core/Lucy/Test/Search/TestLeafQuery.c
+++ b/core/Lucy/Test/Search/TestLeafQuery.c
@@ -19,7 +19,7 @@
 #include "Lucy/Util/ToolSet.h"
 #include <math.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Search/TestLeafQuery.h"
 #include "Lucy/Test/TestUtils.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestLeafQuery.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestLeafQuery.cfh b/core/Lucy/Test/Search/TestLeafQuery.cfh
index 7bb03ab..19a9da3 100644
--- a/core/Lucy/Test/Search/TestLeafQuery.cfh
+++ b/core/Lucy/Test/Search/TestLeafQuery.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Search::TestLeafQuery
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestLeafQuery*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestMatchAllQuery.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestMatchAllQuery.c b/core/Lucy/Test/Search/TestMatchAllQuery.c
index 57f395b..b70c8f2 100644
--- a/core/Lucy/Test/Search/TestMatchAllQuery.c
+++ b/core/Lucy/Test/Search/TestMatchAllQuery.c
@@ -19,7 +19,7 @@
 #include "Lucy/Util/ToolSet.h"
 #include <math.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Search/TestMatchAllQuery.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestMatchAllQuery.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestMatchAllQuery.cfh b/core/Lucy/Test/Search/TestMatchAllQuery.cfh
index 1f09bc1..1d2a3f5 100644
--- a/core/Lucy/Test/Search/TestMatchAllQuery.cfh
+++ b/core/Lucy/Test/Search/TestMatchAllQuery.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Search::TestMatchAllQuery
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestMatchAllQuery*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestNOTQuery.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestNOTQuery.c b/core/Lucy/Test/Search/TestNOTQuery.c
index 374fd3d..c6b7246 100644
--- a/core/Lucy/Test/Search/TestNOTQuery.c
+++ b/core/Lucy/Test/Search/TestNOTQuery.c
@@ -19,7 +19,7 @@
 #include "Lucy/Util/ToolSet.h"
 #include <math.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Search/TestNOTQuery.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestNOTQuery.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestNOTQuery.cfh b/core/Lucy/Test/Search/TestNOTQuery.cfh
index becf64e..a2549d3 100644
--- a/core/Lucy/Test/Search/TestNOTQuery.cfh
+++ b/core/Lucy/Test/Search/TestNOTQuery.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Search::TestNOTQuery
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestNOTQuery*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestNoMatchQuery.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestNoMatchQuery.c b/core/Lucy/Test/Search/TestNoMatchQuery.c
index a1a9e20..76a738e 100644
--- a/core/Lucy/Test/Search/TestNoMatchQuery.c
+++ b/core/Lucy/Test/Search/TestNoMatchQuery.c
@@ -19,7 +19,7 @@
 #include "Lucy/Util/ToolSet.h"
 #include <math.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Search/TestNoMatchQuery.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestNoMatchQuery.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestNoMatchQuery.cfh b/core/Lucy/Test/Search/TestNoMatchQuery.cfh
index a283efa..9b2344d 100644
--- a/core/Lucy/Test/Search/TestNoMatchQuery.cfh
+++ b/core/Lucy/Test/Search/TestNoMatchQuery.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Search::TestNoMatchQuery
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestNoMatchQuery*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestPhraseQuery.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestPhraseQuery.c b/core/Lucy/Test/Search/TestPhraseQuery.c
index 3f07f9d..d350f95 100644
--- a/core/Lucy/Test/Search/TestPhraseQuery.c
+++ b/core/Lucy/Test/Search/TestPhraseQuery.c
@@ -19,7 +19,7 @@
 #include "Lucy/Util/ToolSet.h"
 #include <math.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Search/TestPhraseQuery.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestPhraseQuery.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestPhraseQuery.cfh b/core/Lucy/Test/Search/TestPhraseQuery.cfh
index c39290a..d1fcd07 100644
--- a/core/Lucy/Test/Search/TestPhraseQuery.cfh
+++ b/core/Lucy/Test/Search/TestPhraseQuery.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Search::TestPhraseQuery
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestPhraseQuery*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestPolyQuery.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestPolyQuery.c b/core/Lucy/Test/Search/TestPolyQuery.c
index 531bb3c..370f646 100644
--- a/core/Lucy/Test/Search/TestPolyQuery.c
+++ b/core/Lucy/Test/Search/TestPolyQuery.c
@@ -19,7 +19,7 @@
 #include "Lucy/Util/ToolSet.h"
 #include <math.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Search/TestPolyQuery.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestPolyQuery.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestPolyQuery.cfh b/core/Lucy/Test/Search/TestPolyQuery.cfh
index 768e8c4..b509286 100644
--- a/core/Lucy/Test/Search/TestPolyQuery.cfh
+++ b/core/Lucy/Test/Search/TestPolyQuery.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Search::TestANDQuery
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestANDQuery*
     new(TestFormatter *formatter);
@@ -30,7 +30,7 @@ class Lucy::Test::Search::TestANDQuery
 }
 
 class Lucy::Test::Search::TestORQuery
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestORQuery*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestQueryParserLogic.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestQueryParserLogic.c b/core/Lucy/Test/Search/TestQueryParserLogic.c
index 0d88816..5e807a7 100644
--- a/core/Lucy/Test/Search/TestQueryParserLogic.c
+++ b/core/Lucy/Test/Search/TestQueryParserLogic.c
@@ -20,7 +20,7 @@
 #include "Lucy/Util/ToolSet.h"
 #include <string.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Search/TestQueryParserLogic.h"
 #include "Lucy/Test/Search/TestQueryParser.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestQueryParserLogic.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestQueryParserLogic.cfh b/core/Lucy/Test/Search/TestQueryParserLogic.cfh
index 5f28b54..888e1ae 100644
--- a/core/Lucy/Test/Search/TestQueryParserLogic.cfh
+++ b/core/Lucy/Test/Search/TestQueryParserLogic.cfh
@@ -20,7 +20,7 @@ parcel TestLucy;
  */
 
 class Lucy::Test::Search::TestQueryParserLogic cnick TestQPLogic
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestQueryParserLogic*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestQueryParserSyntax.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestQueryParserSyntax.c b/core/Lucy/Test/Search/TestQueryParserSyntax.c
index ededff1..06db2d5 100644
--- a/core/Lucy/Test/Search/TestQueryParserSyntax.c
+++ b/core/Lucy/Test/Search/TestQueryParserSyntax.c
@@ -20,7 +20,7 @@
 #include "Lucy/Util/ToolSet.h"
 #include <string.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Search/TestQueryParserSyntax.h"
 #include "Lucy/Test/Search/TestQueryParser.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestQueryParserSyntax.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestQueryParserSyntax.cfh b/core/Lucy/Test/Search/TestQueryParserSyntax.cfh
index 794dbe7..080fd4a 100644
--- a/core/Lucy/Test/Search/TestQueryParserSyntax.cfh
+++ b/core/Lucy/Test/Search/TestQueryParserSyntax.cfh
@@ -20,7 +20,7 @@ parcel TestLucy;
  */
 
 class Lucy::Test::Search::TestQueryParserSyntax cnick TestQPSyntax
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestQueryParserSyntax*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestRangeQuery.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestRangeQuery.c b/core/Lucy/Test/Search/TestRangeQuery.c
index 7d76eee..fa1c698 100644
--- a/core/Lucy/Test/Search/TestRangeQuery.c
+++ b/core/Lucy/Test/Search/TestRangeQuery.c
@@ -19,7 +19,7 @@
 #include "Lucy/Util/ToolSet.h"
 #include <math.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Search/TestRangeQuery.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestRangeQuery.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestRangeQuery.cfh b/core/Lucy/Test/Search/TestRangeQuery.cfh
index 41e98d3..241395d 100644
--- a/core/Lucy/Test/Search/TestRangeQuery.cfh
+++ b/core/Lucy/Test/Search/TestRangeQuery.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Search::TestRangeQuery
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestRangeQuery*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestReqOptQuery.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestReqOptQuery.c b/core/Lucy/Test/Search/TestReqOptQuery.c
index f32bc5d..a974c4a 100644
--- a/core/Lucy/Test/Search/TestReqOptQuery.c
+++ b/core/Lucy/Test/Search/TestReqOptQuery.c
@@ -19,7 +19,7 @@
 #include "Lucy/Util/ToolSet.h"
 #include <math.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Search/TestReqOptQuery.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestReqOptQuery.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestReqOptQuery.cfh b/core/Lucy/Test/Search/TestReqOptQuery.cfh
index b783734..4e50151 100644
--- a/core/Lucy/Test/Search/TestReqOptQuery.cfh
+++ b/core/Lucy/Test/Search/TestReqOptQuery.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Search::TestReqOptQuery
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestReqOptQuery*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestSeriesMatcher.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestSeriesMatcher.c b/core/Lucy/Test/Search/TestSeriesMatcher.c
index e3e68db..24ff6aa 100644
--- a/core/Lucy/Test/Search/TestSeriesMatcher.c
+++ b/core/Lucy/Test/Search/TestSeriesMatcher.c
@@ -19,7 +19,7 @@
 #include "Lucy/Util/ToolSet.h"
 #include <math.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Search/TestSeriesMatcher.h"
 #include "Lucy/Search/BitVecMatcher.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestSeriesMatcher.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestSeriesMatcher.cfh b/core/Lucy/Test/Search/TestSeriesMatcher.cfh
index 5952ce6..476156f 100644
--- a/core/Lucy/Test/Search/TestSeriesMatcher.cfh
+++ b/core/Lucy/Test/Search/TestSeriesMatcher.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Search::TestSeriesMatcher
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestSeriesMatcher*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestSortSpec.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestSortSpec.c b/core/Lucy/Test/Search/TestSortSpec.c
index a8b1e3e..e889b0e 100644
--- a/core/Lucy/Test/Search/TestSortSpec.c
+++ b/core/Lucy/Test/Search/TestSortSpec.c
@@ -21,7 +21,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Search/TestSortSpec.h"
 #include "Lucy/Test/TestUtils.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestSortSpec.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestSortSpec.cfh b/core/Lucy/Test/Search/TestSortSpec.cfh
index 633b452..e5be81e 100644
--- a/core/Lucy/Test/Search/TestSortSpec.cfh
+++ b/core/Lucy/Test/Search/TestSortSpec.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Search::TestSortSpec
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestSortSpec*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestSpan.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestSpan.c b/core/Lucy/Test/Search/TestSpan.c
index d359dbe..c2f9d60 100644
--- a/core/Lucy/Test/Search/TestSpan.c
+++ b/core/Lucy/Test/Search/TestSpan.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Search/TestSpan.h"
 #include "Lucy/Search/Span.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestSpan.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestSpan.cfh b/core/Lucy/Test/Search/TestSpan.cfh
index 1c9a119..bc64c8e 100644
--- a/core/Lucy/Test/Search/TestSpan.cfh
+++ b/core/Lucy/Test/Search/TestSpan.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Search::TestSpan
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestSpan*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestTermQuery.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestTermQuery.c b/core/Lucy/Test/Search/TestTermQuery.c
index 809c440..46ddf04 100644
--- a/core/Lucy/Test/Search/TestTermQuery.c
+++ b/core/Lucy/Test/Search/TestTermQuery.c
@@ -19,7 +19,7 @@
 #include "Lucy/Util/ToolSet.h"
 #include <math.h>
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Search/TestTermQuery.h"
 #include "Lucy/Test/TestUtils.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Search/TestTermQuery.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestTermQuery.cfh b/core/Lucy/Test/Search/TestTermQuery.cfh
index 96e5d09..3cdcac2 100644
--- a/core/Lucy/Test/Search/TestTermQuery.cfh
+++ b/core/Lucy/Test/Search/TestTermQuery.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Search::TestTermQuery
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestTermQuery*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestCompoundFileReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestCompoundFileReader.c b/core/Lucy/Test/Store/TestCompoundFileReader.c
index f3748be..425611c 100644
--- a/core/Lucy/Test/Store/TestCompoundFileReader.c
+++ b/core/Lucy/Test/Store/TestCompoundFileReader.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Store/TestCompoundFileReader.h"
 #include "Lucy/Store/CompoundFileReader.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestCompoundFileReader.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestCompoundFileReader.cfh b/core/Lucy/Test/Store/TestCompoundFileReader.cfh
index f12c05b..bd2a23b 100644
--- a/core/Lucy/Test/Store/TestCompoundFileReader.cfh
+++ b/core/Lucy/Test/Store/TestCompoundFileReader.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Store::TestCompoundFileReader cnick TestCFReader
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestCompoundFileReader*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestCompoundFileWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestCompoundFileWriter.c b/core/Lucy/Test/Store/TestCompoundFileWriter.c
index 76dc72c..c315ba1 100644
--- a/core/Lucy/Test/Store/TestCompoundFileWriter.c
+++ b/core/Lucy/Test/Store/TestCompoundFileWriter.c
@@ -17,7 +17,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Store/TestCompoundFileWriter.h"
 #include "Lucy/Store/CompoundFileWriter.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestCompoundFileWriter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestCompoundFileWriter.cfh b/core/Lucy/Test/Store/TestCompoundFileWriter.cfh
index f1ca473..407e6d7 100644
--- a/core/Lucy/Test/Store/TestCompoundFileWriter.cfh
+++ b/core/Lucy/Test/Store/TestCompoundFileWriter.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Store::TestCompoundFileWriter cnick TestCFWriter
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestCompoundFileWriter*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestFSDirHandle.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFSDirHandle.c b/core/Lucy/Test/Store/TestFSDirHandle.c
index da9f9ff..59530ce 100644
--- a/core/Lucy/Test/Store/TestFSDirHandle.c
+++ b/core/Lucy/Test/Store/TestFSDirHandle.c
@@ -27,7 +27,7 @@
   #include <unistd.h>
 #endif
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Store/TestFSDirHandle.h"
 #include "Lucy/Store/FSDirHandle.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestFSDirHandle.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFSDirHandle.cfh b/core/Lucy/Test/Store/TestFSDirHandle.cfh
index d76dabb..33ae342 100644
--- a/core/Lucy/Test/Store/TestFSDirHandle.cfh
+++ b/core/Lucy/Test/Store/TestFSDirHandle.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Store::TestFSDirHandle cnick TestFSDH
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestFSDirHandle*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestFSFileHandle.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFSFileHandle.c b/core/Lucy/Test/Store/TestFSFileHandle.c
index 34048a3..838d86d 100644
--- a/core/Lucy/Test/Store/TestFSFileHandle.c
+++ b/core/Lucy/Test/Store/TestFSFileHandle.c
@@ -27,7 +27,7 @@
   #include <io.h> // close
 #endif
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Store/TestFSFileHandle.h"
 #include "Lucy/Store/FSFileHandle.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestFSFileHandle.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFSFileHandle.cfh b/core/Lucy/Test/Store/TestFSFileHandle.cfh
index 6fd288c..5eb2d86 100644
--- a/core/Lucy/Test/Store/TestFSFileHandle.cfh
+++ b/core/Lucy/Test/Store/TestFSFileHandle.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Store::TestFSFileHandle cnick TestFSFH
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestFSFileHandle*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestFSFolder.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFSFolder.c b/core/Lucy/Test/Store/TestFSFolder.c
index d85deef..a64df50 100644
--- a/core/Lucy/Test/Store/TestFSFolder.c
+++ b/core/Lucy/Test/Store/TestFSFolder.c
@@ -32,7 +32,7 @@
   #include <sys/stat.h>
 #endif
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Store/TestFSFolder.h"
 #include "Lucy/Test/Store/TestFolderCommon.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestFSFolder.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFSFolder.cfh b/core/Lucy/Test/Store/TestFSFolder.cfh
index 896e813..f590315 100644
--- a/core/Lucy/Test/Store/TestFSFolder.cfh
+++ b/core/Lucy/Test/Store/TestFSFolder.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Store::TestFSFolder
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestFSFolder*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestFileHandle.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFileHandle.c b/core/Lucy/Test/Store/TestFileHandle.c
index 645b516..47afb43 100644
--- a/core/Lucy/Test/Store/TestFileHandle.c
+++ b/core/Lucy/Test/Store/TestFileHandle.c
@@ -20,7 +20,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Store/TestFileHandle.h"
 #include "Lucy/Store/FileHandle.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestFileHandle.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFileHandle.cfh b/core/Lucy/Test/Store/TestFileHandle.cfh
index 8e852ba..d77eaa6 100644
--- a/core/Lucy/Test/Store/TestFileHandle.cfh
+++ b/core/Lucy/Test/Store/TestFileHandle.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Store::TestFileHandle cnick TestFH
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestFileHandle*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestFolder.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFolder.c b/core/Lucy/Test/Store/TestFolder.c
index 75eb6e6..ce7d417 100644
--- a/core/Lucy/Test/Store/TestFolder.c
+++ b/core/Lucy/Test/Store/TestFolder.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Store/TestFolder.h"
 #include "Lucy/Store/DirHandle.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestFolder.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFolder.cfh b/core/Lucy/Test/Store/TestFolder.cfh
index 09e4c2b..b9b3bb9 100644
--- a/core/Lucy/Test/Store/TestFolder.cfh
+++ b/core/Lucy/Test/Store/TestFolder.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Store::TestFolder
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestFolder*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestFolderCommon.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestFolderCommon.c b/core/Lucy/Test/Store/TestFolderCommon.c
index ddbb421..c2ba9a4 100644
--- a/core/Lucy/Test/Store/TestFolderCommon.c
+++ b/core/Lucy/Test/Store/TestFolderCommon.c
@@ -19,7 +19,7 @@
 
 #include "Lucy/Test.h"
 #include "Lucy/Test/Store/TestFolderCommon.h"
-#include "Clownfish/Test/TestBatch.h"
+#include "Clownfish/TestHarness/TestBatch.h"
 #include "Lucy/Store/Folder.h"
 #include "Lucy/Store/DirHandle.h"
 #include "Lucy/Store/FileHandle.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestIOChunks.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestIOChunks.c b/core/Lucy/Test/Store/TestIOChunks.c
index 3f88a3d..cae365c 100644
--- a/core/Lucy/Test/Store/TestIOChunks.c
+++ b/core/Lucy/Test/Store/TestIOChunks.c
@@ -22,7 +22,7 @@
 
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Store/TestIOChunks.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestIOChunks.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestIOChunks.cfh b/core/Lucy/Test/Store/TestIOChunks.cfh
index 94e5813..1cae6a9 100644
--- a/core/Lucy/Test/Store/TestIOChunks.cfh
+++ b/core/Lucy/Test/Store/TestIOChunks.cfh
@@ -19,7 +19,7 @@ parcel TestLucy;
 /** Tests reading and writing of composite types using InStream/OutStream.
  */
 class Lucy::Test::Store::TestIOChunks
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestIOChunks*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestIOPrimitives.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestIOPrimitives.c b/core/Lucy/Test/Store/TestIOPrimitives.c
index 009043b..55e3c78 100644
--- a/core/Lucy/Test/Store/TestIOPrimitives.c
+++ b/core/Lucy/Test/Store/TestIOPrimitives.c
@@ -22,7 +22,7 @@
 
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Store/TestIOPrimitives.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestIOPrimitives.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestIOPrimitives.cfh b/core/Lucy/Test/Store/TestIOPrimitives.cfh
index 106f940..ddf7852 100644
--- a/core/Lucy/Test/Store/TestIOPrimitives.cfh
+++ b/core/Lucy/Test/Store/TestIOPrimitives.cfh
@@ -19,7 +19,7 @@ parcel TestLucy;
 /** Tests reading and writing of primitive types using InStream/OutStream.
  */
 class Lucy::Test::Store::TestIOPrimitives
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestIOPrimitives*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestInStream.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestInStream.c b/core/Lucy/Test/Store/TestInStream.c
index 95b2cb1..9a29002 100644
--- a/core/Lucy/Test/Store/TestInStream.c
+++ b/core/Lucy/Test/Store/TestInStream.c
@@ -20,7 +20,7 @@
 
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Store/TestInStream.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestInStream.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestInStream.cfh b/core/Lucy/Test/Store/TestInStream.cfh
index 5052685..7b97094 100644
--- a/core/Lucy/Test/Store/TestInStream.cfh
+++ b/core/Lucy/Test/Store/TestInStream.cfh
@@ -21,7 +21,7 @@ parcel TestLucy;
  */
 
 class Lucy::Test::Store::TestInStream
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestInStream*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestRAMDirHandle.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestRAMDirHandle.c b/core/Lucy/Test/Store/TestRAMDirHandle.c
index fcdcd1a..7997aa2 100644
--- a/core/Lucy/Test/Store/TestRAMDirHandle.c
+++ b/core/Lucy/Test/Store/TestRAMDirHandle.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Store/TestRAMDirHandle.h"
 #include "Lucy/Store/FileHandle.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestRAMDirHandle.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestRAMDirHandle.cfh b/core/Lucy/Test/Store/TestRAMDirHandle.cfh
index aabe232..ac80e4d 100644
--- a/core/Lucy/Test/Store/TestRAMDirHandle.cfh
+++ b/core/Lucy/Test/Store/TestRAMDirHandle.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Store::TestRAMDirHandle cnick TestRAMDH
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestRAMDirHandle*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestRAMFileHandle.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestRAMFileHandle.c b/core/Lucy/Test/Store/TestRAMFileHandle.c
index 5d75bc3..0289c79 100644
--- a/core/Lucy/Test/Store/TestRAMFileHandle.c
+++ b/core/Lucy/Test/Store/TestRAMFileHandle.c
@@ -22,7 +22,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Store/TestRAMFileHandle.h"
 #include "Lucy/Store/RAMFileHandle.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestRAMFileHandle.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestRAMFileHandle.cfh b/core/Lucy/Test/Store/TestRAMFileHandle.cfh
index 8ee2c1d..2b64af1 100644
--- a/core/Lucy/Test/Store/TestRAMFileHandle.cfh
+++ b/core/Lucy/Test/Store/TestRAMFileHandle.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Store::TestRAMFileHandle cnick TestRAMFH
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestRAMFileHandle*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestRAMFolder.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestRAMFolder.c b/core/Lucy/Test/Store/TestRAMFolder.c
index 0446e9d..47a69b5 100644
--- a/core/Lucy/Test/Store/TestRAMFolder.c
+++ b/core/Lucy/Test/Store/TestRAMFolder.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Store/TestRAMFolder.h"
 #include "Lucy/Store/RAMFolder.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Store/TestRAMFolder.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Store/TestRAMFolder.cfh b/core/Lucy/Test/Store/TestRAMFolder.cfh
index dfc3864..231e579 100644
--- a/core/Lucy/Test/Store/TestRAMFolder.cfh
+++ b/core/Lucy/Test/Store/TestRAMFolder.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Store::TestRAMFolder
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestRAMFolder*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/TestSchema.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/TestSchema.c b/core/Lucy/Test/TestSchema.c
index 34029cd..847fa74 100644
--- a/core/Lucy/Test/TestSchema.c
+++ b/core/Lucy/Test/TestSchema.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Plan/TestArchitecture.h"
 #include "Lucy/Test/TestSchema.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/TestSchema.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/TestSchema.cfh b/core/Lucy/Test/TestSchema.cfh
index decb6d5..758c707 100644
--- a/core/Lucy/Test/TestSchema.cfh
+++ b/core/Lucy/Test/TestSchema.cfh
@@ -34,7 +34,7 @@ class Lucy::Test::TestSchema inherits Lucy::Plan::Schema {
 }
 
 class Lucy::Test::TestBatchSchema
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestBatchSchema*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/TestUtils.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/TestUtils.c b/core/Lucy/Test/TestUtils.c
index d567e15..36f51f4 100644
--- a/core/Lucy/Test/TestUtils.c
+++ b/core/Lucy/Test/TestUtils.c
@@ -21,7 +21,7 @@
 
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test.h"
-#include "Clownfish/Test/TestBatch.h"
+#include "Clownfish/TestHarness/TestBatch.h"
 #include "Lucy/Analysis/Analyzer.h"
 #include "Lucy/Analysis/Inversion.h"
 #include "Lucy/Analysis/Token.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Util/TestIndexFileNames.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Util/TestIndexFileNames.c b/core/Lucy/Test/Util/TestIndexFileNames.c
index 95e0f3f..5f7e41a 100644
--- a/core/Lucy/Test/Util/TestIndexFileNames.c
+++ b/core/Lucy/Test/Util/TestIndexFileNames.c
@@ -17,7 +17,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Util/TestIndexFileNames.h"
 #include "Lucy/Util/IndexFileNames.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Util/TestIndexFileNames.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Util/TestIndexFileNames.cfh b/core/Lucy/Test/Util/TestIndexFileNames.cfh
index 8e106b7..44323de 100644
--- a/core/Lucy/Test/Util/TestIndexFileNames.cfh
+++ b/core/Lucy/Test/Util/TestIndexFileNames.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Util::TestIndexFileNames cnick TestIxFileNames
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestIndexFileNames*
     new(TestFormatter *formatter);

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Util/TestJson.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Util/TestJson.c b/core/Lucy/Test/Util/TestJson.c
index 6d379a2..7be389a 100644
--- a/core/Lucy/Test/Util/TestJson.c
+++ b/core/Lucy/Test/Util/TestJson.c
@@ -18,7 +18,7 @@
 #define TESTLUCY_USE_SHORT_NAMES
 #include "Lucy/Util/ToolSet.h"
 
-#include "Clownfish/Test/TestFormatter.h"
+#include "Clownfish/TestHarness/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Util/TestJson.h"
 #include "Lucy/Util/Json.h"

http://git-wip-us.apache.org/repos/asf/lucy/blob/bfc96f6d/core/Lucy/Test/Util/TestJson.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Util/TestJson.cfh b/core/Lucy/Test/Util/TestJson.cfh
index 0bf2e2f..f077492 100644
--- a/core/Lucy/Test/Util/TestJson.cfh
+++ b/core/Lucy/Test/Util/TestJson.cfh
@@ -17,7 +17,7 @@
 parcel TestLucy;
 
 class Lucy::Test::Util::TestJson
-    inherits Clownfish::Test::TestBatch {
+    inherits Clownfish::TestHarness::TestBatch {
 
     inert incremented TestJson*
     new(TestFormatter *formatter);