public static void do_test(DbgGUI window, string[] args)
{
if (args.Length < 1) {
Console.WriteLine("Usage:\n index - clear the db and index email\n search - perform search tests");
Environment.Exit(1);
}
if (args[0].CompareTo("index") == 0) {
LayerManager db = new LayerManager(InitMode.NEW_REGION, @"c:\EmailTest\DB");
db.startMaintThread();
EmailInjector injector = new EmailInjector(db, window);
injector.parse_email_messages();
injector.indexer.find_email_test();
} else if (args[0].CompareTo("search") == 0) {
LayerManager db = new LayerManager(InitMode.RESUME, @"c:\EmailTest\DB");
EmailInjector injector = new EmailInjector(db, window);
window.debugDump(db);
injector.indexer.find_email_test();
} else if (args[0].CompareTo("merge") == 0) {
LayerManager db = new LayerManager(InitMode.RESUME, @"c:\EmailTest\DB");
window.debugDump(db);
// merge...
for (int x = 0; x < 30; x++) {
var mc = db.rangemapmgr.mergeManager.getBestCandidate();
window.debugDump(db, mc);
if (mc == null) {
Console.WriteLine("no more merge candidates.");
break;
}
db.performMerge(mc);
window.debugDump(db);
}
} else if (args[0].CompareTo("test") == 0) {
LayerManager db = new LayerManager(InitMode.RESUME, @"c:\EmailTest\DB");
window.debugDump(db);
var key1 = new RecordKey()
.appendParsedKey(@".zdata/index/which/c:\EmailTest\Data\Sent:5441/10");
var key2 = new RecordKey()
.appendParsedKey(@".zdata/index/zzn/c:\EmailTest\Data\saved_mail_2003:4962/385");
var segkey = new RecordKey()
.appendParsedKey(".ROOT/GEN")
.appendKeyPart(new RecordKeyType_Long(1))
.appendKeyPart(key1)
.appendKeyPart(key2);
var nextrow = db.FindNext(segkey,false);
Console.WriteLine("next: {0}",nextrow);
var exactRow = db.FindNext(nextrow.Key, true);
Console.WriteLine("refind: {0}", exactRow);
}
Console.WriteLine("done....");
Environment.Exit(0);
}