public IGeneratorRun Run() { if (skipRuns) { return(generatorRunCreator(false, runs.Average(x => x.Time), (int)runs.Average(x => x.Iterations))); } var run = runner.Run(); runs.Add(run); CheckIfShouldStop(); return(run); }
public virtual int Run(TempestRunnerArguments runnerArgs) { Type generatorType = null; if (runnerArgs.GeneratorName.IsNotNullOrWhiteSpace()) { var directoriesToSearch = _directoryFinder.FindGeneratorDirectories(runnerArgs.SearchPath).ToArray(); generatorType = _generatorFinder.LocateGenerator(directoriesToSearch, runnerArgs.GeneratorName); } if (generatorType == null && runnerArgs.GeneratorName.IsNullOrWhiteSpace()) { generatorType = GetGeneratorFromSelection(runnerArgs); } if (generatorType == null) { throw new GeneratorNotFoundException("No generators found"); } var templateDirectory = generatorType.GetAssembly() .GetAssemblyDirectory() .GetDirectories("Template") .FirstOrDefault() ?? generatorType.GetAssembly().GetAssemblyDirectory(); var generatorContext = GeneratorContextFactory.Create(generatorType, _directoryFinder.FindTempestExecutableDirectory(), _directoryFinder.FindWorkingDirectory(), templateDirectory, x => { x.Arguments = runnerArgs.GeneratorParameters; x.GeneratorName = runnerArgs.GeneratorName; }); // var generatorContext = new GeneratorContext // { // GeneratorType = generatorType, // Arguments = runnerArgs.GeneratorParameters, // GeneratorName = runnerArgs.GeneratorName, // TemplateDirectory = generatorType.GetAssembly().GetAssemblyDirectory().GetDirectories("Template").FirstOrDefault() ?? generatorType.GetAssembly().GetAssemblyDirectory(), // WorkingDirectory = _directoryFinder.FindWorkingDirectory(), // TempestDirectory = _directoryFinder.FindTempestExecutableDirectory() // }; return(_generatorRunner.Run(generatorContext)); }
public BenchmarkJobResult Execute() { // TODO: // generatorRunner.EnableBenchmark(true); var runs = new List <IGeneratorRun>(); for (int i = 0; i < repeats; i++) { var generatorRun = generatorRunner.Run(); runs.Add(generatorRun); OnPreview?.Invoke(GetResult($"Run {i + 1}/{repeats}", runs)); if (ShouldEarlyStop(runs)) { break; } } return(GetResult(inputName, runs)); }