diff -r 6c1a2771f4b7 -r ae3f1779f6da searchengine/cpix/tsrc/cpixunittest/src/analysis.cpp --- 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">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); }