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/02/24 18:25:56 UTC

[lucy-commits] [19/19] git commit: refs/heads/master - Add TestFormatter to TestBatch constructor

Updated Branches:
  refs/heads/master b75126099 -> 08c61bf31


Add TestFormatter to TestBatch constructor


Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/08c61bf3
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/08c61bf3
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/08c61bf3

Branch: refs/heads/master
Commit: 08c61bf317720c6601d88cc6e028a152cd6b14e8
Parents: 6f3083c
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Thu Feb 21 18:34:51 2013 +0100
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Thu Feb 21 18:48:33 2013 +0100

----------------------------------------------------------------------
 core/Clownfish/Test/TestBatch.c                    |   19 +-
 core/Clownfish/Test/TestBatch.cfh                  |    4 +-
 core/Lucy/Test.c                                   |  148 +++++++-------
 core/Lucy/Test/Analysis/TestAnalyzer.c             |    9 +-
 core/Lucy/Test/Analysis/TestAnalyzer.cfh           |    4 +-
 core/Lucy/Test/Analysis/TestCaseFolder.c           |    9 +-
 core/Lucy/Test/Analysis/TestCaseFolder.cfh         |    4 +-
 core/Lucy/Test/Analysis/TestNormalizer.c           |    9 +-
 core/Lucy/Test/Analysis/TestNormalizer.cfh         |    4 +-
 core/Lucy/Test/Analysis/TestPolyAnalyzer.c         |    9 +-
 core/Lucy/Test/Analysis/TestPolyAnalyzer.cfh       |    4 +-
 core/Lucy/Test/Analysis/TestRegexTokenizer.c       |    9 +-
 core/Lucy/Test/Analysis/TestRegexTokenizer.cfh     |    4 +-
 core/Lucy/Test/Analysis/TestSnowballStemmer.c      |    9 +-
 core/Lucy/Test/Analysis/TestSnowballStemmer.cfh    |    4 +-
 core/Lucy/Test/Analysis/TestSnowballStopFilter.c   |    9 +-
 core/Lucy/Test/Analysis/TestSnowballStopFilter.cfh |    4 +-
 core/Lucy/Test/Analysis/TestStandardTokenizer.c    |    9 +-
 core/Lucy/Test/Analysis/TestStandardTokenizer.cfh  |    4 +-
 core/Lucy/Test/Highlight/TestHeatMap.c             |    9 +-
 core/Lucy/Test/Highlight/TestHeatMap.cfh           |    4 +-
 core/Lucy/Test/Highlight/TestHighlighter.c         |    9 +-
 core/Lucy/Test/Highlight/TestHighlighter.cfh       |    4 +-
 core/Lucy/Test/Index/TestDocWriter.c               |    9 +-
 core/Lucy/Test/Index/TestDocWriter.cfh             |    4 +-
 core/Lucy/Test/Index/TestHighlightWriter.c         |    9 +-
 core/Lucy/Test/Index/TestHighlightWriter.cfh       |    4 +-
 core/Lucy/Test/Index/TestIndexManager.c            |    9 +-
 core/Lucy/Test/Index/TestIndexManager.cfh          |    4 +-
 core/Lucy/Test/Index/TestPolyReader.c              |    9 +-
 core/Lucy/Test/Index/TestPolyReader.cfh            |    4 +-
 core/Lucy/Test/Index/TestPostingListWriter.c       |    9 +-
 core/Lucy/Test/Index/TestPostingListWriter.cfh     |    4 +-
 core/Lucy/Test/Index/TestSegWriter.c               |    9 +-
 core/Lucy/Test/Index/TestSegWriter.cfh             |    4 +-
 core/Lucy/Test/Index/TestSegment.c                 |    9 +-
 core/Lucy/Test/Index/TestSegment.cfh               |    4 +-
 core/Lucy/Test/Index/TestSnapshot.c                |    9 +-
 core/Lucy/Test/Index/TestSnapshot.cfh              |    4 +-
 core/Lucy/Test/Index/TestTermInfo.c                |    9 +-
 core/Lucy/Test/Index/TestTermInfo.cfh              |    4 +-
 core/Lucy/Test/Object/TestBitVector.c              |    9 +-
 core/Lucy/Test/Object/TestBitVector.cfh            |    4 +-
 core/Lucy/Test/Object/TestByteBuf.c                |    9 +-
 core/Lucy/Test/Object/TestByteBuf.cfh              |    4 +-
 core/Lucy/Test/Object/TestCharBuf.c                |    9 +-
 core/Lucy/Test/Object/TestCharBuf.cfh              |    4 +-
 core/Lucy/Test/Object/TestErr.c                    |    9 +-
 core/Lucy/Test/Object/TestErr.cfh                  |    4 +-
 core/Lucy/Test/Object/TestHash.c                   |    9 +-
 core/Lucy/Test/Object/TestHash.cfh                 |    4 +-
 core/Lucy/Test/Object/TestI32Array.c               |    9 +-
 core/Lucy/Test/Object/TestI32Array.cfh             |    4 +-
 core/Lucy/Test/Object/TestLockFreeRegistry.c       |    9 +-
 core/Lucy/Test/Object/TestLockFreeRegistry.cfh     |    4 +-
 core/Lucy/Test/Object/TestNum.c                    |    9 +-
 core/Lucy/Test/Object/TestNum.cfh                  |    4 +-
 core/Lucy/Test/Object/TestObj.c                    |    9 +-
 core/Lucy/Test/Object/TestObj.cfh                  |    4 +-
 core/Lucy/Test/Object/TestVArray.c                 |    9 +-
 core/Lucy/Test/Object/TestVArray.cfh               |    4 +-
 core/Lucy/Test/Plan/TestBlobType.c                 |    9 +-
 core/Lucy/Test/Plan/TestBlobType.cfh               |    4 +-
 core/Lucy/Test/Plan/TestFieldMisc.c                |    9 +-
 core/Lucy/Test/Plan/TestFieldMisc.cfh              |    4 +-
 core/Lucy/Test/Plan/TestFieldType.c                |    9 +-
 core/Lucy/Test/Plan/TestFieldType.cfh              |    4 +-
 core/Lucy/Test/Plan/TestFullTextType.c             |    9 +-
 core/Lucy/Test/Plan/TestFullTextType.cfh           |    4 +-
 core/Lucy/Test/Plan/TestNumericType.c              |    9 +-
 core/Lucy/Test/Plan/TestNumericType.cfh            |    4 +-
 core/Lucy/Test/Search/TestLeafQuery.c              |    9 +-
 core/Lucy/Test/Search/TestLeafQuery.cfh            |    4 +-
 core/Lucy/Test/Search/TestMatchAllQuery.c          |    9 +-
 core/Lucy/Test/Search/TestMatchAllQuery.cfh        |    4 +-
 core/Lucy/Test/Search/TestNOTQuery.c               |    9 +-
 core/Lucy/Test/Search/TestNOTQuery.cfh             |    4 +-
 core/Lucy/Test/Search/TestNoMatchQuery.c           |    9 +-
 core/Lucy/Test/Search/TestNoMatchQuery.cfh         |    4 +-
 core/Lucy/Test/Search/TestPhraseQuery.c            |    9 +-
 core/Lucy/Test/Search/TestPhraseQuery.cfh          |    4 +-
 core/Lucy/Test/Search/TestPolyQuery.c              |   17 +-
 core/Lucy/Test/Search/TestPolyQuery.cfh            |    8 +-
 core/Lucy/Test/Search/TestQueryParserLogic.c       |    9 +-
 core/Lucy/Test/Search/TestQueryParserLogic.cfh     |    4 +-
 core/Lucy/Test/Search/TestQueryParserSyntax.c      |    9 +-
 core/Lucy/Test/Search/TestQueryParserSyntax.cfh    |    4 +-
 core/Lucy/Test/Search/TestRangeQuery.c             |    9 +-
 core/Lucy/Test/Search/TestRangeQuery.cfh           |    4 +-
 core/Lucy/Test/Search/TestReqOptQuery.c            |    9 +-
 core/Lucy/Test/Search/TestReqOptQuery.cfh          |    4 +-
 core/Lucy/Test/Search/TestSeriesMatcher.c          |    9 +-
 core/Lucy/Test/Search/TestSeriesMatcher.cfh        |    4 +-
 core/Lucy/Test/Search/TestSortSpec.c               |    9 +-
 core/Lucy/Test/Search/TestSortSpec.cfh             |    4 +-
 core/Lucy/Test/Search/TestSpan.c                   |    9 +-
 core/Lucy/Test/Search/TestSpan.cfh                 |    4 +-
 core/Lucy/Test/Search/TestTermQuery.c              |    9 +-
 core/Lucy/Test/Search/TestTermQuery.cfh            |    4 +-
 core/Lucy/Test/Store/TestCompoundFileReader.c      |    9 +-
 core/Lucy/Test/Store/TestCompoundFileReader.cfh    |    4 +-
 core/Lucy/Test/Store/TestCompoundFileWriter.c      |    9 +-
 core/Lucy/Test/Store/TestCompoundFileWriter.cfh    |    4 +-
 core/Lucy/Test/Store/TestFSDirHandle.c             |    9 +-
 core/Lucy/Test/Store/TestFSDirHandle.cfh           |    4 +-
 core/Lucy/Test/Store/TestFSFileHandle.c            |    9 +-
 core/Lucy/Test/Store/TestFSFileHandle.cfh          |    4 +-
 core/Lucy/Test/Store/TestFSFolder.c                |    9 +-
 core/Lucy/Test/Store/TestFSFolder.cfh              |    4 +-
 core/Lucy/Test/Store/TestFileHandle.c              |    9 +-
 core/Lucy/Test/Store/TestFileHandle.cfh            |    4 +-
 core/Lucy/Test/Store/TestFolder.c                  |    9 +-
 core/Lucy/Test/Store/TestFolder.cfh                |    4 +-
 core/Lucy/Test/Store/TestIOChunks.c                |    9 +-
 core/Lucy/Test/Store/TestIOChunks.cfh              |    4 +-
 core/Lucy/Test/Store/TestIOPrimitives.c            |    9 +-
 core/Lucy/Test/Store/TestIOPrimitives.cfh          |    4 +-
 core/Lucy/Test/Store/TestInStream.c                |    9 +-
 core/Lucy/Test/Store/TestInStream.cfh              |    4 +-
 core/Lucy/Test/Store/TestRAMDirHandle.c            |    9 +-
 core/Lucy/Test/Store/TestRAMDirHandle.cfh          |    4 +-
 core/Lucy/Test/Store/TestRAMFileHandle.c           |    9 +-
 core/Lucy/Test/Store/TestRAMFileHandle.cfh         |    4 +-
 core/Lucy/Test/Store/TestRAMFolder.c               |    9 +-
 core/Lucy/Test/Store/TestRAMFolder.cfh             |    4 +-
 core/Lucy/Test/TestSchema.c                        |    9 +-
 core/Lucy/Test/TestSchema.cfh                      |    4 +-
 core/Lucy/Test/Util/TestAtomic.c                   |    9 +-
 core/Lucy/Test/Util/TestAtomic.cfh                 |    4 +-
 core/Lucy/Test/Util/TestIndexFileNames.c           |    9 +-
 core/Lucy/Test/Util/TestIndexFileNames.cfh         |    4 +-
 core/Lucy/Test/Util/TestJson.c                     |    9 +-
 core/Lucy/Test/Util/TestJson.cfh                   |    4 +-
 core/Lucy/Test/Util/TestMemory.c                   |    9 +-
 core/Lucy/Test/Util/TestMemory.cfh                 |    4 +-
 core/Lucy/Test/Util/TestMemoryPool.c               |    9 +-
 core/Lucy/Test/Util/TestMemoryPool.cfh             |    4 +-
 core/Lucy/Test/Util/TestNumberUtils.c              |    9 +-
 core/Lucy/Test/Util/TestNumberUtils.cfh            |    4 +-
 core/Lucy/Test/Util/TestPriorityQueue.c            |    9 +-
 core/Lucy/Test/Util/TestPriorityQueue.cfh          |    4 +-
 core/Lucy/Test/Util/TestStringHelper.c             |    9 +-
 core/Lucy/Test/Util/TestStringHelper.cfh           |    4 +-
 143 files changed, 582 insertions(+), 511 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Clownfish/Test/TestBatch.c
