Add TestUtils_create_index

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

Branch: refs/heads/master
Commit: 2b905009e69fccfc8abe62cfe7814565f15beab5
Parents: 3dfb22c
Author: Nick Wellnhofer <[email protected]>
Authored: Sat Dec 24 16:13:26 2016 +0100
Committer: Nick Wellnhofer <[email protected]>
Committed: Mon Jan 2 16:33:57 2017 +0100

----------------------------------------------------------------------
 test/Lucy/Test/Search/TestQueryParserLogic.c | 26 ++-----------
 test/Lucy/Test/TestUtils.c                   | 45 +++++++++++++++++++++++
 test/Lucy/Test/TestUtils.cfh                 | 11 ++++++
 3 files changed, 60 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/2b905009/test/Lucy/Test/Search/TestQueryParserLogic.c
----------------------------------------------------------------------
diff --git a/test/Lucy/Test/Search/TestQueryParserLogic.c 
b/test/Lucy/Test/Search/TestQueryParserLogic.c
index 22104fd..91413be 100644
--- a/test/Lucy/Test/Search/TestQueryParserLogic.c
+++ b/test/Lucy/Test/Search/TestQueryParserLogic.c
@@ -25,11 +25,8 @@
 #include "Lucy/Test.h"
 #include "Lucy/Test/Search/TestQueryParserLogic.h"
 #include "Lucy/Test/Search/TestQueryParser.h"
-#include "Lucy/Test/TestSchema.h"
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Analysis/Analyzer.h"
-#include "Lucy/Document/Doc.h"
-#include "Lucy/Index/Indexer.h"
 #include "Lucy/Search/Hits.h"
 #include "Lucy/Search/IndexSearcher.h"
 #include "Lucy/Search/QueryParser.h"
@@ -42,7 +39,7 @@
 #include "Lucy/Search/NoMatchQuery.h"
 #include "Lucy/Search/ORQuery.h"
 #include "Lucy/Search/RequiredOptionalQuery.h"
-#include "Lucy/Store/RAMFolder.h"
+#include "Lucy/Store/Folder.h"
 
 #define make_leaf_query   (Query*)TestUtils_make_leaf_query
 #define make_not_query    (Query*)TestUtils_make_not_query
@@ -859,26 +856,11 @@ static LUCY_TestQPLogic_Prune_Test_t prune_test_funcs[] = 
{
 
 static Folder*
 S_create_index() {
-    Schema     *schema  = (Schema*)TestSchema_new(false);
-    RAMFolder  *folder  = RAMFolder_new(NULL);
-    Vector     *doc_set = TestUtils_doc_set();
-    Indexer    *indexer = Indexer_new(schema, (Obj*)folder, NULL, 0);
-
-    String *field = SSTR_WRAP_C("content");
-    for (size_t i = 0, max = Vec_Get_Size(doc_set); i < max; i++) {
-        Doc *doc = Doc_new(NULL, 0);
-        Doc_Store(doc, field, Vec_Fetch(doc_set, i));
-        Indexer_Add_Doc(indexer, doc, 1.0f);
-        DECREF(doc);
-    }
-
-    Indexer_Commit(indexer);
+    Vector *doc_set = TestUtils_doc_set();
+    Folder *folder  = TestUtils_create_index(doc_set);
 
     DECREF(doc_set);
-    DECREF(indexer);
-    DECREF(schema);
-
-    return (Folder*)folder;
+    return folder;
 }
 
 void

http://git-wip-us.apache.org/repos/asf/lucy/blob/2b905009/test/Lucy/Test/TestUtils.c
----------------------------------------------------------------------
diff --git a/test/Lucy/Test/TestUtils.c b/test/Lucy/Test/TestUtils.c
index bddfa7b..0f579b0 100644
--- a/test/Lucy/Test/TestUtils.c
+++ b/test/Lucy/Test/TestUtils.c
@@ -21,11 +21,14 @@
 
 #include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test.h"
+#include "Lucy/Test/TestSchema.h"
 #include "Clownfish/TestHarness/TestBatchRunner.h"
 #include "Clownfish/TestHarness/TestUtils.h"
 #include "Lucy/Analysis/Analyzer.h"
 #include "Lucy/Analysis/Inversion.h"
 #include "Lucy/Analysis/Token.h"
+#include "Lucy/Document/Doc.h"
+#include "Lucy/Index/Indexer.h"
 #include "Lucy/Search/TermQuery.h"
 #include "Lucy/Search/PhraseQuery.h"
 #include "Lucy/Search/LeafQuery.h"
@@ -37,6 +40,7 @@
 #include "Lucy/Store/InStream.h"
 #include "Lucy/Store/OutStream.h"
 #include "Lucy/Store/RAMFile.h"
+#include "Lucy/Store/RAMFolder.h"
 #include "Lucy/Util/Freezer.h"
 
 Vector*
@@ -54,6 +58,47 @@ TestUtils_doc_set() {
     return docs;
 }
 
+Folder*
+TestUtils_create_index(Vector *doc_set) {
+    Schema     *schema  = (Schema*)TestSchema_new(false);
+    RAMFolder  *folder  = RAMFolder_new(NULL);
+    Indexer    *indexer = Indexer_new(schema, (Obj*)folder, NULL, 0);
+
+    String *field = SSTR_WRAP_C("content");
+    for (size_t i = 0, max = Vec_Get_Size(doc_set); i < max; i++) {
+        Doc *doc = Doc_new(NULL, 0);
+        Doc_Store(doc, field, Vec_Fetch(doc_set, i));
+        Indexer_Add_Doc(indexer, doc, 1.0f);
+        DECREF(doc);
+    }
+
+    Indexer_Commit(indexer);
+
+    DECREF(indexer);
+    DECREF(schema);
+
+    return (Folder*)folder;
+}
+
+Folder*
+TestUtils_create_index_c(const char *first, ...) {
+    Vector *doc_set = Vec_new(1);
+    Vec_Push(doc_set, (Obj*)Str_new_from_utf8(first, strlen(first)));
+
+    va_list ap;
+    va_start(ap, first);
+    const char *next;
+    while ((next = va_arg(ap, const char*))) {
+        Vec_Push(doc_set, (Obj*)Str_new_from_utf8(next, strlen(next)));
+    }
+    va_end(ap);
+
+    Folder *folder = TestUtils_create_index(doc_set);
+
+    DECREF(doc_set);
+    return folder;
+}
+
 PolyQuery*
 TestUtils_make_poly_query(uint32_t boolop, ...) {
     va_list args;

http://git-wip-us.apache.org/repos/asf/lucy/blob/2b905009/test/Lucy/Test/TestUtils.cfh
----------------------------------------------------------------------
diff --git a/test/Lucy/Test/TestUtils.cfh b/test/Lucy/Test/TestUtils.cfh
index 0d3e15c..00d50c4 100644
--- a/test/Lucy/Test/TestUtils.cfh
+++ b/test/Lucy/Test/TestUtils.cfh
@@ -24,6 +24,17 @@ inert class Lucy::Test::TestUtils  {
     inert incremented Vector*
     doc_set();
 
+    /** Create an index using TestSchema with documents from `doc_set`.
+     */
+    inert incremented Folder*
+    create_index(Vector *doc_set);
+
+    /** Create an index using TestSchema with documents from a list
+     * of C strings terminated with NULL.
+     */
+    inert incremented Folder*
+    create_index_c(const char *first, ...);
+
     /** Testing-only TermQuery factory.
      */
     inert incremented TermQuery*

Reply via email to