static int Main(string[] args) { Console.WriteLine("Kordis50ProductTestParser start, dt={0}", DateTime.Now); // Разбор параметров командной строки int res = TestParametersReader.ReadTestParameters(args); if (SystemParameters.FAILED(res)) { System.Console.Error.WriteLine("Failed"); #if DEBUG Console.ReadKey(true); #endif return(SystemParameters.RETURN_CODE_FAILED_ARG_PARAMETR); } // Прошивка платы res = FlashProgrammer.ProgrammFlash(); if (SystemParameters.FAILED(res)) { System.Console.Error.WriteLine("Failed"); #if DEBUG Console.ReadKey(true); #endif return(SystemParameters.RETURN_CODE_FAILED_PROGRAMM_FIRMWARE); } // Чтение и анализ трассировки res = TraceReader.ReadTrace(); if (SystemParameters.FAILED(res)) { System.Console.Error.WriteLine("Failed"); #if DEBUG Console.ReadKey(true); #endif return(res); } #if DEBUG Console.ReadKey(true); #endif return(SystemParameters.RETURN_CODE_SUCCESS); }
public static int ReadTrace() { TestExecutionParameters parameters = TestParametersReader.GetTestExecutionParameters(); var initialDateTime = DateTime.Now; int returnCode = SystemParameters.RETURN_CODE_SUCCESS; // Запуск процесса rttLogger _rttLoggerProcess = new Process(); returnCode = StartRttLoggerProcess(); if (SystemParameters.FAILED(returnCode)) { return(returnCode); } // Подготовка параметров _lineCounter = 0; _currentState = TestExecutionStates.NotStarted; File.Delete(LOG_FILE_NAME_COPY); // Ожидаем начало выполнения теста if (!WaitForState(TestExecutionStates.Started, parameters.StartTimeout)) { // Тест не запустился за отведенное время Console.WriteLine("ERROR: timeout start, timeout={0}, duration={1}", parameters.StartTimeout, DateTime.Now - initialDateTime); returnCode = SystemParameters.RETURN_CODE_FAILED_START_TEST; } if (SystemParameters.SUCCESSED(returnCode)) { // Тест начал выполняться, ожидаем его завершения if (!WaitForState(TestExecutionStates.StopFailed, parameters.EndTimeout)) { // Тест не завершился за отведенное время Console.WriteLine("ERROR: timeout end, timeout={0}, duration={1}", parameters.EndTimeout, DateTime.Now - initialDateTime); returnCode = SystemParameters.RETURN_CODE_FAILED_STOP_TEST; } } if (SystemParameters.SUCCESSED(returnCode)) { // Тест завершился. Проверяем код результата if (_currentState == TestExecutionStates.StopSucceeded) { // Тест выполнен успешно Console.WriteLine("test PASSED, dt={0}", DateTime.Now); returnCode = SystemParameters.RETURN_CODE_SUCCESS; } else { // Тест завершился ошибкой Console.WriteLine("ERROR: test FAILED, dt={0}", DateTime.Now); returnCode = SystemParameters.RETURN_CODE_TEST_FAILED; } } try { // Остановка процесса StopRttLoggerProcess(); } catch { // Если не удалось завершить процесс JLinkRTTLogger, значит он уже завершен. } SaveLogFile(); File.Delete(LOG_FILE_NAME); return(returnCode); }