----------------------------------------------------------------------
diff --git a/core/Clownfish/Test/TestBatch.c b/core/Clownfish/Test/TestBatch.c
index 3c35aac..0119b0d 100644
--- a/core/Clownfish/Test/TestBatch.c
+++ b/core/Clownfish/Test/TestBatch.c
@@ -31,22 +31,23 @@ S_vtest_true(TestBatch *self, bool condition, const char *pattern,
              va_list args);
 
 TestBatch*
-TestBatch_new(uint32_t num_planned) {
+TestBatch_new(uint32_t num_planned, TestFormatter *formatter) {
     TestBatch *self = (TestBatch*)VTable_Make_Obj(TESTBATCH);
-    return TestBatch_init(self, num_planned);
+    return TestBatch_init(self, num_planned, formatter);
 }
 
 TestBatch*
-TestBatch_init(TestBatch *self, uint32_t num_planned) {
+TestBatch_init(TestBatch *self, uint32_t num_planned,
+               TestFormatter *formatter) {
     // Assign.
-    self->num_planned     = num_planned;
+    self->num_planned = num_planned;
+    self->formatter   = (TestFormatter*)INCREF(formatter);
 
     // Initialize.
-    self->formatter       = (TestFormatter*)TestFormatterTAP_new();
-    self->test_num        = 0;
-    self->num_passed      = 0;
-    self->num_failed      = 0;
-    self->num_skipped     = 0;
+    self->test_num    = 0;
+    self->num_passed  = 0;
+    self->num_failed  = 0;
+    self->num_skipped = 0;
 
     return self;
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Clownfish/Test/TestBatch.cfh
----------------------------------------------------------------------
diff --git a/core/Clownfish/Test/TestBatch.cfh b/core/Clownfish/Test/TestBatch.cfh
index e803248..42b84cb 100644
--- a/core/Clownfish/Test/TestBatch.cfh
+++ b/core/Clownfish/Test/TestBatch.cfh
@@ -25,10 +25,10 @@ abstract class Clownfish::Test::TestBatch inherits Clownfish::Obj {
     uint32_t       num_skipped;
 
     inert incremented TestBatch*
-    new(uint32_t num_planned);
+    new(uint32_t num_planned, TestFormatter *formatter);
 
     inert TestBatch*
-    init(TestBatch *self, uint32_t num_planned);
+    init(TestBatch *self, uint32_t num_planned, TestFormatter *formatter);
 
     public void
     Destroy(TestBatch *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test.c b/core/Lucy/Test.c
index 879e55f..e9604e9 100644
--- a/core/Lucy/Test.c
+++ b/core/Lucy/Test.c
@@ -97,80 +97,80 @@ static void
 S_unbuffer_stdout();
 
 static VArray*
-S_all_test_batches() {
+S_all_test_batches(TestFormatter *formatter) {
     VArray *batches = VA_new(0);
 
-    VA_Push(batches, (Obj*)TestPriQ_new());
-    VA_Push(batches, (Obj*)TestBitVector_new());
-    VA_Push(batches, (Obj*)TestVArray_new());
-    VA_Push(batches, (Obj*)TestHash_new());
-    VA_Push(batches, (Obj*)TestObj_new());
-    VA_Push(batches, (Obj*)TestErr_new());
-    VA_Push(batches, (Obj*)TestBB_new());
-    VA_Push(batches, (Obj*)TestMemPool_new());
-    VA_Push(batches, (Obj*)TestCB_new());
-    VA_Push(batches, (Obj*)TestNumUtil_new());
-    VA_Push(batches, (Obj*)TestNum_new());
-    VA_Push(batches, (Obj*)TestStrHelp_new());
-    VA_Push(batches, (Obj*)TestIxFileNames_new());
-    VA_Push(batches, (Obj*)TestJson_new());
-    VA_Push(batches, (Obj*)TestI32Arr_new());
-    VA_Push(batches, (Obj*)TestAtomic_new());
-    VA_Push(batches, (Obj*)TestLFReg_new());
-    VA_Push(batches, (Obj*)TestMemory_new());
-    VA_Push(batches, (Obj*)TestRAMFH_new());
-    VA_Push(batches, (Obj*)TestFSFH_new());
-    VA_Push(batches, (Obj*)TestInStream_new());
-    VA_Push(batches, (Obj*)TestFH_new());
-    VA_Push(batches, (Obj*)TestIOPrimitives_new());
-    VA_Push(batches, (Obj*)TestIOChunks_new());
-    VA_Push(batches, (Obj*)TestRAMDH_new());
-    VA_Push(batches, (Obj*)TestFSDH_new());
-    VA_Push(batches, (Obj*)TestFSFolder_new());
-    VA_Push(batches, (Obj*)TestRAMFolder_new());
-    VA_Push(batches, (Obj*)TestFolder_new());
-    VA_Push(batches, (Obj*)TestIxManager_new());
-    VA_Push(batches, (Obj*)TestCFWriter_new());
-    VA_Push(batches, (Obj*)TestCFReader_new());
-    VA_Push(batches, (Obj*)TestAnalyzer_new());
-    VA_Push(batches, (Obj*)TestPolyAnalyzer_new());
-    VA_Push(batches, (Obj*)TestCaseFolder_new());
-    VA_Push(batches, (Obj*)TestRegexTokenizer_new());
-    VA_Push(batches, (Obj*)TestSnowStop_new());
-    VA_Push(batches, (Obj*)TestSnowStemmer_new());
-    VA_Push(batches, (Obj*)TestNormalizer_new());
-    VA_Push(batches, (Obj*)TestStandardTokenizer_new());
-    VA_Push(batches, (Obj*)TestSnapshot_new());
-    VA_Push(batches, (Obj*)TestTermInfo_new());
-    VA_Push(batches, (Obj*)TestFieldMisc_new());
-    VA_Push(batches, (Obj*)TestBatchSchema_new());
-    VA_Push(batches, (Obj*)TestDocWriter_new());
-    VA_Push(batches, (Obj*)TestHLWriter_new());
-    VA_Push(batches, (Obj*)TestPListWriter_new());
-    VA_Push(batches, (Obj*)TestSegWriter_new());
-    VA_Push(batches, (Obj*)TestPolyReader_new());
-    VA_Push(batches, (Obj*)TestFullTextType_new());
-    VA_Push(batches, (Obj*)TestBlobType_new());
-    VA_Push(batches, (Obj*)TestNumericType_new());
-    VA_Push(batches, (Obj*)TestFType_new());
-    VA_Push(batches, (Obj*)TestSeg_new());
-    VA_Push(batches, (Obj*)TestHighlighter_new());
-    VA_Push(batches, (Obj*)TestSpan_new());
-    VA_Push(batches, (Obj*)TestHeatMap_new());
-    VA_Push(batches, (Obj*)TestTermQuery_new());
-    VA_Push(batches, (Obj*)TestPhraseQuery_new());
-    VA_Push(batches, (Obj*)TestSortSpec_new());
-    VA_Push(batches, (Obj*)TestRangeQuery_new());
-    VA_Push(batches, (Obj*)TestANDQuery_new());
-    VA_Push(batches, (Obj*)TestMatchAllQuery_new());
-    VA_Push(batches, (Obj*)TestNOTQuery_new());
-    VA_Push(batches, (Obj*)TestReqOptQuery_new());
-    VA_Push(batches, (Obj*)TestLeafQuery_new());
-    VA_Push(batches, (Obj*)TestNoMatchQuery_new());
-    VA_Push(batches, (Obj*)TestSeriesMatcher_new());
-    VA_Push(batches, (Obj*)TestORQuery_new());
-    VA_Push(batches, (Obj*)TestQPLogic_new());
-    VA_Push(batches, (Obj*)TestQPSyntax_new());
+    VA_Push(batches, (Obj*)TestPriQ_new(formatter));
+    VA_Push(batches, (Obj*)TestBitVector_new(formatter));
+    VA_Push(batches, (Obj*)TestVArray_new(formatter));
+    VA_Push(batches, (Obj*)TestHash_new(formatter));
+    VA_Push(batches, (Obj*)TestObj_new(formatter));
+    VA_Push(batches, (Obj*)TestErr_new(formatter));
+    VA_Push(batches, (Obj*)TestBB_new(formatter));
+    VA_Push(batches, (Obj*)TestMemPool_new(formatter));
+    VA_Push(batches, (Obj*)TestCB_new(formatter));
+    VA_Push(batches, (Obj*)TestNumUtil_new(formatter));
+    VA_Push(batches, (Obj*)TestNum_new(formatter));
+    VA_Push(batches, (Obj*)TestStrHelp_new(formatter));
+    VA_Push(batches, (Obj*)TestIxFileNames_new(formatter));
+    VA_Push(batches, (Obj*)TestJson_new(formatter));
+    VA_Push(batches, (Obj*)TestI32Arr_new(formatter));
+    VA_Push(batches, (Obj*)TestAtomic_new(formatter));
+    VA_Push(batches, (Obj*)TestLFReg_new(formatter));
+    VA_Push(batches, (Obj*)TestMemory_new(formatter));
+    VA_Push(batches, (Obj*)TestRAMFH_new(formatter));
+    VA_Push(batches, (Obj*)TestFSFH_new(formatter));
+    VA_Push(batches, (Obj*)TestInStream_new(formatter));
+    VA_Push(batches, (Obj*)TestFH_new(formatter));
+    VA_Push(batches, (Obj*)TestIOPrimitives_new(formatter));
+    VA_Push(batches, (Obj*)TestIOChunks_new(formatter));
+    VA_Push(batches, (Obj*)TestRAMDH_new(formatter));
+    VA_Push(batches, (Obj*)TestFSDH_new(formatter));
+    VA_Push(batches, (Obj*)TestFSFolder_new(formatter));
+    VA_Push(batches, (Obj*)TestRAMFolder_new(formatter));
+    VA_Push(batches, (Obj*)TestFolder_new(formatter));
+    VA_Push(batches, (Obj*)TestIxManager_new(formatter));
+    VA_Push(batches, (Obj*)TestCFWriter_new(formatter));
+    VA_Push(batches, (Obj*)TestCFReader_new(formatter));
+    VA_Push(batches, (Obj*)TestAnalyzer_new(formatter));
+    VA_Push(batches, (Obj*)TestPolyAnalyzer_new(formatter));
+    VA_Push(batches, (Obj*)TestCaseFolder_new(formatter));
+    VA_Push(batches, (Obj*)TestRegexTokenizer_new(formatter));
+    VA_Push(batches, (Obj*)TestSnowStop_new(formatter));
+    VA_Push(batches, (Obj*)TestSnowStemmer_new(formatter));
+    VA_Push(batches, (Obj*)TestNormalizer_new(formatter));
+    VA_Push(batches, (Obj*)TestStandardTokenizer_new(formatter));
+    VA_Push(batches, (Obj*)TestSnapshot_new(formatter));
+    VA_Push(batches, (Obj*)TestTermInfo_new(formatter));
+    VA_Push(batches, (Obj*)TestFieldMisc_new(formatter));
+    VA_Push(batches, (Obj*)TestBatchSchema_new(formatter));
+    VA_Push(batches, (Obj*)TestDocWriter_new(formatter));
+    VA_Push(batches, (Obj*)TestHLWriter_new(formatter));
+    VA_Push(batches, (Obj*)TestPListWriter_new(formatter));
+    VA_Push(batches, (Obj*)TestSegWriter_new(formatter));
+    VA_Push(batches, (Obj*)TestPolyReader_new(formatter));
+    VA_Push(batches, (Obj*)TestFullTextType_new(formatter));
+    VA_Push(batches, (Obj*)TestBlobType_new(formatter));
+    VA_Push(batches, (Obj*)TestNumericType_new(formatter));
+    VA_Push(batches, (Obj*)TestFType_new(formatter));
+    VA_Push(batches, (Obj*)TestSeg_new(formatter));
+    VA_Push(batches, (Obj*)TestHighlighter_new(formatter));
+    VA_Push(batches, (Obj*)TestSpan_new(formatter));
+    VA_Push(batches, (Obj*)TestHeatMap_new(formatter));
+    VA_Push(batches, (Obj*)TestTermQuery_new(formatter));
+    VA_Push(batches, (Obj*)TestPhraseQuery_new(formatter));
+    VA_Push(batches, (Obj*)TestSortSpec_new(formatter));
+    VA_Push(batches, (Obj*)TestRangeQuery_new(formatter));
+    VA_Push(batches, (Obj*)TestANDQuery_new(formatter));
+    VA_Push(batches, (Obj*)TestMatchAllQuery_new(formatter));
+    VA_Push(batches, (Obj*)TestNOTQuery_new(formatter));
+    VA_Push(batches, (Obj*)TestReqOptQuery_new(formatter));
+    VA_Push(batches, (Obj*)TestLeafQuery_new(formatter));
+    VA_Push(batches, (Obj*)TestNoMatchQuery_new(formatter));
+    VA_Push(batches, (Obj*)TestSeriesMatcher_new(formatter));
+    VA_Push(batches, (Obj*)TestORQuery_new(formatter));
+    VA_Push(batches, (Obj*)TestQPLogic_new(formatter));
+    VA_Push(batches, (Obj*)TestQPSyntax_new(formatter));
 
     return batches;
 }
@@ -179,7 +179,7 @@ bool
 Test_run_batch(CharBuf *class_name, TestFormatter *formatter) {
     S_unbuffer_stdout();
 
-    VArray   *batches = S_all_test_batches();
+    VArray   *batches = S_all_test_batches(formatter);
     uint32_t  size    = VA_Get_Size(batches);
 
     for (uint32_t i = 0; i < size; ++i) {
@@ -202,7 +202,7 @@ Test_run_all_batches(TestFormatter *formatter) {
     S_unbuffer_stdout();
 
     TestRunner *runner  = TestRunner_new(formatter);
-    VArray     *batches = S_all_test_batches();
+    VArray     *batches = S_all_test_batches(formatter);
     uint32_t    size    = VA_Get_Size(batches);
 
     for (uint32_t i = 0; i < size; ++i) {

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestAnalyzer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestAnalyzer.c b/core/Lucy/Test/Analysis/TestAnalyzer.c
index 8e2c95d..4b72f53 100644
--- a/core/Lucy/Test/Analysis/TestAnalyzer.c
+++ b/core/Lucy/Test/Analysis/TestAnalyzer.c
@@ -16,6 +16,7 @@
 
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Analysis/TestAnalyzer.h"
@@ -23,14 +24,14 @@
 #include "Lucy/Analysis/Inversion.h"
 
 TestAnalyzer*
-TestAnalyzer_new() {
+TestAnalyzer_new(TestFormatter *formatter) {
     TestAnalyzer *self = (TestAnalyzer*)VTable_Make_Obj(TESTANALYZER);
-    return TestAnalyzer_init(self);
+    return TestAnalyzer_init(self, formatter);
 }
 
 TestAnalyzer*
-TestAnalyzer_init(TestAnalyzer *self) {
-    return (TestAnalyzer*)TestBatch_init((TestBatch*)self, 3);
+TestAnalyzer_init(TestAnalyzer *self, TestFormatter *formatter) {
+    return (TestAnalyzer*)TestBatch_init((TestBatch*)self, 3, formatter);
 }
 
 DummyAnalyzer*

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestAnalyzer.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestAnalyzer.cfh b/core/Lucy/Test/Analysis/TestAnalyzer.cfh
index d8d00b9..ef9d042 100644
--- a/core/Lucy/Test/Analysis/TestAnalyzer.cfh
+++ b/core/Lucy/Test/Analysis/TestAnalyzer.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Analysis::TestAnalyzer
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestAnalyzer*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestAnalyzer*
-    init(TestAnalyzer *self);
+    init(TestAnalyzer *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestAnalyzer *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestCaseFolder.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestCaseFolder.c b/core/Lucy/Test/Analysis/TestCaseFolder.c
index 71dbcc9..b428d38 100644
--- a/core/Lucy/Test/Analysis/TestCaseFolder.c
+++ b/core/Lucy/Test/Analysis/TestCaseFolder.c
@@ -17,20 +17,21 @@
 #define C_LUCY_TESTCASEFOLDER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Analysis/TestCaseFolder.h"
 #include "Lucy/Analysis/CaseFolder.h"
 
 TestCaseFolder*
-TestCaseFolder_new() {
+TestCaseFolder_new(TestFormatter *formatter) {
     TestCaseFolder *self = (TestCaseFolder*)VTable_Make_Obj(TESTCASEFOLDER);
-    return TestCaseFolder_init(self);
+    return TestCaseFolder_init(self, formatter);
 }
 
 TestCaseFolder*
-TestCaseFolder_init(TestCaseFolder *self) {
-    return (TestCaseFolder*)TestBatch_init((TestBatch*)self, 6);
+TestCaseFolder_init(TestCaseFolder *self, TestFormatter *formatter) {
+    return (TestCaseFolder*)TestBatch_init((TestBatch*)self, 6, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestCaseFolder.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestCaseFolder.cfh b/core/Lucy/Test/Analysis/TestCaseFolder.cfh
index 2eee800..fa6d06e 100644
--- a/core/Lucy/Test/Analysis/TestCaseFolder.cfh
+++ b/core/Lucy/Test/Analysis/TestCaseFolder.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Analysis::TestCaseFolder
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestCaseFolder*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestCaseFolder*
-    init(TestCaseFolder *self);
+    init(TestCaseFolder *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestCaseFolder *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestNormalizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestNormalizer.c b/core/Lucy/Test/Analysis/TestNormalizer.c
index 4d13382..ca3e70d 100644
--- a/core/Lucy/Test/Analysis/TestNormalizer.c
+++ b/core/Lucy/Test/Analysis/TestNormalizer.c
@@ -18,6 +18,7 @@
 #define C_LUCY_NORMALIZER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Analysis/TestNormalizer.h"
 #include "Lucy/Analysis/Normalizer.h"
@@ -25,14 +26,14 @@
 #include "Lucy/Util/Json.h"
 
 TestNormalizer*
-TestNormalizer_new() {
+TestNormalizer_new(TestFormatter *formatter) {
     TestNormalizer *self = (TestNormalizer*)VTable_Make_Obj(TESTNORMALIZER);
-    return TestNormalizer_init(self);
+    return TestNormalizer_init(self, formatter);
 }
 
 TestNormalizer*
-TestNormalizer_init(TestNormalizer *self) {
-    return (TestNormalizer*)TestBatch_init((TestBatch*)self, 20);
+TestNormalizer_init(TestNormalizer *self, TestFormatter *formatter) {
+    return (TestNormalizer*)TestBatch_init((TestBatch*)self, 20, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestNormalizer.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestNormalizer.cfh b/core/Lucy/Test/Analysis/TestNormalizer.cfh
index db4654e..40e2917 100644
--- a/core/Lucy/Test/Analysis/TestNormalizer.cfh
+++ b/core/Lucy/Test/Analysis/TestNormalizer.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Analysis::TestNormalizer
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestNormalizer*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestNormalizer*
-    init(TestNormalizer *self);
+    init(TestNormalizer *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestNormalizer *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestPolyAnalyzer.c b/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
index 8a15808..1d1e030 100644
--- a/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
+++ b/core/Lucy/Test/Analysis/TestPolyAnalyzer.c
@@ -17,6 +17,7 @@
 #define C_LUCY_TESTPOLYANALYZER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Analysis/TestPolyAnalyzer.h"
@@ -27,14 +28,14 @@
 #include "Lucy/Analysis/StandardTokenizer.h"
 
 TestPolyAnalyzer*
-TestPolyAnalyzer_new() {
+TestPolyAnalyzer_new(TestFormatter *formatter) {
     TestPolyAnalyzer *self = (TestPolyAnalyzer*)VTable_Make_Obj(TESTPOLYANALYZER);
-    return TestPolyAnalyzer_init(self);
+    return TestPolyAnalyzer_init(self, formatter);
 }
 
 TestPolyAnalyzer*
-TestPolyAnalyzer_init(TestPolyAnalyzer *self) {
-    return (TestPolyAnalyzer*)TestBatch_init((TestBatch*)self, 19);
+TestPolyAnalyzer_init(TestPolyAnalyzer *self, TestFormatter *formatter) {
+    return (TestPolyAnalyzer*)TestBatch_init((TestBatch*)self, 19, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestPolyAnalyzer.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestPolyAnalyzer.cfh b/core/Lucy/Test/Analysis/TestPolyAnalyzer.cfh
index cb75109..e6f94f9 100644
--- a/core/Lucy/Test/Analysis/TestPolyAnalyzer.cfh
+++ b/core/Lucy/Test/Analysis/TestPolyAnalyzer.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Analysis::TestPolyAnalyzer
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestPolyAnalyzer*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestPolyAnalyzer*
-    init(TestPolyAnalyzer *self);
+    init(TestPolyAnalyzer *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestPolyAnalyzer *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestRegexTokenizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestRegexTokenizer.c b/core/Lucy/Test/Analysis/TestRegexTokenizer.c
index ab19eff..9208f62 100644
--- a/core/Lucy/Test/Analysis/TestRegexTokenizer.c
+++ b/core/Lucy/Test/Analysis/TestRegexTokenizer.c
@@ -17,20 +17,21 @@
 #define C_LUCY_TESTREGEXTOKENIZER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Analysis/TestRegexTokenizer.h"
 #include "Lucy/Analysis/RegexTokenizer.h"
 
 
 TestRegexTokenizer*
-TestRegexTokenizer_new() {
+TestRegexTokenizer_new(TestFormatter *formatter) {
     TestRegexTokenizer *self = (TestRegexTokenizer*)VTable_Make_Obj(TESTREGEXTOKENIZER);
-    return TestRegexTokenizer_init(self);
+    return TestRegexTokenizer_init(self, formatter);
 }
 
 TestRegexTokenizer*
-TestRegexTokenizer_init(TestRegexTokenizer *self) {
-    return (TestRegexTokenizer*)TestBatch_init((TestBatch*)self, 3);
+TestRegexTokenizer_init(TestRegexTokenizer *self, TestFormatter *formatter) {
+    return (TestRegexTokenizer*)TestBatch_init((TestBatch*)self, 3, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestRegexTokenizer.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestRegexTokenizer.cfh b/core/Lucy/Test/Analysis/TestRegexTokenizer.cfh
index 971092a..bbaab59 100644
--- a/core/Lucy/Test/Analysis/TestRegexTokenizer.cfh
+++ b/core/Lucy/Test/Analysis/TestRegexTokenizer.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Analysis::TestRegexTokenizer
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestRegexTokenizer*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestRegexTokenizer*
-    init(TestRegexTokenizer *self);
+    init(TestRegexTokenizer *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestRegexTokenizer *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestSnowballStemmer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestSnowballStemmer.c b/core/Lucy/Test/Analysis/TestSnowballStemmer.c
index e6d62e0..043e5ee 100644
--- a/core/Lucy/Test/Analysis/TestSnowballStemmer.c
+++ b/core/Lucy/Test/Analysis/TestSnowballStemmer.c
@@ -17,6 +17,7 @@
 #define C_LUCY_TESTSNOWBALLSTEMMER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Analysis/TestSnowballStemmer.h"
 #include "Lucy/Analysis/SnowballStemmer.h"
@@ -24,14 +25,14 @@
 #include "Lucy/Util/Json.h"
 
 TestSnowballStemmer*
-TestSnowStemmer_new() {
+TestSnowStemmer_new(TestFormatter *formatter) {
     TestSnowballStemmer *self = (TestSnowballStemmer*)VTable_Make_Obj(TESTSNOWBALLSTEMMER);
-    return TestSnowStemmer_init(self);
+    return TestSnowStemmer_init(self, formatter);
 }
 
 TestSnowballStemmer*
-TestSnowStemmer_init(TestSnowballStemmer *self) {
-    return (TestSnowballStemmer*)TestBatch_init((TestBatch*)self, 153);
+TestSnowStemmer_init(TestSnowballStemmer *self, TestFormatter *formatter) {
+    return (TestSnowballStemmer*)TestBatch_init((TestBatch*)self, 153, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestSnowballStemmer.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestSnowballStemmer.cfh b/core/Lucy/Test/Analysis/TestSnowballStemmer.cfh
index 63d132e..208d85b 100644
--- a/core/Lucy/Test/Analysis/TestSnowballStemmer.cfh
+++ b/core/Lucy/Test/Analysis/TestSnowballStemmer.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Analysis::TestSnowballStemmer cnick TestSnowStemmer
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestSnowballStemmer*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestSnowballStemmer*
-    init(TestSnowballStemmer *self);
+    init(TestSnowballStemmer *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestSnowballStemmer *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestSnowballStopFilter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestSnowballStopFilter.c b/core/Lucy/Test/Analysis/TestSnowballStopFilter.c
index c85a0e7..3d11015 100644
--- a/core/Lucy/Test/Analysis/TestSnowballStopFilter.c
+++ b/core/Lucy/Test/Analysis/TestSnowballStopFilter.c
@@ -17,19 +17,20 @@
 #define C_LUCY_TESTSNOWBALLSTOPFILTER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Analysis/TestSnowballStopFilter.h"
 #include "Lucy/Analysis/SnowballStopFilter.h"
 
 TestSnowballStopFilter*
-TestSnowStop_new() {
+TestSnowStop_new(TestFormatter *formatter) {
     TestSnowballStopFilter *self = (TestSnowballStopFilter*)VTable_Make_Obj(TESTSNOWBALLSTOPFILTER);
-    return TestSnowStop_init(self);
+    return TestSnowStop_init(self, formatter);
 }
 
 TestSnowballStopFilter*
-TestSnowStop_init(TestSnowballStopFilter *self) {
-    return (TestSnowballStopFilter*)TestBatch_init((TestBatch*)self, 3);
+TestSnowStop_init(TestSnowballStopFilter *self, TestFormatter *formatter) {
+    return (TestSnowballStopFilter*)TestBatch_init((TestBatch*)self, 3, formatter);
 }
 
 static SnowballStopFilter*

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestSnowballStopFilter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestSnowballStopFilter.cfh b/core/Lucy/Test/Analysis/TestSnowballStopFilter.cfh
index b345896..6cb74e6 100644
--- a/core/Lucy/Test/Analysis/TestSnowballStopFilter.cfh
+++ b/core/Lucy/Test/Analysis/TestSnowballStopFilter.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Analysis::TestSnowballStopFilter cnick TestSnowStop
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestSnowballStopFilter*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestSnowballStopFilter*
-    init(TestSnowballStopFilter *self);
+    init(TestSnowballStopFilter *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestSnowballStopFilter *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestStandardTokenizer.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestStandardTokenizer.c b/core/Lucy/Test/Analysis/TestStandardTokenizer.c
index c9de950..b7851a6 100644
--- a/core/Lucy/Test/Analysis/TestStandardTokenizer.c
+++ b/core/Lucy/Test/Analysis/TestStandardTokenizer.c
@@ -17,6 +17,7 @@
 #define C_LUCY_TESTSTANDARDTOKENIZER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Analysis/TestStandardTokenizer.h"
 #include "Lucy/Analysis/StandardTokenizer.h"
@@ -24,14 +25,14 @@
 #include "Lucy/Util/Json.h"
 
 TestStandardTokenizer*
-TestStandardTokenizer_new() {
+TestStandardTokenizer_new(TestFormatter *formatter) {
     TestStandardTokenizer *self = (TestStandardTokenizer*)VTable_Make_Obj(TESTSTANDARDTOKENIZER);
-    return TestStandardTokenizer_init(self);
+    return TestStandardTokenizer_init(self, formatter);
 }
 
 TestStandardTokenizer*
-TestStandardTokenizer_init(TestStandardTokenizer *self) {
-    return (TestStandardTokenizer*)TestBatch_init((TestBatch*)self, 984);
+TestStandardTokenizer_init(TestStandardTokenizer *self, TestFormatter *formatter) {
+    return (TestStandardTokenizer*)TestBatch_init((TestBatch*)self, 984, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Analysis/TestStandardTokenizer.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Analysis/TestStandardTokenizer.cfh b/core/Lucy/Test/Analysis/TestStandardTokenizer.cfh
index c7a16b0..0d45263 100644
--- a/core/Lucy/Test/Analysis/TestStandardTokenizer.cfh
+++ b/core/Lucy/Test/Analysis/TestStandardTokenizer.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Analysis::TestStandardTokenizer
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestStandardTokenizer*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestStandardTokenizer*
-    init(TestStandardTokenizer *self);
+    init(TestStandardTokenizer *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestStandardTokenizer *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Highlight/TestHeatMap.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Highlight/TestHeatMap.c b/core/Lucy/Test/Highlight/TestHeatMap.c
index 7764dd9..9e2bd37 100644
--- a/core/Lucy/Test/Highlight/TestHeatMap.c
+++ b/core/Lucy/Test/Highlight/TestHeatMap.c
@@ -16,6 +16,7 @@
 
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Highlight/TestHeatMap.h"
 #include "Lucy/Highlight/HeatMap.h"
@@ -23,14 +24,14 @@
 #include "Lucy/Search/Span.h"
 
 TestHeatMap*
-TestHeatMap_new() {
+TestHeatMap_new(TestFormatter *formatter) {
     TestHeatMap *self = (TestHeatMap*)VTable_Make_Obj(TESTHEATMAP);
-    return TestHeatMap_init(self);
+    return TestHeatMap_init(self, formatter);
 }
 
 TestHeatMap*
-TestHeatMap_init(TestHeatMap *self) {
-    return (TestHeatMap*)TestBatch_init((TestBatch*)self, 13);
+TestHeatMap_init(TestHeatMap *self, TestFormatter *formatter) {
+    return (TestHeatMap*)TestBatch_init((TestBatch*)self, 13, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Highlight/TestHeatMap.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Highlight/TestHeatMap.cfh b/core/Lucy/Test/Highlight/TestHeatMap.cfh
index e9cc7b8..4d1997b 100644
--- a/core/Lucy/Test/Highlight/TestHeatMap.cfh
+++ b/core/Lucy/Test/Highlight/TestHeatMap.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Highlight::TestHeatMap
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestHeatMap*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestHeatMap*
-    init(TestHeatMap *self);
+    init(TestHeatMap *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestHeatMap *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Highlight/TestHighlighter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Highlight/TestHighlighter.c b/core/Lucy/Test/Highlight/TestHighlighter.c
index f062218..769f22e 100644
--- a/core/Lucy/Test/Highlight/TestHighlighter.c
+++ b/core/Lucy/Test/Highlight/TestHighlighter.c
@@ -17,6 +17,7 @@
 #define C_LUCY_TESTHIGHLIGHTER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Highlight/TestHighlighter.h"
 #include "Lucy/Highlight/Highlighter.h"
@@ -51,14 +52,14 @@
 #define TEST_STRING_LEN 425
 
 TestHighlighter*
-TestHighlighter_new() {
+TestHighlighter_new(TestFormatter *formatter) {
     TestHighlighter *self = (TestHighlighter*)VTable_Make_Obj(TESTHIGHLIGHTER);
-    return TestHighlighter_init(self);
+    return TestHighlighter_init(self, formatter);
 }
 
 TestHighlighter*
-TestHighlighter_init(TestHighlighter *self) {
-    return (TestHighlighter*)TestBatch_init((TestBatch*)self, 35);
+TestHighlighter_init(TestHighlighter *self, TestFormatter *formatter) {
+    return (TestHighlighter*)TestBatch_init((TestBatch*)self, 35, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Highlight/TestHighlighter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Highlight/TestHighlighter.cfh b/core/Lucy/Test/Highlight/TestHighlighter.cfh
index 609e17e..3ded317 100644
--- a/core/Lucy/Test/Highlight/TestHighlighter.cfh
+++ b/core/Lucy/Test/Highlight/TestHighlighter.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Highlight::TestHighlighter
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestHighlighter*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestHighlighter*
-    init(TestHighlighter *self);
+    init(TestHighlighter *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestHighlighter *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestDocWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestDocWriter.c b/core/Lucy/Test/Index/TestDocWriter.c
index bb72b6e..6af446e 100644
--- a/core/Lucy/Test/Index/TestDocWriter.c
+++ b/core/Lucy/Test/Index/TestDocWriter.c
@@ -17,19 +17,20 @@
 #define C_LUCY_TESTDOCWRITER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestDocWriter.h"
 #include "Lucy/Index/DocWriter.h"
 
 TestDocWriter*
-TestDocWriter_new() {
+TestDocWriter_new(TestFormatter *formatter) {
     TestDocWriter *self = (TestDocWriter*)VTable_Make_Obj(TESTDOCWRITER);
-    return TestDocWriter_init(self);
+    return TestDocWriter_init(self, formatter);
 }
 
 TestDocWriter*
-TestDocWriter_init(TestDocWriter *self) {
-    return (TestDocWriter*)TestBatch_init((TestBatch*)self, 1);
+TestDocWriter_init(TestDocWriter *self, TestFormatter *formatter) {
+    return (TestDocWriter*)TestBatch_init((TestBatch*)self, 1, formatter);
 }
 
 void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestDocWriter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestDocWriter.cfh b/core/Lucy/Test/Index/TestDocWriter.cfh
index ccf8ffc..b43adf1 100644
--- a/core/Lucy/Test/Index/TestDocWriter.cfh
+++ b/core/Lucy/Test/Index/TestDocWriter.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Index::TestDocWriter
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestDocWriter*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestDocWriter*
-    init(TestDocWriter *self);
+    init(TestDocWriter *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestDocWriter *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestHighlightWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestHighlightWriter.c b/core/Lucy/Test/Index/TestHighlightWriter.c
index afe9010..821c6b1 100644
--- a/core/Lucy/Test/Index/TestHighlightWriter.c
+++ b/core/Lucy/Test/Index/TestHighlightWriter.c
@@ -17,19 +17,20 @@
 #define C_LUCY_TESTHIGHLIGHTWRITER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestHighlightWriter.h"
 #include "Lucy/Index/HighlightWriter.h"
 
 TestHighlightWriter*
-TestHLWriter_new() {
+TestHLWriter_new(TestFormatter *formatter) {
     TestHighlightWriter *self = (TestHighlightWriter*)VTable_Make_Obj(TESTHIGHLIGHTWRITER);
-    return TestHLWriter_init(self);
+    return TestHLWriter_init(self, formatter);
 }
 
 TestHighlightWriter*
-TestHLWriter_init(TestHighlightWriter *self) {
-    return (TestHighlightWriter*)TestBatch_init((TestBatch*)self, 1);
+TestHLWriter_init(TestHighlightWriter *self, TestFormatter *formatter) {
+    return (TestHighlightWriter*)TestBatch_init((TestBatch*)self, 1, formatter);
 }
 
 void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestHighlightWriter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestHighlightWriter.cfh b/core/Lucy/Test/Index/TestHighlightWriter.cfh
index 42d2ebc..7291f1b 100644
--- a/core/Lucy/Test/Index/TestHighlightWriter.cfh
+++ b/core/Lucy/Test/Index/TestHighlightWriter.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Index::TestHighlightWriter cnick TestHLWriter
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestHighlightWriter*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestHighlightWriter*
-    init(TestHighlightWriter *self);
+    init(TestHighlightWriter *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestHighlightWriter *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestIndexManager.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestIndexManager.c b/core/Lucy/Test/Index/TestIndexManager.c
index d72a576..0aec551 100644
--- a/core/Lucy/Test/Index/TestIndexManager.c
+++ b/core/Lucy/Test/Index/TestIndexManager.c
@@ -16,19 +16,20 @@
 
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestIndexManager.h"
 #include "Lucy/Index/IndexManager.h"
 
 TestIndexManager*
-TestIxManager_new() {
+TestIxManager_new(TestFormatter *formatter) {
     TestIndexManager *self = (TestIndexManager*)VTable_Make_Obj(TESTINDEXMANAGER);
-    return TestIxManager_init(self);
+    return TestIxManager_init(self, formatter);
 }
 
 TestIndexManager*
-TestIxManager_init(TestIndexManager *self) {
-    return (TestIndexManager*)TestBatch_init((TestBatch*)self, 34);
+TestIxManager_init(TestIndexManager *self, TestFormatter *formatter) {
+    return (TestIndexManager*)TestBatch_init((TestBatch*)self, 34, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestIndexManager.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestIndexManager.cfh b/core/Lucy/Test/Index/TestIndexManager.cfh
index 2584edf..71e05bc 100644
--- a/core/Lucy/Test/Index/TestIndexManager.cfh
+++ b/core/Lucy/Test/Index/TestIndexManager.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Index::TestIndexManager cnick TestIxManager
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestIndexManager*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestIndexManager*
-    init(TestIndexManager *self);
+    init(TestIndexManager *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestIndexManager *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestPolyReader.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestPolyReader.c b/core/Lucy/Test/Index/TestPolyReader.c
index 9689756..5ec243b 100644
--- a/core/Lucy/Test/Index/TestPolyReader.c
+++ b/core/Lucy/Test/Index/TestPolyReader.c
@@ -17,19 +17,20 @@
 #define C_LUCY_TESTPOLYREADER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestPolyReader.h"
 #include "Lucy/Index/PolyReader.h"
 
 TestPolyReader*
-TestPolyReader_new() {
+TestPolyReader_new(TestFormatter *formatter) {
     TestPolyReader *self = (TestPolyReader*)VTable_Make_Obj(TESTPOLYREADER);
-    return TestPolyReader_init(self);
+    return TestPolyReader_init(self, formatter);
 }
 
 TestPolyReader*
-TestPolyReader_init(TestPolyReader *self) {
-    return (TestPolyReader*)TestBatch_init((TestBatch*)self, 1);
+TestPolyReader_init(TestPolyReader *self, TestFormatter *formatter) {
+    return (TestPolyReader*)TestBatch_init((TestBatch*)self, 1, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestPolyReader.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestPolyReader.cfh b/core/Lucy/Test/Index/TestPolyReader.cfh
index b641536..74b9456 100644
--- a/core/Lucy/Test/Index/TestPolyReader.cfh
+++ b/core/Lucy/Test/Index/TestPolyReader.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Index::TestPolyReader
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestPolyReader*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestPolyReader*
-    init(TestPolyReader *self);
+    init(TestPolyReader *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestPolyReader *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestPostingListWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestPostingListWriter.c b/core/Lucy/Test/Index/TestPostingListWriter.c
index 21a79ae..09cbf20 100644
--- a/core/Lucy/Test/Index/TestPostingListWriter.c
+++ b/core/Lucy/Test/Index/TestPostingListWriter.c
@@ -17,18 +17,19 @@
 #define C_LUCY_TESTPOSTINGLISTWRITER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestPostingListWriter.h"
 
 TestPostingListWriter*
-TestPListWriter_new() {
+TestPListWriter_new(TestFormatter *formatter) {
     TestPostingListWriter *self = (TestPostingListWriter*)VTable_Make_Obj(TESTPOSTINGLISTWRITER);
-    return TestPListWriter_init(self);
+    return TestPListWriter_init(self, formatter);
 }
 
 TestPostingListWriter*
-TestPListWriter_init(TestPostingListWriter *self) {
-    return (TestPostingListWriter*)TestBatch_init((TestBatch*)self, 1);
+TestPListWriter_init(TestPostingListWriter *self, TestFormatter *formatter) {
+    return (TestPostingListWriter*)TestBatch_init((TestBatch*)self, 1, formatter);
 }
 
 void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestPostingListWriter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestPostingListWriter.cfh b/core/Lucy/Test/Index/TestPostingListWriter.cfh
index f8e1849..8c5f5dd 100644
--- a/core/Lucy/Test/Index/TestPostingListWriter.cfh
+++ b/core/Lucy/Test/Index/TestPostingListWriter.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Index::TestPostingListWriter cnick TestPListWriter
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestPostingListWriter*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestPostingListWriter*
-    init(TestPostingListWriter *self);
+    init(TestPostingListWriter *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestPostingListWriter *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestSegWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSegWriter.c b/core/Lucy/Test/Index/TestSegWriter.c
index bff3e82..86801bf 100644
--- a/core/Lucy/Test/Index/TestSegWriter.c
+++ b/core/Lucy/Test/Index/TestSegWriter.c
@@ -17,19 +17,20 @@
 #define C_LUCY_TESTSEGWRITER
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestSegWriter.h"
 #include "Lucy/Index/SegWriter.h"
 
 TestSegWriter*
-TestSegWriter_new() {
+TestSegWriter_new(TestFormatter *formatter) {
     TestSegWriter *self = (TestSegWriter*)VTable_Make_Obj(TESTSEGWRITER);
-    return TestSegWriter_init(self);
+    return TestSegWriter_init(self, formatter);
 }
 
 TestSegWriter*
-TestSegWriter_init(TestSegWriter *self) {
-    return (TestSegWriter*)TestBatch_init((TestBatch*)self, 1);
+TestSegWriter_init(TestSegWriter *self, TestFormatter *formatter) {
+    return (TestSegWriter*)TestBatch_init((TestBatch*)self, 1, formatter);
 }
 
 void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestSegWriter.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSegWriter.cfh b/core/Lucy/Test/Index/TestSegWriter.cfh
index 94f8a41..a55c877 100644
--- a/core/Lucy/Test/Index/TestSegWriter.cfh
+++ b/core/Lucy/Test/Index/TestSegWriter.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Index::TestSegWriter
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestSegWriter*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestSegWriter*
-    init(TestSegWriter *self);
+    init(TestSegWriter *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestSegWriter *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestSegment.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSegment.c b/core/Lucy/Test/Index/TestSegment.c
index a98eca0..a802576 100644
--- a/core/Lucy/Test/Index/TestSegment.c
+++ b/core/Lucy/Test/Index/TestSegment.c
@@ -17,20 +17,21 @@
 #define C_LUCY_TESTSEG
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestSegment.h"
 #include "Lucy/Index/Segment.h"
 #include "Lucy/Store/RAMFolder.h"
 
 TestSegment*
-TestSeg_new() {
+TestSeg_new(TestFormatter *formatter) {
     TestSegment *self = (TestSegment*)VTable_Make_Obj(TESTSEGMENT);
-    return TestSeg_init(self);
+    return TestSeg_init(self, formatter);
 }
 
 TestSegment*
-TestSeg_init(TestSegment *self) {
-    return (TestSegment*)TestBatch_init((TestBatch*)self, 21);
+TestSeg_init(TestSegment *self, TestFormatter *formatter) {
+    return (TestSegment*)TestBatch_init((TestBatch*)self, 21, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestSegment.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSegment.cfh b/core/Lucy/Test/Index/TestSegment.cfh
index c8278ef..237d843 100644
--- a/core/Lucy/Test/Index/TestSegment.cfh
+++ b/core/Lucy/Test/Index/TestSegment.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Index::TestSegment cnick TestSeg
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestSegment*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestSegment*
-    init(TestSegment *self);
+    init(TestSegment *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestSegment *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestSnapshot.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSnapshot.c b/core/Lucy/Test/Index/TestSnapshot.c
index e4ec3da..a0bbfa7 100644
--- a/core/Lucy/Test/Index/TestSnapshot.c
+++ b/core/Lucy/Test/Index/TestSnapshot.c
@@ -16,20 +16,21 @@
 
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestSnapshot.h"
 #include "Lucy/Index/Snapshot.h"
 #include "Lucy/Store/RAMFolder.h"
 
 TestSnapshot*
-TestSnapshot_new() {
+TestSnapshot_new(TestFormatter *formatter) {
     TestSnapshot *self = (TestSnapshot*)VTable_Make_Obj(TESTSNAPSHOT);
-    return TestSnapshot_init(self);
+    return TestSnapshot_init(self, formatter);
 }
 
 TestSnapshot*
-TestSnapshot_init(TestSnapshot *self) {
-    return (TestSnapshot*)TestBatch_init((TestBatch*)self, 9);
+TestSnapshot_init(TestSnapshot *self, TestFormatter *formatter) {
+    return (TestSnapshot*)TestBatch_init((TestBatch*)self, 9, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestSnapshot.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestSnapshot.cfh b/core/Lucy/Test/Index/TestSnapshot.cfh
index 06f6e72..4be6876 100644
--- a/core/Lucy/Test/Index/TestSnapshot.cfh
+++ b/core/Lucy/Test/Index/TestSnapshot.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Index::TestSnapshot
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestSnapshot*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestSnapshot*
-    init(TestSnapshot *self);
+    init(TestSnapshot *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestSnapshot *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestTermInfo.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestTermInfo.c b/core/Lucy/Test/Index/TestTermInfo.c
index 902d5f4..c6f996b 100644
--- a/core/Lucy/Test/Index/TestTermInfo.c
+++ b/core/Lucy/Test/Index/TestTermInfo.c
@@ -17,19 +17,20 @@
 #define C_LUCY_TESTTERMINFO
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Index/TestTermInfo.h"
 #include "Lucy/Index/TermInfo.h"
 
 TestTermInfo*
-TestTermInfo_new() {
+TestTermInfo_new(TestFormatter *formatter) {
     TestTermInfo *self = (TestTermInfo*)VTable_Make_Obj(TESTTERMINFO);
-    return TestTermInfo_init(self);
+    return TestTermInfo_init(self, formatter);
 }
 
 TestTermInfo*
-TestTermInfo_init(TestTermInfo *self) {
-    return (TestTermInfo*)TestBatch_init((TestBatch*)self, 11);
+TestTermInfo_init(TestTermInfo *self, TestFormatter *formatter) {
+    return (TestTermInfo*)TestBatch_init((TestBatch*)self, 11, formatter);
 }
 
 void 

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Index/TestTermInfo.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Index/TestTermInfo.cfh b/core/Lucy/Test/Index/TestTermInfo.cfh
index 83592d8..c98bc30 100644
--- a/core/Lucy/Test/Index/TestTermInfo.cfh
+++ b/core/Lucy/Test/Index/TestTermInfo.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Index::TestTermInfo
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestTermInfo*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestTermInfo*
-    init(TestTermInfo *self);
+    init(TestTermInfo *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestTermInfo *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestBitVector.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestBitVector.c b/core/Lucy/Test/Object/TestBitVector.c
index 46868f6..6913d6b 100644
--- a/core/Lucy/Test/Object/TestBitVector.c
+++ b/core/Lucy/Test/Object/TestBitVector.c
@@ -17,19 +17,20 @@
 #define C_LUCY_TESTBITVECTOR
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Object/TestBitVector.h"
 
 TestBitVector*
-TestBitVector_new() {
+TestBitVector_new(TestFormatter *formatter) {
     TestBitVector *self = (TestBitVector*)VTable_Make_Obj(TESTBITVECTOR);
-    return TestBitVector_init(self);
+    return TestBitVector_init(self, formatter);
 }
 
 TestBitVector*
-TestBitVector_init(TestBitVector *self) {
-    return (TestBitVector*)TestBatch_init((TestBatch*)self, 1029);
+TestBitVector_init(TestBitVector *self, TestFormatter *formatter) {
+    return (TestBitVector*)TestBatch_init((TestBatch*)self, 1029, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestBitVector.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestBitVector.cfh b/core/Lucy/Test/Object/TestBitVector.cfh
index 198d697..99a1338 100644
--- a/core/Lucy/Test/Object/TestBitVector.cfh
+++ b/core/Lucy/Test/Object/TestBitVector.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Object::TestBitVector
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestBitVector*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestBitVector*
-    init(TestBitVector *self);
+    init(TestBitVector *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestBitVector *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestByteBuf.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestByteBuf.c b/core/Lucy/Test/Object/TestByteBuf.c
index ab7e7ed..9143b56 100644
--- a/core/Lucy/Test/Object/TestByteBuf.c
+++ b/core/Lucy/Test/Object/TestByteBuf.c
@@ -17,19 +17,20 @@
 #define C_LUCY_TESTBYTEBUF
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Object/TestByteBuf.h"
 
 TestByteBuf*
-TestBB_new() {
+TestBB_new(TestFormatter *formatter) {
     TestByteBuf *self = (TestByteBuf*)VTable_Make_Obj(TESTBYTEBUF);
-    return TestBB_init(self);
+    return TestBB_init(self, formatter);
 }
 
 TestByteBuf*
-TestBB_init(TestByteBuf *self) {
-    return (TestByteBuf*)TestBatch_init((TestBatch*)self, 22);
+TestBB_init(TestByteBuf *self, TestFormatter *formatter) {
+    return (TestByteBuf*)TestBatch_init((TestBatch*)self, 22, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestByteBuf.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestByteBuf.cfh b/core/Lucy/Test/Object/TestByteBuf.cfh
index ba1ffe8..ad4fabe 100644
--- a/core/Lucy/Test/Object/TestByteBuf.cfh
+++ b/core/Lucy/Test/Object/TestByteBuf.cfh
@@ -21,10 +21,10 @@ class Lucy::Test::Object::TestByteBuf cnick TestBB
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestByteBuf*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestByteBuf*
-    init(TestByteBuf *self);
+    init(TestByteBuf *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestByteBuf *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestCharBuf.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestCharBuf.c b/core/Lucy/Test/Object/TestCharBuf.c
index 76f2793..1e95345 100644
--- a/core/Lucy/Test/Object/TestCharBuf.c
+++ b/core/Lucy/Test/Object/TestCharBuf.c
@@ -19,6 +19,7 @@
 #include <string.h>
 #include <stdio.h>
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Object/TestCharBuf.h"
@@ -27,14 +28,14 @@ static char smiley[] = { (char)0xE2, (char)0x98, (char)0xBA, 0 };
 static uint32_t smiley_len = 3;
 
 TestCharBuf*
-TestCB_new() {
+TestCB_new(TestFormatter *formatter) {
     TestCharBuf *self = (TestCharBuf*)VTable_Make_Obj(TESTCHARBUF);
-    return TestCB_init(self);
+    return TestCB_init(self, formatter);
 }
 
 TestCharBuf*
-TestCB_init(TestCharBuf *self) {
-    return (TestCharBuf*)TestBatch_init((TestBatch*)self, 55);
+TestCB_init(TestCharBuf *self, TestFormatter *formatter) {
+    return (TestCharBuf*)TestBatch_init((TestBatch*)self, 55, formatter);
 }
 
 static CharBuf*

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestCharBuf.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestCharBuf.cfh b/core/Lucy/Test/Object/TestCharBuf.cfh
index 4cd8c2f..0e70e40 100644
--- a/core/Lucy/Test/Object/TestCharBuf.cfh
+++ b/core/Lucy/Test/Object/TestCharBuf.cfh
@@ -21,10 +21,10 @@ class Lucy::Test::Object::TestCharBuf cnick TestCB
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestCharBuf*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestCharBuf*
-    init(TestCharBuf *self);
+    init(TestCharBuf *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestCharBuf *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestErr.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestErr.c b/core/Lucy/Test/Object/TestErr.c
index 81d6cf4..5cbd365 100644
--- a/core/Lucy/Test/Object/TestErr.c
+++ b/core/Lucy/Test/Object/TestErr.c
@@ -16,20 +16,21 @@
 
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Object/TestErr.h"
 #include "Clownfish/Err.h"
 
 TestErr*
-TestErr_new() {
+TestErr_new(TestFormatter *formatter) {
     TestErr *self = (TestErr*)VTable_Make_Obj(TESTERR);
-    return TestErr_init(self);
+    return TestErr_init(self, formatter);
 }
 
 TestErr*
-TestErr_init(TestErr *self) {
-    return (TestErr*)TestBatch_init((TestBatch*)self, 1);
+TestErr_init(TestErr *self, TestFormatter *formatter) {
+    return (TestErr*)TestBatch_init((TestBatch*)self, 1, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestErr.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestErr.cfh b/core/Lucy/Test/Object/TestErr.cfh
index 2954e3d..316512f 100644
--- a/core/Lucy/Test/Object/TestErr.cfh
+++ b/core/Lucy/Test/Object/TestErr.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Object::TestErr
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestErr*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestErr*
-    init(TestErr *self);
+    init(TestErr *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestErr *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestHash.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestHash.c b/core/Lucy/Test/Object/TestHash.c
index dcf329c..635d8e1 100644
--- a/core/Lucy/Test/Object/TestHash.c
+++ b/core/Lucy/Test/Object/TestHash.c
@@ -18,20 +18,21 @@
 #include <stdlib.h>
 #include <time.h>
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Object/TestHash.h"
 #include "Clownfish/Hash.h"
 
 TestHash*
-TestHash_new() {
+TestHash_new(TestFormatter *formatter) {
     TestHash *self = (TestHash*)VTable_Make_Obj(TESTHASH);
-    return TestHash_init(self);
+    return TestHash_init(self, formatter);
 }
 
 TestHash*
-TestHash_init(TestHash *self) {
-    return (TestHash*)TestBatch_init((TestBatch*)self, 29);
+TestHash_init(TestHash *self, TestFormatter *formatter) {
+    return (TestHash*)TestBatch_init((TestBatch*)self, 29, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestHash.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestHash.cfh b/core/Lucy/Test/Object/TestHash.cfh
index 4ef2939..95dd31d 100644
--- a/core/Lucy/Test/Object/TestHash.cfh
+++ b/core/Lucy/Test/Object/TestHash.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Object::TestHash
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestHash*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestHash*
-    init(TestHash *self);
+    init(TestHash *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestHash *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestI32Array.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestI32Array.c b/core/Lucy/Test/Object/TestI32Array.c
index 624dd06..7c2550f 100644
--- a/core/Lucy/Test/Object/TestI32Array.c
+++ b/core/Lucy/Test/Object/TestI32Array.c
@@ -17,6 +17,7 @@
 #define C_LUCY_TESTI32ARRAY
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Object/TestI32Array.h"
 
@@ -24,14 +25,14 @@ static int32_t source_ints[] = { -1, 0, INT32_MIN, INT32_MAX, 1 };
 static size_t num_ints = sizeof(source_ints) / sizeof(int32_t);
 
 TestI32Array*
-TestI32Arr_new() {
+TestI32Arr_new(TestFormatter *formatter) {
     TestI32Array *self = (TestI32Array*)VTable_Make_Obj(TESTI32ARRAY);
-    return TestI32Arr_init(self);
+    return TestI32Arr_init(self, formatter);
 }
 
 TestI32Array*
-TestI32Arr_init(TestI32Array *self) {
-    return (TestI32Array*)TestBatch_init((TestBatch*)self, 4);
+TestI32Arr_init(TestI32Array *self, TestFormatter *formatter) {
+    return (TestI32Array*)TestBatch_init((TestBatch*)self, 4, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestI32Array.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestI32Array.cfh b/core/Lucy/Test/Object/TestI32Array.cfh
index 31fc1ed..1f03ccb 100644
--- a/core/Lucy/Test/Object/TestI32Array.cfh
+++ b/core/Lucy/Test/Object/TestI32Array.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Object::TestI32Array cnick TestI32Arr
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestI32Array*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestI32Array*
-    init(TestI32Array *self);
+    init(TestI32Array *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestI32Array *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestLockFreeRegistry.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestLockFreeRegistry.c b/core/Lucy/Test/Object/TestLockFreeRegistry.c
index c5c3d86..3e1ffe4 100644
--- a/core/Lucy/Test/Object/TestLockFreeRegistry.c
+++ b/core/Lucy/Test/Object/TestLockFreeRegistry.c
@@ -18,20 +18,21 @@
 
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Object/TestLockFreeRegistry.h"
 #include "Clownfish/LockFreeRegistry.h"
 
 TestLockFreeRegistry*
-TestLFReg_new() {
+TestLFReg_new(TestFormatter *formatter) {
     TestLockFreeRegistry *self = (TestLockFreeRegistry*)VTable_Make_Obj(TESTLOCKFREEREGISTRY);
-    return TestLFReg_init(self);
+    return TestLFReg_init(self, formatter);
 }
 
 TestLockFreeRegistry*
-TestLFReg_init(TestLockFreeRegistry *self) {
-    return (TestLockFreeRegistry*)TestBatch_init((TestBatch*)self, 6);
+TestLFReg_init(TestLockFreeRegistry *self, TestFormatter *formatter) {
+    return (TestLockFreeRegistry*)TestBatch_init((TestBatch*)self, 6, formatter);
 }
 
 StupidHashCharBuf*

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestLockFreeRegistry.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestLockFreeRegistry.cfh b/core/Lucy/Test/Object/TestLockFreeRegistry.cfh
index 8bb7cc9..f73cd91 100644
--- a/core/Lucy/Test/Object/TestLockFreeRegistry.cfh
+++ b/core/Lucy/Test/Object/TestLockFreeRegistry.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Object::TestLockFreeRegistry cnick TestLFReg
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestLockFreeRegistry*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestLockFreeRegistry*
-    init(TestLockFreeRegistry *self);
+    init(TestLockFreeRegistry *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestLockFreeRegistry *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestNum.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestNum.c b/core/Lucy/Test/Object/TestNum.c
index 45c7c47..a76b058 100644
--- a/core/Lucy/Test/Object/TestNum.c
+++ b/core/Lucy/Test/Object/TestNum.c
@@ -17,19 +17,20 @@
 #define C_LUCY_TESTNUM
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Object/TestNum.h"
 
 TestNum*
-TestNum_new() {
+TestNum_new(TestFormatter *formatter) {
     TestNum *self = (TestNum*)VTable_Make_Obj(TESTNUM);
-    return TestNum_init(self);
+    return TestNum_init(self, formatter);
 }
 
 TestNum*
-TestNum_init(TestNum *self) {
-    return (TestNum*)TestBatch_init((TestBatch*)self, 58);
+TestNum_init(TestNum *self, TestFormatter *formatter) {
+    return (TestNum*)TestBatch_init((TestBatch*)self, 58, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestNum.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestNum.cfh b/core/Lucy/Test/Object/TestNum.cfh
index 2f8eb15..231571e 100644
--- a/core/Lucy/Test/Object/TestNum.cfh
+++ b/core/Lucy/Test/Object/TestNum.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Object::TestNum
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestNum*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestNum*
-    init(TestNum *self);
+    init(TestNum *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestNum *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestObj.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestObj.c b/core/Lucy/Test/Object/TestObj.c
index bdcad17..1cd137b 100644
--- a/core/Lucy/Test/Object/TestObj.c
+++ b/core/Lucy/Test/Object/TestObj.c
@@ -19,18 +19,19 @@
 #define C_LUCY_TESTOBJ
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Object/TestObj.h"
 
 TestObj*
-TestObj_new() {
+TestObj_new(TestFormatter *formatter) {
     TestObj *self = (TestObj*)VTable_Make_Obj(TESTOBJ);
-    return TestObj_init(self);
+    return TestObj_init(self, formatter);
 }
 
 TestObj*
-TestObj_init(TestObj *self) {
-    return (TestObj*)TestBatch_init((TestBatch*)self, 20);
+TestObj_init(TestObj *self, TestFormatter *formatter) {
+    return (TestObj*)TestBatch_init((TestBatch*)self, 20, formatter);
 }
 
 static Obj*

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestObj.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestObj.cfh b/core/Lucy/Test/Object/TestObj.cfh
index 5cc1f85..f1c5114 100644
--- a/core/Lucy/Test/Object/TestObj.cfh
+++ b/core/Lucy/Test/Object/TestObj.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Object::TestObj
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestObj*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestObj*
-    init(TestObj *self);
+    init(TestObj *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestObj *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestVArray.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestVArray.c b/core/Lucy/Test/Object/TestVArray.c
index 2abdc88..ef28162 100644
--- a/core/Lucy/Test/Object/TestVArray.c
+++ b/core/Lucy/Test/Object/TestVArray.c
@@ -17,19 +17,20 @@
 #define C_LUCY_TESTVARRAY
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Object/TestVArray.h"
 
 TestVArray*
-TestVArray_new() {
+TestVArray_new(TestFormatter *formatter) {
     TestVArray *self = (TestVArray*)VTable_Make_Obj(TESTVARRAY);
-    return TestVArray_init(self);
+    return TestVArray_init(self, formatter);
 }
 
 TestVArray*
-TestVArray_init(TestVArray *self) {
-    return (TestVArray*)TestBatch_init((TestBatch*)self, 45);
+TestVArray_init(TestVArray *self, TestFormatter *formatter) {
+    return (TestVArray*)TestBatch_init((TestBatch*)self, 45, formatter);
 }
 
 static CharBuf*

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Object/TestVArray.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Object/TestVArray.cfh b/core/Lucy/Test/Object/TestVArray.cfh
index 3301453..14a8e15 100644
--- a/core/Lucy/Test/Object/TestVArray.cfh
+++ b/core/Lucy/Test/Object/TestVArray.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Object::TestVArray
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestVArray*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestVArray*
-    init(TestVArray *self);
+    init(TestVArray *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestVArray *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Plan/TestBlobType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestBlobType.c b/core/Lucy/Test/Plan/TestBlobType.c
index bc846a0..6119c4e 100644
--- a/core/Lucy/Test/Plan/TestBlobType.c
+++ b/core/Lucy/Test/Plan/TestBlobType.c
@@ -17,20 +17,21 @@
 #define C_LUCY_TESTBLOBTYPE
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Plan/TestBlobType.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Plan/BlobType.h"
 
 TestBlobType*
-TestBlobType_new() {
+TestBlobType_new(TestFormatter *formatter) {
     TestBlobType *self = (TestBlobType*)VTable_Make_Obj(TESTBLOBTYPE);
-    return TestBlobType_init(self);
+    return TestBlobType_init(self, formatter);
 }
 
 TestBlobType*
-TestBlobType_init(TestBlobType *self) {
-    return (TestBlobType*)TestBatch_init((TestBatch*)self, 2);
+TestBlobType_init(TestBlobType *self, TestFormatter *formatter) {
+    return (TestBlobType*)TestBatch_init((TestBatch*)self, 2, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Plan/TestBlobType.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestBlobType.cfh b/core/Lucy/Test/Plan/TestBlobType.cfh
index b49f2e5..42f76cd 100644
--- a/core/Lucy/Test/Plan/TestBlobType.cfh
+++ b/core/Lucy/Test/Plan/TestBlobType.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Plan::TestBlobType
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestBlobType*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestBlobType*
-    init(TestBlobType *self);
+    init(TestBlobType *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestBlobType *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Plan/TestFieldMisc.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFieldMisc.c b/core/Lucy/Test/Plan/TestFieldMisc.c
index 4904dcb..c9f3b22 100644
--- a/core/Lucy/Test/Plan/TestFieldMisc.c
+++ b/core/Lucy/Test/Plan/TestFieldMisc.c
@@ -16,6 +16,7 @@
 
 
 #include "Lucy/Util/ToolSet.h"
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Plan/TestFieldMisc.h"
 
@@ -42,14 +43,14 @@ static CharBuf *unindexed_unanalyzed_cb;
 static CharBuf *united_states_cb;
 
 TestFieldMisc*
-TestFieldMisc_new() {
+TestFieldMisc_new(TestFormatter *formatter) {
     TestFieldMisc *self = (TestFieldMisc*)VTable_Make_Obj(TESTFIELDMISC);
-    return TestFieldMisc_init(self);
+    return TestFieldMisc_init(self, formatter);
 }
 
 TestFieldMisc*
-TestFieldMisc_init(TestFieldMisc *self) {
-    return (TestFieldMisc*)TestBatch_init((TestBatch*)self, 20);
+TestFieldMisc_init(TestFieldMisc *self, TestFormatter *formatter) {
+    return (TestFieldMisc*)TestBatch_init((TestBatch*)self, 20, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Plan/TestFieldMisc.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFieldMisc.cfh b/core/Lucy/Test/Plan/TestFieldMisc.cfh
index 6038f4d..8d57777 100644
--- a/core/Lucy/Test/Plan/TestFieldMisc.cfh
+++ b/core/Lucy/Test/Plan/TestFieldMisc.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Plan::TestFieldMisc
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestFieldMisc*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestFieldMisc*
-    init(TestFieldMisc *self);
+    init(TestFieldMisc *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestFieldMisc *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Plan/TestFieldType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFieldType.c b/core/Lucy/Test/Plan/TestFieldType.c
index 3421e79..d160f45 100644
--- a/core/Lucy/Test/Plan/TestFieldType.c
+++ b/core/Lucy/Test/Plan/TestFieldType.c
@@ -18,19 +18,20 @@
 #define C_LUCY_DUMMYFIELDTYPE
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Plan/TestFieldType.h"
 #include "Lucy/Test/TestUtils.h"
 
 TestFieldType*
-TestFType_new() {
+TestFType_new(TestFormatter *formatter) {
     TestFieldType *self = (TestFieldType*)VTable_Make_Obj(TESTFIELDTYPE);
-    return TestFType_init(self);
+    return TestFType_init(self, formatter);
 }
 
 TestFieldType*
-TestFType_init(TestFieldType *self) {
-    return (TestFieldType*)TestBatch_init((TestBatch*)self, 9);
+TestFType_init(TestFieldType *self, TestFormatter *formatter) {
+    return (TestFieldType*)TestBatch_init((TestBatch*)self, 9, formatter);
 }
 
 DummyFieldType*

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Plan/TestFieldType.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFieldType.cfh b/core/Lucy/Test/Plan/TestFieldType.cfh
index 56b0d98..0a0ec65 100644
--- a/core/Lucy/Test/Plan/TestFieldType.cfh
+++ b/core/Lucy/Test/Plan/TestFieldType.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Plan::TestFieldType cnick TestFType
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestFieldType*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestFieldType*
-    init(TestFieldType *self);
+    init(TestFieldType *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestFieldType *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Plan/TestFullTextType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFullTextType.c b/core/Lucy/Test/Plan/TestFullTextType.c
index ba6cf26..a299ba4 100644
--- a/core/Lucy/Test/Plan/TestFullTextType.c
+++ b/core/Lucy/Test/Plan/TestFullTextType.c
@@ -17,6 +17,7 @@
 #define C_LUCY_TESTFULLTEXTTYPE
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Plan/TestFullTextType.h"
 #include "Lucy/Test/TestUtils.h"
@@ -25,14 +26,14 @@
 #include "Lucy/Analysis/StandardTokenizer.h"
 
 TestFullTextType*
-TestFullTextType_new() {
+TestFullTextType_new(TestFormatter *formatter) {
     TestFullTextType *self = (TestFullTextType*)VTable_Make_Obj(TESTFULLTEXTTYPE);
-    return TestFullTextType_init(self);
+    return TestFullTextType_init(self, formatter);
 }
 
 TestFullTextType*
-TestFullTextType_init(TestFullTextType *self) {
-    return (TestFullTextType*)TestBatch_init((TestBatch*)self, 10);
+TestFullTextType_init(TestFullTextType *self, TestFormatter *formatter) {
+    return (TestFullTextType*)TestBatch_init((TestBatch*)self, 10, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Plan/TestFullTextType.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestFullTextType.cfh b/core/Lucy/Test/Plan/TestFullTextType.cfh
index c179b4d..031be31 100644
--- a/core/Lucy/Test/Plan/TestFullTextType.cfh
+++ b/core/Lucy/Test/Plan/TestFullTextType.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Plan::TestFullTextType
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestFullTextType*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestFullTextType*
-    init(TestFullTextType *self);
+    init(TestFullTextType *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestFullTextType *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Plan/TestNumericType.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestNumericType.c b/core/Lucy/Test/Plan/TestNumericType.c
index e85fbd6..c1f554d 100644
--- a/core/Lucy/Test/Plan/TestNumericType.c
+++ b/core/Lucy/Test/Plan/TestNumericType.c
@@ -17,6 +17,7 @@
 #define C_LUCY_TESTNUMERICTYPE
 #include "Lucy/Util/ToolSet.h"
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Plan/TestNumericType.h"
 #include "Lucy/Test/TestUtils.h"
@@ -24,14 +25,14 @@
 #include "Lucy/Plan/NumericType.h"
 
 TestNumericType*
-TestNumericType_new() {
+TestNumericType_new(TestFormatter *formatter) {
     TestNumericType *self = (TestNumericType*)VTable_Make_Obj(TESTNUMERICTYPE);
-    return TestNumericType_init(self);
+    return TestNumericType_init(self, formatter);
 }
 
 TestNumericType*
-TestNumericType_init(TestNumericType *self) {
-    return (TestNumericType*)TestBatch_init((TestBatch*)self, 12);
+TestNumericType_init(TestNumericType *self, TestFormatter *formatter) {
+    return (TestNumericType*)TestBatch_init((TestBatch*)self, 12, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Plan/TestNumericType.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Plan/TestNumericType.cfh b/core/Lucy/Test/Plan/TestNumericType.cfh
index f9c5f5c..f411aff 100644
--- a/core/Lucy/Test/Plan/TestNumericType.cfh
+++ b/core/Lucy/Test/Plan/TestNumericType.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Plan::TestNumericType
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestNumericType*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestNumericType*
-    init(TestNumericType *self);
+    init(TestNumericType *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestNumericType *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Search/TestLeafQuery.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestLeafQuery.c b/core/Lucy/Test/Search/TestLeafQuery.c
index ff8194d..8381fd6 100644
--- a/core/Lucy/Test/Search/TestLeafQuery.c
+++ b/core/Lucy/Test/Search/TestLeafQuery.c
@@ -18,20 +18,21 @@
 #include "Lucy/Util/ToolSet.h"
 #include <math.h>
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/Search/TestLeafQuery.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Search/LeafQuery.h"
 
 TestLeafQuery*
-TestLeafQuery_new() {
+TestLeafQuery_new(TestFormatter *formatter) {
     TestLeafQuery *self = (TestLeafQuery*)VTable_Make_Obj(TESTLEAFQUERY);
-    return TestLeafQuery_init(self);
+    return TestLeafQuery_init(self, formatter);
 }
 
 TestLeafQuery*
-TestLeafQuery_init(TestLeafQuery *self) {
-    return (TestLeafQuery*)TestBatch_init((TestBatch*)self, 5);
+TestLeafQuery_init(TestLeafQuery *self, TestFormatter *formatter) {
+    return (TestLeafQuery*)TestBatch_init((TestBatch*)self, 5, formatter);
 }
 
 static void

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Search/TestLeafQuery.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestLeafQuery.cfh b/core/Lucy/Test/Search/TestLeafQuery.cfh
index 0629e9b..4fc8a37 100644
--- a/core/Lucy/Test/Search/TestLeafQuery.cfh
+++ b/core/Lucy/Test/Search/TestLeafQuery.cfh
@@ -20,10 +20,10 @@ class Lucy::Test::Search::TestLeafQuery
     inherits Clownfish::Test::TestBatch {
 
     inert incremented TestLeafQuery*
-    new();
+    new(TestFormatter *formatter);
 
     inert TestLeafQuery*
-    init(TestLeafQuery *self);
+    init(TestLeafQuery *self, TestFormatter *formatter);
 
     void
     Run_Tests(TestLeafQuery *self);

http://git-wip-us.apache.org/repos/asf/lucy/blob/08c61bf3/core/Lucy/Test/Search/TestMatchAllQuery.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Test/Search/TestMatchAllQuery.c b/core/Lucy/Test/Search/TestMatchAllQuery.c
index cb24920..ec95b62 100644
--- a/core/Lucy/Test/Search/TestMatchAllQuery.c
+++ b/core/Lucy/Test/Search/TestMatchAllQuery.c
@@ -18,20 +18,21 @@
 #include "Lucy/Util/ToolSet.h"
 #include <math.h>
 
+#include "Clownfish/Test/TestFormatter.h"
 #include "Lucy/Test.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Search/TestMatchAllQuery.h"
 #include "Lucy/Search/MatchAllQuery.h"
 
 TestMatchAllQuery*
-TestMatchAllQuery_new() {
+TestMatchAllQuery_new(TestFormatter *formatter) {
     TestMatchAllQuery *self = (TestMatchAllQuery*)VTable_Make_Obj(TESTMATCHALLQUERY);
-    return TestMatchAllQuery_init(self);
+    return TestMatchAllQuery_init(self, formatter);
 }
 
 TestMatchAllQuery*
-TestMatchAllQuery_init(TestMatchAllQuery *self) {
-    return (TestMatchAllQuery*)TestBatch_init((TestBatch*)self, 2);
+TestMatchAllQuery_init(TestMatchAllQuery *self, TestFormatter *formatter) {
+    return (TestMatchAllQuery*)TestBatch_init((TestBatch*)self, 2, formatter);
 }
 
 static void