|
Определённые проблемы возникают при тестировании программ, в результатах которых присутствуют недетерминированные элементы (время, путь).
Есть два способа решить эту проблему
Пример реализации такого "тестового таймера" ниже:
time_t get_time() { if (cmd_line_options::use_test_timer) { static time_t sres= 1; return sres++; } else { time_t res; time( return res; } } |
Однако, иногда такой способ не подходит, кроме того, он всё-таки тестирует не совсем ту программу, с которой работает пользователь.
Если программа в выводе использует какой-то абсолютный путь, то это тоже может стать проблемой, так как тесты могут запускаться из произвольного места на диске. В таком случае приходится использовать не напрямую exec_check , а тестовый скрипт из следующих команд:
|