1 /* Warning: This file is generated by ./collate-test - do not modify directly! */
2 
3     if (!(properties&BACKEND)) {
4 	static const test_desc tests[] = {
5 	    { "stubdb7", test_stubdb7 },
6 	    { "stubdb4", test_stubdb4 },
7 	    { "defaultctor1", test_defaultctor1 },
8 	    { "copyassign1", test_copyassign1 },
9 	    { "latlongcoords1", test_latlongcoords1 },
10 	    { "latlongmetric1", test_latlongmetric1 },
11 	    { "latlongmetric2", test_latlongmetric2 },
12 	    { "latlongkeymaker1", test_latlongkeymaker1 },
13 	    { "matchspy6", test_matchspy6 },
14 	    { "matchspy7", test_matchspy7 },
15 	    { "trivial1", test_trivial1 },
16 	    { "getqterms1", test_getqterms1 },
17 	    { "getqterms2", test_getqterms2 },
18 	    { "emptyquery2", test_emptyquery2 },
19 	    { "emptyquery3", test_emptyquery3 },
20 	    { "querylen1", test_querylen1 },
21 	    { "querylen2", test_querylen2 },
22 	    { "queryvalid1", test_queryvalid1 },
23 	    { "dontflattensubqueries1", test_dontflattensubqueries1 },
24 	    { "emptyquerypart1", test_emptyquerypart1 },
25 	    { "stemlangs1", test_stemlangs1 },
26 	    { "weight1", test_weight1 },
27 	    { "nosuchdb1", test_nosuchdb1 },
28 	    { "addvalue1", test_addvalue1 },
29 	    { "poscollapse2", test_poscollapse2 },
30 	    { "uninitdb1", test_uninitdb1 },
31 	    { "scaleweight3", test_scaleweight3 },
32 	    { "rset3", test_rset3 },
33 	    { "rset4", test_rset4 },
34 	    { "valuesetmatchdecider1", test_valuesetmatchdecider1 },
35 	    { "emptymset1", test_emptymset1 },
36 	    { "expanddeciderfilterprefix1", test_expanddeciderfilterprefix1 },
37 	    { "version1", test_version1 },
38 	    { "nosubdatabases1", test_nosubdatabases1 },
39 	    { "document1", test_document1 },
40 	    { "document2", test_document2 },
41 	    { "documentclearterms1", test_documentclearterms1 },
42 	    { "documentclearvalues1", test_documentclearvalues1 },
43 	    { "documentemptyterm1", test_documentemptyterm1 },
44 	    { "emptyquery4", test_emptyquery4 },
45 	    { "singlesubquery1", test_singlesubquery1 },
46 	    { "singlesubquery2", test_singlesubquery2 },
47 	    { "singlesubquery3", test_singlesubquery3 },
48 	    { "combinewqfnomore1", test_combinewqfnomore1 },
49 	    { "subclassablerefcount1", test_subclassablerefcount1 },
50 	    { "subclassablerefcount2", test_subclassablerefcount2 },
51 	    { "subclassablerefcount4", test_subclassablerefcount4 },
52 	    { "subclassablerefcount5", test_subclassablerefcount5 },
53 	    { "subclassablerefcount8", test_subclassablerefcount8 },
54 	    { "nonutf8docdesc1", test_nonutf8docdesc1 },
55 	    { "deletewhileiterating1", test_deletewhileiterating1 },
56 	    { "removepostings", test_removepostings },
57 	    { "errorcopyctor", test_errorcopyctor },
58 	    { "valuege3", test_valuege3 },
59 	    { "postingsourceclone1", test_postingsourceclone1 },
60 	    { "queryterms1", test_queryterms1 },
61 	    { "matchall2", test_matchall2 },
62 	    { "matchnothing1", test_matchnothing1 },
63 	    { "overload1", test_overload1 },
64 	    { "nonutf8termdesc1", test_nonutf8termdesc1 },
65 	    { "queryintro1", test_queryintro1 },
66 	    { "queryparser1", test_queryparser1 },
67 	    { "qp_default_op1", test_qp_default_op1 },
68 	    { "qp_default_prefix1", test_qp_default_prefix1 },
69 	    { "qp_default_prefix2", test_qp_default_prefix2 },
70 	    { "qp_odd_chars1", test_qp_odd_chars1 },
71 	    { "qp_flag_bool_any_case1", test_qp_flag_bool_any_case1 },
72 	    { "qp_stopper1", test_qp_stopper1 },
73 	    { "qp_flag_pure_not1", test_qp_flag_pure_not1 },
74 	    { "qp_unstem_boolean_prefix", test_qp_unstem_boolean_prefix },
75 	    { "qp_accumulate", test_qp_accumulate },
76 	    { "qp_value_range1", test_qp_value_range1 },
77 	    { "qp_range1", test_qp_range1 },
78 	    { "qp_value_range2", test_qp_value_range2 },
79 	    { "qp_range2", test_qp_range2 },
80 	    { "qp_value_range4", test_qp_value_range4 },
81 	    { "qp_range4", test_qp_range4 },
82 	    { "qp_value_daterange1", test_qp_value_daterange1 },
83 	    { "qp_daterange1", test_qp_daterange1 },
84 	    { "qp_value_daterange2", test_qp_value_daterange2 },
85 	    { "qp_daterange2", test_qp_daterange2 },
86 	    { "qp_value_stringrange1", test_qp_value_stringrange1 },
87 	    { "qp_stringrange1", test_qp_stringrange1 },
88 	    { "qp_value_customrange1", test_qp_value_customrange1 },
89 	    { "qp_customrange1", test_qp_customrange1 },
90 	    { "qp_fieldproc1", test_qp_fieldproc1 },
91 	    { "qp_fieldproc2", test_qp_fieldproc2 },
92 	    { "qp_fieldproc3", test_qp_fieldproc3 },
93 	    { "qp_stoplist1", test_qp_stoplist1 },
94 	    { "qp_stem_all1", test_qp_stem_all1 },
95 	    { "qp_stem_all_z1", test_qp_stem_all_z1 },
96 	    { "qp_near1", test_qp_near1 },
97 	    { "qp_phrase1", test_qp_phrase1 },
98 	    { "qp_default_op2", test_qp_default_op2 },
99 	    { "qp_default_op3", test_qp_default_op3 },
100 	    { "qp_defaultstrategysome1", test_qp_defaultstrategysome1 },
101 	    { "qp_stemsomefullpos", test_qp_stemsomefullpos },
102 	    { "querypairwise1", test_querypairwise1 },
103 	    { "serialise_document1", test_serialise_document1 },
104 	    { "serialise_query1", test_serialise_query1 },
105 	    { "serialise_query2", test_serialise_query2 },
106 	    { "serialise_query3", test_serialise_query3 },
107 	    { "serialise_query4", test_serialise_query4 },
108 	    { "double_register_leak", test_double_register_leak },
109 	    { "registry1", test_registry1 },
110 	    { "registry2", test_registry2 },
111 	    { "registry3", test_registry3 },
112 	    { "snippet_empty_mset2", test_snippet_empty_mset2 },
113 	    { "multivaluekeymaker1", test_multivaluekeymaker1 },
114 	    { "stem1", test_stem1 },
115 	    { "stem2", test_stem2 },
116 	    { "stem3", test_stem3 },
117 	    { "stemempty1", test_stemempty1 },
118 	    { "stemlangs2", test_stemlangs2 },
119 	    { "termgen1", test_termgen1 },
120 	    { "tg_spell2", test_tg_spell2 },
121 	    { "tg_max_word_length1", test_tg_max_word_length1 },
122 	    { "utf8iterator1", test_utf8iterator1 },
123 	    { "utf8iterator2", test_utf8iterator2 },
124 	    { "unicode1", test_unicode1 },
125 	    { "caseconvert1", test_caseconvert1 },
126 	    { "caseconvert2", test_caseconvert2 },
127 	    { "utf8convert1", test_utf8convert1 },
128 	    { "unicodepredicates1", test_unicodepredicates1 },
129 	    { "valuestats5", test_valuestats5 },
130 	    { "fixedweightsource2", test_fixedweightsource2 },
131 	    { "tradweight3", test_tradweight3 },
132 	    { "unigramlmweight3", test_unigramlmweight3 },
133 	    { "bm25weight3", test_bm25weight3 },
134 	    { "bm25plusweight1", test_bm25plusweight1 },
135 	    { "inl2weight1", test_inl2weight1 },
136 	    { "inl2weight2", test_inl2weight2 },
137 	    { "ifb2weight1", test_ifb2weight1 },
138 	    { "ifb2weight2", test_ifb2weight2 },
139 	    { "ineb2weight1", test_ineb2weight1 },
140 	    { "ineb2weight2", test_ineb2weight2 },
141 	    { "bb2weight1", test_bb2weight1 },
142 	    { "bb2weight2", test_bb2weight2 },
143 	    { "dlhweight2", test_dlhweight2 },
144 	    { "pl2weight1", test_pl2weight1 },
145 	    { "pl2weight2", test_pl2weight2 },
146 	    { "pl2plusweight1", test_pl2plusweight1 },
147 	    { "pl2plusweight2", test_pl2plusweight2 },
148 	    { "pl2plusweight3", test_pl2plusweight3 },
149 	    { "dphweight2", test_dphweight2 },
150 	    { "tfidfweight1", test_tfidfweight1 },
151 	    { "tfidfweight2", test_tfidfweight2 },
152 	    { "unigramlmweight6", test_unigramlmweight6 },
153 	    { "boolweight1", test_boolweight1 },
154 	    { "coordweight2", test_coordweight2 },
155 	    { 0, 0 }
156 	};
157 	result = max(result, test_driver::run(tests));
158     }
159     if ((properties&BACKEND)) {
160 	static const test_desc tests[] = {
161 	    { "zerodocid1", test_zerodocid1 },
162 	    { "emptyquery1", test_emptyquery1 },
163 	    { "simplequery1", test_simplequery1 },
164 	    { "simplequery2", test_simplequery2 },
165 	    { "simplequery3", test_simplequery3 },
166 	    { "msetmaxitems1", test_msetmaxitems1 },
167 	    { "expandweights1", test_expandweights1 },
168 	    { "expandweights2", test_expandweights2 },
169 	    { "expandweights3", test_expandweights3 },
170 	    { "expandweights4", test_expandweights4 },
171 	    { "expandweights5", test_expandweights5 },
172 	    { "expandweights6", test_expandweights6 },
173 	    { "expandweights7", test_expandweights7 },
174 	    { "expandweights8", test_expandweights8 },
175 	    { "expandmaxitems1", test_expandmaxitems1 },
176 	    { "boolquery1", test_boolquery1 },
177 	    { "msetfirst1", test_msetfirst1 },
178 	    { "topercent1", test_topercent1 },
179 	    { "topercent2", test_topercent2 },
180 	    { "expandfunctor1", test_expandfunctor1 },
181 	    { "expanddeciderfilterprefix2", test_expanddeciderfilterprefix2 },
182 	    { "pctcutoff1", test_pctcutoff1 },
183 	    { "pctcutoff2", test_pctcutoff2 },
184 	    { "pctcutoff3", test_pctcutoff3 },
185 	    { "cutoff1", test_cutoff1 },
186 	    { "allowqterms1", test_allowqterms1 },
187 	    { "maxattain1", test_maxattain1 },
188 	    { "reversebool1", test_reversebool1 },
189 	    { "reversebool2", test_reversebool2 },
190 	    { "getmterms1", test_getmterms1 },
191 	    { "getmterms2", test_getmterms2 },
192 	    { "repeatquery1", test_repeatquery1 },
193 	    { "fetchdocs1", test_fetchdocs1 },
194 	    { "absentterm1", test_absentterm1 },
195 	    { "absentterm2", test_absentterm2 },
196 	    { "rset1", test_rset1 },
197 	    { "rset2", test_rset2 },
198 	    { "eliteset1", test_eliteset1 },
199 	    { "eliteset2", test_eliteset2 },
200 	    { "eliteset3", test_eliteset3 },
201 	    { "eliteset4", test_eliteset4 },
202 	    { "eliteset5", test_eliteset5 },
203 	    { "termlisttermfreq1", test_termlisttermfreq1 },
204 	    { "qterminfo1", test_qterminfo1 },
205 	    { "qterminfo2", test_qterminfo2 },
206 	    { "msetzeroitems1", test_msetzeroitems1 },
207 	    { "matches1", test_matches1 },
208 	    { "wqf1", test_wqf1 },
209 	    { "qlen1", test_qlen1 },
210 	    { "termlist1", test_termlist1 },
211 	    { "termlist2", test_termlist2 },
212 	    { "termlist3", test_termlist3 },
213 	    { "termlist4", test_termlist4 },
214 	    { "puncterms1", test_puncterms1 },
215 	    { "spaceterms1", test_spaceterms1 },
216 	    { "xor1", test_xor1 },
217 	    { "xor2", test_xor2 },
218 	    { "getdoc1", test_getdoc1 },
219 	    { "emptyop1", test_emptyop1 },
220 	    { "checkatleast1", test_checkatleast1 },
221 	    { "checkatleast2", test_checkatleast2 },
222 	    { "checkatleast3", test_checkatleast3 },
223 	    { "allpostlist1", test_allpostlist1 },
224 	    { "emptyterm1", test_emptyterm1 },
225 	    { "scaleweight1", test_scaleweight1 },
226 	    { "scaleweight2", test_scaleweight2 },
227 	    { "bm25weight1", test_bm25weight1 },
228 	    { "tradweight1", test_tradweight1 },
229 	    { "tradweight4", test_tradweight4 },
230 	    { "dbstats1", test_dbstats1 },
231 	    { "dbstats2", test_dbstats2 },
232 	    { "alldocspl3", test_alldocspl3 },
233 	    { "msetfirst2", test_msetfirst2 },
234 	    { "bm25weight2", test_bm25weight2 },
235 	    { "unigramlmweight2", test_unigramlmweight2 },
236 	    { "tradweight2", test_tradweight2 },
237 	    { "emptydb1", test_emptydb1 },
238 	    { "multiargop1", test_multiargop1 },
239 	    { "msetweights1", test_msetweights1 },
240 	    { "itorskiptofromend1", test_itorskiptofromend1 },
241 	    { "sortvalue2", test_sortvalue2 },
242 	    { "enquiregetquery1", test_enquiregetquery1 },
243 	    { "exactxor1", test_exactxor1 },
244 	    { "getdocumentlazy1", test_getdocumentlazy1 },
245 	    { "getdocumentlazy2", test_getdocumentlazy2 },
246 	    { "checkatleast4", test_checkatleast4 },
247 	    { "multidb1", test_multidb1 },
248 	    { "closedb1", test_closedb1 },
249 	    { "closedb3", test_closedb3 },
250 	    { "collapsekey5", test_collapsekey5 },
251 	    { "termstats", test_termstats },
252 	    { "msetiterator1", test_msetiterator1 },
253 	    { "msetiterator2", test_msetiterator2 },
254 	    { "msetiterator3", test_msetiterator3 },
255 	    { "esetiterator1", test_esetiterator1 },
256 	    { "esetiterator2", test_esetiterator2 },
257 	    { "collapsekey1", test_collapsekey1 },
258 	    { "collapsekey2", test_collapsekey2 },
259 	    { "collapsekey3", test_collapsekey3 },
260 	    { "collapsekey4", test_collapsekey4 },
261 	    { "allterms1", test_allterms1 },
262 	    { "allterms2", test_allterms2 },
263 	    { "allterms3", test_allterms3 },
264 	    { "allterms4", test_allterms4 },
265 	    { "allterms5", test_allterms5 },
266 	    { "allterms6", test_allterms6 },
267 	    { "specialterms1", test_specialterms1 },
268 	    { "specialterms2", test_specialterms2 },
269 	    { "postlist1", test_postlist1 },
270 	    { "postlist2", test_postlist2 },
271 	    { "postlist3", test_postlist3 },
272 	    { "postlist4", test_postlist4 },
273 	    { "postlist5", test_postlist5 },
274 	    { "postlist6", test_postlist6 },
275 	    { "collfreq1", test_collfreq1 },
276 	    { "sortvalue1", test_sortvalue1 },
277 	    { "sortrel1", test_sortrel1 },
278 	    { "matchall1", test_matchall1 },
279 	    { "matchspy5", test_matchspy5 },
280 	    { "subclassablerefcount3", test_subclassablerefcount3 },
281 	    { "subclassablerefcount6", test_subclassablerefcount6 },
282 	    { "subclassablerefcount7", test_subclassablerefcount7 },
283 	    { "synonym1", test_synonym1 },
284 	    { "synonym2", test_synonym2 },
285 	    { "synonym3", test_synonym3 },
286 	    { "synonym4", test_synonym4 },
287 	    { "opmax1", test_opmax1 },
288 	    { "valuerange1", test_valuerange1 },
289 	    { "valuege1", test_valuege1 },
290 	    { "valuege2", test_valuege2 },
291 	    { "valuele1", test_valuele1 },
292 	    { "valuege4", test_valuege4 },
293 	    { "valuerange3", test_valuerange3 },
294 	    { "valuerange4", test_valuerange4 },
295 	    { "valuerangematchesub1", test_valuerangematchesub1 },
296 	    { "consistency3", test_consistency3 },
297 	    { "pctcutoff5", test_pctcutoff5 },
298 	    { "topercent3", test_topercent3 },
299 	    { "topercent4", test_topercent4 },
300 	    { "topercent5", test_topercent5 },
301 	    { "topercent6", test_topercent6 },
302 	    { "valueweightsource1", test_valueweightsource1 },
303 	    { "fixedweightsource1", test_fixedweightsource1 },
304 	    { "xor3", test_xor3 },
305 	    { "phrasealldocs1", test_phrasealldocs1 },
306 	    { "wildcard1", test_wildcard1 },
307 	    { "wildcard2", test_wildcard2 },
308 	    { "dualprefixwildcard1", test_dualprefixwildcard1 },
309 	    { "loosephrase1", test_loosephrase1 },
310 	    { "loosenear1", test_loosenear1 },
311 	    { "complexphrase1", test_complexphrase1 },
312 	    { "complexnear1", test_complexnear1 },
313 	    { "complexphrase2", test_complexphrase2 },
314 	    { "complexnear2", test_complexnear2 },
315 	    { "zeroestimate1", test_zeroestimate1 },
316 	    { "complexphrase3", test_complexphrase3 },
317 	    { "complexnear3", test_complexnear3 },
318 	    { "notandor1", test_notandor1 },
319 	    { "boolorbug1", test_boolorbug1 },
320 	    { "hoistnotbug1", test_hoistnotbug1 },
321 	    { "emptynot1", test_emptynot1 },
322 	    { "emptymaybe1", test_emptymaybe1 },
323 	    { "phraseweightcheckbug1", test_phraseweightcheckbug1 },
324 	    { "orphanedhint1", test_orphanedhint1 },
325 	    { "wildquery1", test_wildquery1 },
326 	    { "snippet1", test_snippet1 },
327 	    { "snippetstem1", test_snippetstem1 },
328 	    { "snippetphrase1", test_snippetphrase1 },
329 	    { "snippet_termcover1", test_snippet_termcover1 },
330 	    { "snippet_termcover2", test_snippet_termcover2 },
331 	    { "snippet_empty", test_snippet_empty },
332 	    { "snippet_start_nonspace", test_snippet_start_nonspace },
333 	    { "snippet_small_zerolength", test_snippet_small_zerolength },
334 	    { "snippet_empty_mset", test_snippet_empty_mset },
335 	    { "valuestream2", test_valuestream2 },
336 	    { "valuestream3", test_valuestream3 },
337 	    { "valuemapsource1", test_valuemapsource1 },
338 	    { "bm25weight4", test_bm25weight4 },
339 	    { "bm25weight5", test_bm25weight5 },
340 	    { "bm25plusweight2", test_bm25plusweight2 },
341 	    { "bm25plusweight3", test_bm25plusweight3 },
342 	    { "inl2weight3", test_inl2weight3 },
343 	    { "ifb2weight3", test_ifb2weight3 },
344 	    { "ineb2weight3", test_ineb2weight3 },
345 	    { "bb2weight3", test_bb2weight3 },
346 	    { "bb2weight4", test_bb2weight4 },
347 	    { "dlhweight1", test_dlhweight1 },
348 	    { "pl2weight3", test_pl2weight3 },
349 	    { "pl2plusweight4", test_pl2plusweight4 },
350 	    { "pl2plusweight5", test_pl2plusweight5 },
351 	    { "dphweight1", test_dphweight1 },
352 	    { "tfidfweight3", test_tfidfweight3 },
353 	    { "unigramlmweight4", test_unigramlmweight4 },
354 	    { "unigramlmweight5", test_unigramlmweight5 },
355 	    { "unigramlmweight7", test_unigramlmweight7 },
356 	    { "unigramlmweight8", test_unigramlmweight8 },
357 	    { "coordweight1", test_coordweight1 },
358 	    { 0, 0 }
359 	};
360 	result = max(result, test_driver::run(tests));
361     }
362     if ((properties&BACKEND)&&!(properties&MULTI)) {
363 	static const test_desc tests[] = {
364 	    { "multidb3", test_multidb3 },
365 	    { "multidb4", test_multidb4 },
366 	    { "multidb5", test_multidb5 },
367 	    { "rsetmultidb1", test_rsetmultidb1 },
368 	    { "rsetmultidb3", test_rsetmultidb3 },
369 	    { "uuid1", test_uuid1 },
370 	    { "rsetmultidb2", test_rsetmultidb2 },
371 	    { "multiexpand1", test_multiexpand1 },
372 	    { "valuestream1", test_valuestream1 },
373 	    { "valuemapsource2", test_valuemapsource2 },
374 	    { "decvalwtsource4", test_decvalwtsource4 },
375 	    { 0, 0 }
376 	};
377 	result = max(result, test_driver::run(tests));
378     }
379     if ((properties&BACKEND)&&!(properties&MULTI)&&!(properties&REMOTE)) {
380 	static const test_desc tests[] = {
381 	    { "estimaterounding1", test_estimaterounding1 },
382 	    { "checkinitweight1", test_checkinitweight1 },
383 	    { 0, 0 }
384 	};
385 	result = max(result, test_driver::run(tests));
386     }
387     if ((properties&BACKEND)&&!(properties&REMOTE)) {
388 	static const test_desc tests[] = {
389 	    { "matchdecider1", test_matchdecider1 },
390 	    { "matchdecider2", test_matchdecider2 },
391 	    { "matchdecider3", test_matchdecider3 },
392 	    { "consistency1", test_consistency1 },
393 	    { "userweight1", test_userweight1 },
394 	    { "valuesetmatchdecider2", test_valuesetmatchdecider2 },
395 	    { "matchspy1", test_matchspy1 },
396 	    { "checkzeromaxpartopt1", test_checkzeromaxpartopt1 },
397 	    { "externalsource4", test_externalsource4 },
398 	    { "postingsourcebounds1", test_postingsourcebounds1 },
399 	    { "sortfunctor1", test_sortfunctor1 },
400 	    { "changesorter1", test_changesorter1 },
401 	    { "sortfunctorempty1", test_sortfunctorempty1 },
402 	    { "checkstatsweight1", test_checkstatsweight1 },
403 	    { "checkstatsweight2", test_checkstatsweight2 },
404 	    { 0, 0 }
405 	};
406 	result = max(result, test_driver::run(tests));
407     }
408     if ((properties&BACKEND)&&!(properties&REMOTE)&&!(properties&MULTI)) {
409 	static const test_desc tests[] = {
410 	    { "pctcutoff4", test_pctcutoff4 },
411 	    { "externalsource1", test_externalsource1 },
412 	    { "externalsource3", test_externalsource3 },
413 	    { "changemaxweightsource1", test_changemaxweightsource1 },
414 	    { "emptyvalwtsource1", test_emptyvalwtsource1 },
415 	    { "checkstatsweight3", test_checkstatsweight3 },
416 	    { "checkstatsweight4", test_checkstatsweight4 },
417 	    { 0, 0 }
418 	};
419 	result = max(result, test_driver::run(tests));
420     }
421     if ((properties&BACKEND)&&!(properties&REMOTE)&&(properties&VALUESTATS)) {
422 	static const test_desc tests[] = {
423 	    { "sortfunctor3", test_sortfunctor3 },
424 	    { 0, 0 }
425 	};
426 	result = max(result, test_driver::run(tests));
427     }
428     if ((properties&BACKEND)&&!(properties&WRITABLE)) {
429 	static const test_desc tests[] = {
430 	    { "testlock2", test_testlock2 },
431 	    { 0, 0 }
432 	};
433 	result = max(result, test_driver::run(tests));
434     }
435     if ((properties&CHERT)) {
436 	static const test_desc tests[] = {
437 	    { "chertdatabasenotfounderror1", test_chertdatabasenotfounderror1 },
438 	    { "chertdatabaseopen1", test_chertdatabaseopen1 },
439 	    { "crashrecovery1", test_crashrecovery1 },
440 	    { 0, 0 }
441 	};
442 	result = max(result, test_driver::run(tests));
443     }
444     if ((properties&CHERT)||(properties&GLASS)) {
445 	static const test_desc tests[] = {
446 	    { "lockfileumask1", test_lockfileumask1 },
447 	    { "lockfilefd0or1", test_lockfilefd0or1 },
448 	    { "lockfilealreadyopen1", test_lockfilealreadyopen1 },
449 	    { "testlock1", test_testlock1 },
450 	    { "testlock4", test_testlock4 },
451 	    { "failedreplace1", test_failedreplace1 },
452 	    { "failedreplace2", test_failedreplace2 },
453 	    { "blocksize1", test_blocksize1 },
454 	    { "readonlyparentdir1", test_readonlyparentdir1 },
455 	    { "dbfilefd012", test_dbfilefd012 },
456 	    { "cursorbug1", test_cursorbug1 },
457 	    { "getrevision1", test_getrevision1 },
458 	    { "lazytablebug1", test_lazytablebug1 },
459 	    { 0, 0 }
460 	};
461 	result = max(result, test_driver::run(tests));
462     }
463     if ((properties&COMPACT)) {
464 	static const test_desc tests[] = {
465 	    { "compactmerge1", test_compactmerge1 },
466 	    { "compactstub1", test_compactstub1 },
467 	    { "compactstub2", test_compactstub2 },
468 	    { "compactstub3", test_compactstub3 },
469 	    { "compactstub4", test_compactstub4 },
470 	    { "compactempty1", test_compactempty1 },
471 	    { "compactoldmerge1", test_compactoldmerge1 },
472 	    { "compactoldstub1", test_compactoldstub1 },
473 	    { "compactoldstub2", test_compactoldstub2 },
474 	    { "compactoldstub3", test_compactoldstub3 },
475 	    { "compactoldstub4", test_compactoldstub4 },
476 	    { "compactoldempty1", test_compactoldempty1 },
477 	    { 0, 0 }
478 	};
479 	result = max(result, test_driver::run(tests));
480     }
481     if ((properties&COMPACT)&&!(properties&CHERT)) {
482 	static const test_desc tests[] = {
483 	    { "compacttofd1", test_compacttofd1 },
484 	    { "compacttofd2", test_compacttofd2 },
485 	    { 0, 0 }
486 	};
487 	result = max(result, test_driver::run(tests));
488     }
489     if ((properties&COMPACT)&&(properties&GENERATED)) {
490 	static const test_desc tests[] = {
491 	    { "compactmultichunks1", test_compactmultichunks1 },
492 	    { "compactmissingtables1", test_compactmissingtables1 },
493 	    { "compactmergesynonym1", test_compactmergesynonym1 },
494 	    { "compactmultipass1", test_compactmultipass1 },
495 	    { "compactoldmultichunks1", test_compactoldmultichunks1 },
496 	    { "compactoldmissingtables1", test_compactoldmissingtables1 },
497 	    { "compactoldmergesynonym1", test_compactoldmergesynonym1 },
498 	    { "compactoldmultipass1", test_compactoldmultipass1 },
499 	    { 0, 0 }
500 	};
501 	result = max(result, test_driver::run(tests));
502     }
503     if ((properties&COMPACT)&&(properties&GENERATED)&&!(properties&MULTI)) {
504 	static const test_desc tests[] = {
505 	    { "compactnorenumber1", test_compactnorenumber1 },
506 	    { "compactoldnorenumber1", test_compactoldnorenumber1 },
507 	    { 0, 0 }
508 	};
509 	result = max(result, test_driver::run(tests));
510     }
511     if ((properties&COMPACT)&&(properties&WRITABLE)) {
512 	static const test_desc tests[] = {
513 	    { "compact1", test_compact1 },
514 	    { 0, 0 }
515 	};
516 	result = max(result, test_driver::run(tests));
517     }
518     if ((properties&COMPACT)&&(properties&WRITABLE)&&!(properties&CHERT)) {
519 	static const test_desc tests[] = {
520 	    { "compactsingle1", test_compactsingle1 },
521 	    { 0, 0 }
522 	};
523 	result = max(result, test_driver::run(tests));
524     }
525     if ((properties&GENERATED)) {
526 	static const test_desc tests[] = {
527 	    { "msize1", test_msize1 },
528 	    { "msize2", test_msize2 },
529 	    { "xordecay1", test_xordecay1 },
530 	    { "ordecay1", test_ordecay1 },
531 	    { "ordecay2", test_ordecay2 },
532 	    { "orcheck1", test_orcheck1 },
533 	    { "getuniqueterms1", test_getuniqueterms1 },
534 	    { "nopositionbug1", test_nopositionbug1 },
535 	    { "netstats1", test_netstats1 },
536 	    { "matchspy2", test_matchspy2 },
537 	    { "matchspy4", test_matchspy4 },
538 	    { "valuerange5", test_valuerange5 },
539 	    { "valuerange6", test_valuerange6 },
540 	    { "valuerange7", test_valuerange7 },
541 	    { "topercent7", test_topercent7 },
542 	    { "subdbwithoutpos1", test_subdbwithoutpos1 },
543 	    { "snippetmisc1", test_snippetmisc1 },
544 	    { "snippet_cjkngrams", test_snippet_cjkngrams },
545 	    { "dlhweight3", test_dlhweight3 },
546 	    { "dphweight3", test_dphweight3 },
547 	    { 0, 0 }
548 	};
549 	result = max(result, test_driver::run(tests));
550     }
551     if ((properties&GENERATED)&&!(properties&REMOTE)) {
552 	static const test_desc tests[] = {
553 	    { "matchtimelimit1", test_matchtimelimit1 },
554 	    { 0, 0 }
555 	};
556 	result = max(result, test_driver::run(tests));
557     }
558     if ((properties&GENERATED)&&!(properties&REMOTE)&&!(properties&INMEMORY)) {
559 	static const test_desc tests[] = {
560 	    { "latlongpostingsource1", test_latlongpostingsource1 },
561 	    { 0, 0 }
562 	};
563 	result = max(result, test_driver::run(tests));
564     }
565     if ((properties&GENERATED)&&(properties&POSITIONAL)) {
566 	static const test_desc tests[] = {
567 	    { "phrasebug1", test_phrasebug1 },
568 	    { 0, 0 }
569 	};
570 	result = max(result, test_driver::run(tests));
571     }
572     if ((properties&GLASS)) {
573 	static const test_desc tests[] = {
574 	    { "notermlist1", test_notermlist1 },
575 	    { "getrevision2", test_getrevision2 },
576 	    { "glassdatabasenotfounderror1", test_glassdatabasenotfounderror1 },
577 	    { 0, 0 }
578 	};
579 	result = max(result, test_driver::run(tests));
580     }
581     if ((properties&INMEMORY)) {
582 	static const test_desc tests[] = {
583 	    { "testlock3", test_testlock3 },
584 	    { "stubdb6", test_stubdb6 },
585 	    { "stubdb8", test_stubdb8 },
586 	    { 0, 0 }
587 	};
588 	result = max(result, test_driver::run(tests));
589     }
590     if ((properties&METADATA)) {
591 	static const test_desc tests[] = {
592 	    { "metadata3", test_metadata3 },
593 	    { 0, 0 }
594 	};
595 	result = max(result, test_driver::run(tests));
596     }
597     if ((properties&METADATA)&&!(properties&INMEMORY)) {
598 	static const test_desc tests[] = {
599 	    { "metadata2", test_metadata2 },
600 	    { "metadata4", test_metadata4 },
601 	    { 0, 0 }
602 	};
603 	result = max(result, test_driver::run(tests));
604     }
605     if ((properties&MULTI)&&!(properties&REMOTE)) {
606 	static const test_desc tests[] = {
607 	    { "postingsourceshardindex1", test_postingsourceshardindex1 },
608 	    { 0, 0 }
609 	};
610 	result = max(result, test_driver::run(tests));
611     }
612     if ((properties&PATH)) {
613 	static const test_desc tests[] = {
614 	    { "stubdb1", test_stubdb1 },
615 	    { "stubdb2", test_stubdb2 },
616 	    { "stubdb3", test_stubdb3 },
617 	    { "stubdb5", test_stubdb5 },
618 	    { "stubdb9", test_stubdb9 },
619 	    { 0, 0 }
620 	};
621 	result = max(result, test_driver::run(tests));
622     }
623     if ((properties&POSITIONAL)) {
624 	static const test_desc tests[] = {
625 	    { "phrase3", test_phrase3 },
626 	    { "near1", test_near1 },
627 	    { "near2", test_near2 },
628 	    { "phrase1", test_phrase1 },
629 	    { "phrase2", test_phrase2 },
630 	    { "poslist1", test_poslist1 },
631 	    { "positfromtermit1", test_positfromtermit1 },
632 	    { 0, 0 }
633 	};
634 	result = max(result, test_driver::run(tests));
635     }
636     if ((properties&POSITIONAL)&&(properties&WRITABLE)) {
637 	static const test_desc tests[] = {
638 	    { "poslist2", test_poslist2 },
639 	    { "poslist3", test_poslist3 },
640 	    { "poslistupdate1", test_poslistupdate1 },
641 	    { 0, 0 }
642 	};
643 	result = max(result, test_driver::run(tests));
644     }
645     if ((properties&REMOTE)) {
646 	static const test_desc tests[] = {
647 	    { "matchdecider4", test_matchdecider4 },
648 	    { "closedb6", test_closedb6 },
649 	    { "keepalive1", test_keepalive1 },
650 	    { "externalsource2", test_externalsource2 },
651 	    { "sortfunctorremote1", test_sortfunctorremote1 },
652 	    { 0, 0 }
653 	};
654 	result = max(result, test_driver::run(tests));
655     }
656     if ((properties&REMOTE)&&(properties&WRITABLE)) {
657 	static const test_desc tests[] = {
658 	    { "protocolbug1", test_protocolbug1 },
659 	    { 0, 0 }
660 	};
661 	result = max(result, test_driver::run(tests));
662     }
663     if ((properties&REPLICAS)) {
664 	static const test_desc tests[] = {
665 	    { "replicate1", test_replicate1 },
666 	    { "replicate2", test_replicate2 },
667 	    { "replicate3", test_replicate3 },
668 	    { "replicate4", test_replicate4 },
669 	    { "replicate5", test_replicate5 },
670 	    { "replicate6", test_replicate6 },
671 	    { "replicate7", test_replicate7 },
672 	    { 0, 0 }
673 	};
674 	result = max(result, test_driver::run(tests));
675     }
676     if ((properties&SINGLEFILE)) {
677 	static const test_desc tests[] = {
678 	    { "embedded1", test_embedded1 },
679 	    { 0, 0 }
680 	};
681 	result = max(result, test_driver::run(tests));
682     }
683     if ((properties&SPELLING)) {
684 	static const test_desc tests[] = {
685 	    { "qp_spell1", test_qp_spell1 },
686 	    { "qp_spell2", test_qp_spell2 },
687 	    { "qp_spellwild1", test_qp_spellwild1 },
688 	    { "qp_spellpartial1", test_qp_spellpartial1 },
689 	    { "qp_synonym1", test_qp_synonym1 },
690 	    { "spell1", test_spell1 },
691 	    { "spell2", test_spell2 },
692 	    { "spell3", test_spell3 },
693 	    { "spell4", test_spell4 },
694 	    { "spell5", test_spell5 },
695 	    { "spell6", test_spell6 },
696 	    { "spell7", test_spell7 },
697 	    { "spell8", test_spell8 },
698 	    { "tg_spell1", test_tg_spell1 },
699 	    { 0, 0 }
700 	};
701 	result = max(result, test_driver::run(tests));
702     }
703     if ((properties&SPELLING)||(properties&REMOTE)) {
704 	static const test_desc tests[] = {
705 	    { "spell0", test_spell0 },
706 	    { 0, 0 }
707 	};
708 	result = max(result, test_driver::run(tests));
709     }
710     if ((properties&SYNONYMS)) {
711 	static const test_desc tests[] = {
712 	    { "qpsynonympartial1", test_qpsynonympartial1 },
713 	    { "qp_synonym2", test_qp_synonym2 },
714 	    { "qp_synonym3", test_qp_synonym3 },
715 	    { "qp_scale1", test_qp_scale1 },
716 	    { 0, 0 }
717 	};
718 	result = max(result, test_driver::run(tests));
719     }
720     if ((properties&TRANSACTIONS)) {
721 	static const test_desc tests[] = {
722 	    { "closedb5", test_closedb5 },
723 	    { "badtransaction1", test_badtransaction1 },
724 	    { "committransaction1", test_committransaction1 },
725 	    { "canceltransaction1", test_canceltransaction1 },
726 	    { "canceltransaction2", test_canceltransaction2 },
727 	    { 0, 0 }
728 	};
729 	result = max(result, test_driver::run(tests));
730     }
731     if ((properties&TRANSACTIONS)&&!(properties&REMOTE)) {
732 	static const test_desc tests[] = {
733 	    { "nodocs1", test_nodocs1 },
734 	    { 0, 0 }
735 	};
736 	result = max(result, test_driver::run(tests));
737     }
738     if ((properties&TRANSACTIONS)&&(properties&PATH)) {
739 	static const test_desc tests[] = {
740 	    { "canceltransaction3", test_canceltransaction3 },
741 	    { 0, 0 }
742 	};
743 	result = max(result, test_driver::run(tests));
744     }
745     if ((properties&TRANSACTIONS)&&(properties&VALUESTATS)) {
746 	static const test_desc tests[] = {
747 	    { "valuestats2", test_valuestats2 },
748 	    { "valuestats4", test_valuestats4 },
749 	    { 0, 0 }
750 	};
751 	result = max(result, test_driver::run(tests));
752     }
753     if ((properties&VALUESTATS)) {
754 	static const test_desc tests[] = {
755 	    { "valueweightsource2", test_valueweightsource2 },
756 	    { "valuestats3", test_valuestats3 },
757 	    { 0, 0 }
758 	};
759 	result = max(result, test_driver::run(tests));
760     }
761     if ((properties&VALUESTATS)&&!(properties&MULTI)) {
762 	static const test_desc tests[] = {
763 	    { "valueweightsource3", test_valueweightsource3 },
764 	    { 0, 0 }
765 	};
766 	result = max(result, test_driver::run(tests));
767     }
768     if ((properties&WRITABLE)) {
769 	static const test_desc tests[] = {
770 	    { "alldocspl1", test_alldocspl1 },
771 	    { "alldocspl2", test_alldocspl2 },
772 	    { "totaldoclen1", test_totaldoclen1 },
773 	    { "exceed32bitcombineddb1", test_exceed32bitcombineddb1 },
774 	    { "modifiedpostlist1", test_modifiedpostlist1 },
775 	    { "doclenaftercommit1", test_doclenaftercommit1 },
776 	    { "valuesaftercommit1", test_valuesaftercommit1 },
777 	    { "replacedoc8", test_replacedoc8 },
778 	    { "newfreelistblock1", test_newfreelistblock1 },
779 	    { "splitpostings1", test_splitpostings1 },
780 	    { "closedb7", test_closedb7 },
781 	    { "metadata1", test_metadata1 },
782 	    { "metadata5", test_metadata5 },
783 	    { "valuerange2", test_valuerange2 },
784 	    { "possubqueries1", test_possubqueries1 },
785 	    { "qp_flag_wildcard1", test_qp_flag_wildcard1 },
786 	    { "qp_flag_wildcard2", test_qp_flag_wildcard2 },
787 	    { "qp_flag_wildcard3", test_qp_flag_wildcard3 },
788 	    { "qp_flag_partial1", test_qp_flag_partial1 },
789 	    { "qp_value_range3", test_qp_value_range3 },
790 	    { "qp_range3", test_qp_range3 },
791 	    { "qp_stopword_group1", test_qp_stopword_group1 },
792 	    { "modtermwdf1", test_modtermwdf1 },
793 	    { "bigoaddvalue1", test_bigoaddvalue1 },
794 	    { "serialise_document2", test_serialise_document2 },
795 	    { "decvalwtsource1", test_decvalwtsource1 },
796 	    { "decvalwtsource2", test_decvalwtsource2 },
797 	    { "decvalwtsource3", test_decvalwtsource3 },
798 	    { "decvalwtsource5", test_decvalwtsource5 },
799 	    { "adddoc1", test_adddoc1 },
800 	    { "adddoc3", test_adddoc3 },
801 	    { "adddoc4", test_adddoc4 },
802 	    { "adddoc6", test_adddoc6 },
803 	    { "implicitendsession1", test_implicitendsession1 },
804 	    { "databaseassign1", test_databaseassign1 },
805 	    { "deldoc1", test_deldoc1 },
806 	    { "deldoc2", test_deldoc2 },
807 	    { "deldoc3", test_deldoc3 },
808 	    { "deldoc4", test_deldoc4 },
809 	    { "deldoc5", test_deldoc5 },
810 	    { "deldoc6", test_deldoc6 },
811 	    { "replacedoc1", test_replacedoc1 },
812 	    { "replacedoc2", test_replacedoc2 },
813 	    { "replacedoc3", test_replacedoc3 },
814 	    { "replacedoc4", test_replacedoc4 },
815 	    { "replacedoc5", test_replacedoc5 },
816 	    { "replacedoc6", test_replacedoc6 },
817 	    { "uniqueterm1", test_uniqueterm1 },
818 	    { "allpostlist2", test_allpostlist2 },
819 	    { "emptyterm2", test_emptyterm2 },
820 	    { "phraseorneartoand1", test_phraseorneartoand1 },
821 	    { "longpositionlist1", test_longpositionlist1 },
822 	    { "consistency2", test_consistency2 },
823 	    { "nomoredocids1", test_nomoredocids1 },
824 	    { "termtoolong1", test_termtoolong1 },
825 	    { "postlist7", test_postlist7 },
826 	    { "modifyvalues1", test_modifyvalues1 },
827 	    { 0, 0 }
828 	};
829 	result = max(result, test_driver::run(tests));
830     }
831     if ((properties&WRITABLE)&&!(properties&INMEMORY)) {
832 	static const test_desc tests[] = {
833 	    { "qpmemoryleak1", test_qpmemoryleak1 },
834 	    { "closedb4", test_closedb4 },
835 	    { 0, 0 }
836 	};
837 	result = max(result, test_driver::run(tests));
838     }
839     if ((properties&WRITABLE)&&!(properties&INMEMORY)&&!(properties&REMOTE)) {
840 	static const test_desc tests[] = {
841 	    { "replacedoc7", test_replacedoc7 },
842 	    { 0, 0 }
843 	};
844 	result = max(result, test_driver::run(tests));
845     }
846     if ((properties&WRITABLE)&&!(properties&INMEMORY)&&!(properties&REMOTE)&&!(properties&MULTI)) {
847 	static const test_desc tests[] = {
848 	    { "databasemodified1", test_databasemodified1 },
849 	    { 0, 0 }
850 	};
851 	result = max(result, test_driver::run(tests));
852     }
853     if ((properties&WRITABLE)&&!(properties&MULTI)) {
854 	static const test_desc tests[] = {
855 	    { "adddoc2", test_adddoc2 },
856 	    { "adddoc5", test_adddoc5 },
857 	    { 0, 0 }
858 	};
859 	result = max(result, test_driver::run(tests));
860     }
861     if ((properties&WRITABLE)&&!(properties&REMOTE)) {
862 	static const test_desc tests[] = {
863 	    { "sortfunctor2", test_sortfunctor2 },
864 	    { 0, 0 }
865 	};
866 	result = max(result, test_driver::run(tests));
867     }
868     if ((properties&WRITABLE)&&(properties&METADATA)) {
869 	static const test_desc tests[] = {
870 	    { "closedb10", test_closedb10 },
871 	    { "writeread1", test_writeread1 },
872 	    { 0, 0 }
873 	};
874 	result = max(result, test_driver::run(tests));
875     }
876     if ((properties&WRITABLE)&&(properties&PATH)) {
877 	static const test_desc tests[] = {
878 	    { "retrylock1", test_retrylock1 },
879 	    { "closedb2", test_closedb2 },
880 	    { "cursordelbug1", test_cursordelbug1 },
881 	    { 0, 0 }
882 	};
883 	result = max(result, test_driver::run(tests));
884     }
885     if ((properties&WRITABLE)&&(properties&SPELLING)) {
886 	static const test_desc tests[] = {
887 	    { "closedb8", test_closedb8 },
888 	    { 0, 0 }
889 	};
890 	result = max(result, test_driver::run(tests));
891     }
892     if ((properties&WRITABLE)&&(properties&SYNONYMS)) {
893 	static const test_desc tests[] = {
894 	    { "closedb9", test_closedb9 },
895 	    { "synonymitor1", test_synonymitor1 },
896 	    { 0, 0 }
897 	};
898 	result = max(result, test_driver::run(tests));
899     }
900     if ((properties&WRITABLE)&&(properties&VALUESTATS)) {
901 	static const test_desc tests[] = {
902 	    { "valuestats1", test_valuestats1 },
903 	    { "valueweightsource5", test_valueweightsource5 },
904 	    { 0, 0 }
905 	};
906 	result = max(result, test_driver::run(tests));
907     }
908