Ejemplo n.º 1
0
        private ExecuteResult Execute(Benchmark benchmark, ILogger logger, string exePath, string workingDirectory, string args, IDiagnoser diagnoser, IResolver resolver, IConfig config)
        {
            ConsoleHandler.EnsureInitialized(logger);

            try
            {
                using (var process = new Process {
                    StartInfo = CreateStartInfo(benchmark, exePath, args, workingDirectory, resolver)
                })
                {
                    var loggerWithDiagnoser = new SynchronousProcessOutputLoggerWithDiagnoser(logger, process, diagnoser, benchmark, config);

                    return(Execute(process, benchmark, loggerWithDiagnoser, logger));
                }
            }
            finally
            {
                ConsoleHandler.Instance.ClearProcess();
            }
        }
Ejemplo n.º 2
0
        private ExecuteResult Execute(BenchmarkCase benchmarkCase, BenchmarkId benchmarkId, ILogger logger, string exePath, string workingDirectory, string args, IDiagnoser diagnoser, IResolver resolver, IConfig config)
        {
            ConsoleHandler.EnsureInitialized(logger);

            try
            {
                using (var process = new Process {
                    StartInfo = CreateStartInfo(benchmarkCase, exePath, args, workingDirectory, resolver)
                })
                {
                    var loggerWithDiagnoser = new SynchronousProcessOutputLoggerWithDiagnoser(logger, process, diagnoser, benchmarkCase, benchmarkId, config);

                    diagnoser?.Handle(HostSignal.BeforeProcessStart, new DiagnoserActionParameters(process, benchmarkCase, benchmarkId, config));

                    return(Execute(process, benchmarkCase, loggerWithDiagnoser, logger));
                }
            }
            finally
            {
                ConsoleHandler.Instance.ClearProcess();

                diagnoser?.Handle(HostSignal.AfterProcessExit, new DiagnoserActionParameters(null, benchmarkCase, benchmarkId, config));
            }
        }