Skip to content

Commit 89bb876

Browse files
committed
fix: add test case for common-sub-term
Since the bug is quite tricky, having real test for this case is important to keep health. ref: #3356
1 parent 42ba039 commit 89bb876

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/gtests/gtests_tokenizer.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -835,7 +835,8 @@ TEST_F ( QueryParser, query_transforms )
835835
{
836836
{ { "nnn", 10 }, { "aaa", 1 }, { "bbb", 1 }, { 0, 0 } },
837837
{ { "nnn", 10 }, { "aaa", 100 }, { "bbb", 200 }, { 0, 0 } },
838-
{ { "nnn", 10 }, { "aaa", 1 }, { "bbb", 2 }, { "qqq", 500 }, { "www", 100 }, { 0, 0 } }
838+
{ { "nnn", 10 }, { "aaa", 1 }, { "bbb", 2 }, { "qqq", 500 }, { "www", 100 }, { 0, 0 } },
839+
{ {"aaa",0}, {"bbb",0}, {"ccc",0}, {"ddd",0}, {"eee",0}, {"fff",0}, {"ggg",35}, {"hhh",63}, {"iii",2445}, {0,0} }, // obfuscated from #3356
839840
};
840841

841842
const QueryTest_t dTest[] =
@@ -933,6 +934,12 @@ TEST_F ( QueryParser, query_transforms )
933934
"( ( aaa ( ccc | nnn ) ) | ( bbb ( nnn | ddd ) ) )",
934935
( const CKeywordHits * ) &dPseudoHits[1]
935936
},
937+
{ // obfuscated test case based on #3356. M.b. need XQDEBUG 1
938+
"(aaa (( ccc (hhh | iii)) | (ddd (fff | iii)) | (eee (ggg | iii)))) | (bbb ((ccc (hhh | iii)) | (ddd (fff | iii)) | (eee (ggg | iii))))",
939+
"( ( aaa ( ( ccc ( hhh | iii ) ) | ( ddd ( fff | iii ) ) | ( eee ( ggg | iii ) ) ) ) | ( bbb ( ( ccc ( hhh | iii ) ) | ( ddd ( fff | iii ) ) | ( eee ( ggg | iii ) ) ) ) )",
940+
"( ( aaa eee iii ) | ( bbb eee iii ) | ( ( aaa | bbb ) ccc hhh ) | ( ( aaa | bbb ) ddd fff ) | ( ( ( aaa eee ) | ( bbb eee ) ) ggg ) | ( ( ( ( aaa | bbb ) ccc ) | ( ( aaa | bbb ) ddd ) ) iii ) )",
941+
(const CKeywordHits *) &dPseudoHits[3]
942+
},
936943

937944
// COMMON SUBTERM WITH MIXED PHRASES/PROXIMITY terms
938945
{

0 commit comments

Comments
 (0)