searchengine/cpix/tsrc/cpixunittest/src/analysis.cpp
changeset 3 ae3f1779f6da
parent 0 671dee74050a
child 7 a5fbfefd615f
--- a/searchengine/cpix/tsrc/cpixunittest/src/analysis.cpp	Fri May 14 16:57:37 2010 +0300
+++ b/searchengine/cpix/tsrc/cpixunittest/src/analysis.cpp	Thu May 27 13:59:44 2010 +0300
@@ -30,6 +30,7 @@
 
 #include "cpixdoc.h"
 
+#include "std_log_result.h"
 const char * AnalysisTestDocsToIndex[5] = {
     FILE_TEST_CORPUS_PATH "\\en\\1.txt",
     FILE_TEST_CORPUS_PATH "\\en\\2.txt",
@@ -46,7 +47,7 @@
 };
 
 
-void TestAnalyzerParsing(Itk::TestMgr * , const wchar_t* definition) 
+void TestAnalyzerParsing(Itk::TestMgr * , const wchar_t* definition, int expected = 1) 
 {
 	cpix_Result result; 
 	
@@ -55,6 +56,10 @@
 	cpix_Analyzer* analyzer = cpix_Analyzer_create( &result, definition);
 
 	if ( cpix_Failed( &result) ) {
+        if(expected)
+            assert_failed = 1;
+        else
+            assert_failed = 0;            
 		printf("Analyzer creation failed with %S\n", result.err_->msg_);
 		return; 
 	}
@@ -63,6 +68,8 @@
 
 void TestAnalyzersParsing(Itk::TestMgr * testMgr) 
 {
+    char *xml_file = (char*)__FUNCTION__;
+    assert_failed = 0;
 	TestAnalyzerParsing(testMgr, L"stdtokens>lowercase"); 
 	TestAnalyzerParsing(testMgr, L"whitespace>lowercase"); 
 	TestAnalyzerParsing(testMgr, L"letter>lowercase"); 
@@ -75,16 +82,19 @@
 	TestAnalyzerParsing(testMgr, L"letter>lowercase>stop('a', 'an', 'the')");
 
 	// bad syntaxes
-	TestAnalyzerParsing(testMgr, L"letter><lowercase" ); 
-	TestAnalyzerParsing(testMgr, L"38j_d fad23 4?q ca'wRA" ); 
+	TestAnalyzerParsing(testMgr, L"letter><lowercase" ,0); 
+	TestAnalyzerParsing(testMgr, L"38j_d fad23 4?q ca'wRA", 0 ); 
 	// parsing failures
-	TestAnalyzerParsing(testMgr, L"letter>>lowercase" ); 
-	TestAnalyzerParsing(testMgr, L">letter>>lowercase lowercase" ); 
-	TestAnalyzerParsing(testMgr, L"letter lowercase" ); 
+	TestAnalyzerParsing(testMgr, L"letter>>lowercase", 0 ); 
+	TestAnalyzerParsing(testMgr, L">letter>>lowercase lowercase", 0 ); 
+	TestAnalyzerParsing(testMgr, L"letter lowercase", 0 );
+	testResultXml(xml_file);
 }
 
 void TestSwitchParsing(Itk::TestMgr * testMgr) 
 {
+    char *xml_file = (char*)__FUNCTION__;
+        assert_failed = 0;
 	// Per field query syntax
 	TestAnalyzerParsing(testMgr, L"switch {"
 									 L"case '_docuid':          keyword; "
@@ -95,12 +105,14 @@
 	TestAnalyzerParsing(testMgr, L"switch{ case '_qnr': whitespace; default: standard; }>lowercase");
 	TestAnalyzerParsing(testMgr, L"switch{ default: 	standard; }");
 	TestAnalyzerParsing(testMgr, L"switch{ case '_qnr': switch{ case '_docuid': keyword; default: whitespace; }; default: standard; }");
+	testResultXml(xml_file);
 }
 
 void TestAnalyzerUsage(Itk::TestMgr * testMgr, const wchar_t* definition) 
 {
 	printf("Indexing and searching with %S\n", definition); 
-	
+	char *xml_file = (char*)__FUNCTION__;
+	    assert_failed = 0;
 	cpix_Result
         result;
 
@@ -179,6 +191,7 @@
 
 		if (cpix_Failed(util->idxDb())) 
 			{
+            assert_failed = 1;
 			cpix_Analyzer_destroy(analyzer);
 			cpix_ClearError(queryParser);
 			cpix_QueryParser_destroy(queryParser);
@@ -192,15 +205,19 @@
 	}
 	cpix_QueryParser_destroy(queryParser);
 	cpix_Analyzer_destroy( analyzer ); 
+	testResultXml(xml_file);
 }
 
 void TestAnalyzersUsage(Itk::TestMgr * testMgr) 
 	{
+    char *xml_file = (char*)__FUNCTION__;
+    assert_failed = 0;
 	TestAnalyzerUsage(testMgr, L"whitespace" ); 
 	TestAnalyzerUsage(testMgr, L"letter>lowercase" ); 
 	TestAnalyzerUsage(testMgr, L"stdtokens>lowercase>stem(en)"); 
 	TestAnalyzerUsage(testMgr, L"letter>lowercase>stop(en)"); 
-	TestAnalyzerUsage(testMgr, L"letter>lowercase>stop('a', 'an', 'the')"); 
+	TestAnalyzerUsage(testMgr, L"letter>lowercase>stop('a', 'an', 'the')");
+	testResultXml(xml_file);
 	}