static void Main(string[] args) { if (args.Length == 0) { Console.WriteLine("Usage: SumStore.exe [single|concurrent|test] [populate|recover|continue] [guid]"); return; } if (!Directory.Exists("logs")) { Directory.CreateDirectory("logs"); } int nextArg = 0; var test = default(IFasterRecoveryTest); var type = args[nextArg++]; if (type == "single") { test = new SingleThreadedRecoveryTest(); } else if (type == "concurrent") { int threadCount = int.Parse(args[nextArg++]); test = new ConcurrentRecoveryTest(threadCount); } else if (type == "test") { int threadCount = int.Parse(args[nextArg++]); test = new ConcurrentTest(threadCount); } else { Debug.Assert(false); } var task = args[nextArg++]; if (task == "populate") { test.Populate(); } else if (task == "recover") { Guid version = Guid.Parse(args[nextArg++]); test.RecoverAndTest(version, version); } else if (task == "continue") { test.Continue(); } else { Debug.Assert(false); } }
static unsafe void Main(string[] args) { int nextArg = 0; var test = default(IFasterRecoveryTest); var type = args[nextArg++]; if (type == "single") { test = new SingleThreadedRecoveryTest(); } else if (type == "concurrent") { int threadCount = int.Parse(args[nextArg++]); test = new ConcurrentRecoveryTest(threadCount); } else if (type == "test") { int threadCount = int.Parse(args[nextArg++]); test = new ConcurrentTest(threadCount); } else { Debug.Assert(false); } var task = args[nextArg++]; if (task == "populate") { test.Populate(); } else if (task == "recover") { Guid version = Guid.Parse(args[nextArg++]); test.RecoverAndTest(version, version); } else if (task == "continue") { test.Continue(); } else { Debug.Assert(false); } }