Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }