public static void TestVeryLargeNumberOfEmptyCommands(Logger logger) { string appPath = VirtualFileSystem.GetAbsolutePath("/data/TestVeryLargeNumberOfEmptyCommands"); string dbPath = appPath + "/TestVeryLargeNumberOfEmptyCommands"; if (Directory.Exists(dbPath)) Directory.Delete(dbPath, true); Directory.CreateDirectory(dbPath); VirtualFileSystem.MountFileSystem("/data/db", dbPath); logger.ActivateLog(LogMessageType.Debug); var builder = new Builder(appPath, "Windows", "index", "inputHashes", logger) { BuilderName = "TestBuilder" }; var steps = new List<BuildStep>(); const int StepsPerLevel = 5; const int MaxLevel = 5; BuildStepsRecursively(builder, steps, StepsPerLevel, MaxLevel); int stepCount = 0; for (var i = 0; i < MaxLevel; ++i) { stepCount += (int)Math.Pow(StepsPerLevel, i + 1); } Debug.Assert(steps.Count == stepCount); logger.Info(stepCount + " steps registered."); logger.Info("Starting builder (logger disabled)"); logger.ActivateLog(LogMessageType.Fatal); builder.Run(Builder.Mode.Build); logger.ActivateLog(LogMessageType.Debug); logger.Info("Build finished (logger re-enabled)"); foreach (BuildStep step in steps) { Debug.Assert(step.Status == ResultStatus.Successful); } }