Я пытаюсь написать сценарий оболочки, который дает различные входные данные для программы и проверяет выходные данные, являются ли они ожидаемыми результатами или нет.В заключение этих тестов я решаю, есть ли ошибка в моей исполняемой программе.
Я запускаю свою программу через сценарий оболочки с ./my_program arg1 arg2
(arg1 и arg2 - аргументы командной строки моей программы).После этого оболочка сценария постоянно выдает различные входные данные для my_program
, чтобы проверить его, и в управляющем терминале (или консоли) стандартные выходные данные итеративно записываются следующим образом:
Connection established.
Intermediate result is expected_intermediate_result1
Final result is expected_result1
Connection established.
Intermediate result is expected_intermediate_result2
Final result is expected_result2
И это продолжается.Для каждого входа его выход известен.Таким образом, они сопоставляются раньше.
При сбое подключения: записывается Error in connection!
Или результат может быть неправильным:
Connection established.
Intermediate result is result1
Final result is wrong_result1
Помимо ввода данных, сценарий имеет еще одну цель: проверитьрезультат.
Итак, я хочу прочитать результаты с консоли и сравнить их с ожидаемым результатом, чтобы определить случай, в котором есть несоответствие.
Я хочу, чтобы ваша помощь отредактировала этот код:
while read console line-by-line
if the line is other than expected result
store this case to text file
done
Некоторые предостережения: я не хочу использовать expect
.Я просто хочу прочитать выводы программы, записанной в консоли.Я не использую файл журнала, поэтому поиск по файлу (grep
) не будет использоваться.
Спасибо за помощь!