SourceForge.net Logo
prevtopnext
Система тестирования izh_test
    Виды тестов
        test_script - Тестовая последовательность примитивных действий
exec_check - Запуск программы и сравнение её результата с эталоном

Команда позволяет выполнять все действия аналогичные одноимённому тесту exec_check .

Полное описание команды выглядит как:
<exec_check>
  <cmd>command line for test</cmd>
  <out>test result base path</out>
  <in>name of file to send to input</in>
  <input>text to send to input</input>
</exec_check>
Здесь:
cmd

Командная строка.

Результат запуска этой командной строки будет сравниваться с эталонным.

Система запускает тест, не добавляя к этой строке ничего (только заменяя переменные) из произвольной директории на файловой системе.

Таким образом, нужно либо указывать абсолютный путь к исполняемому файлу, либо использовать переменную подстановки %test_dir% , которая раскрывается в путь к директории, в которой лежит описание данного теста.

out

Базовое название файла, в котором будет сохраняться результат.

Предполагается, что имеет расширение.

Если файл имеет вид [имя_файла].[последнее_расширение] то

  • имя файла-результата строится как [имя_файла].result.[последнее_расширение],
  • имя файла-эталона как [имя_файла].etalon.[последнее_расширение],
  • имя файла-разницы как [имя_файла].diff.

При использовании к имени файла автоматически добавляется путь к файлу, в котором лежит описание теста, так что %test_dir% использовать не надо.

in

Имя файла, содержимое которого будет подаваться на стандартный вход тестируемой программы.

Если поля in и input (смотри далее) пустые, то на стандартный вход программы ничего не подаётся.

При использовании к имени файла автоматически добавляется путь к файлу, в котором лежит описание теста, так что %test_dir% использовать не надо.

input

Текст, который будет подаваться на вход тестируемой программы.

Имеет смысл только если поле in (смотри предыдущее описание) пустое.

В случае если это не так (в поле in задано имя файла с входными данными), на вход будет подаваться всё-таки содержимое файла, а содержимое поля input будет просто проигнорировано.

Если поля in и input (смотри выше) пустые, то на стандартный вход программы ничего не подаётся.

Поскольку данная команда может выполняться только в составе тестового скрипта , который уже имеет спецификатор с названиями, собственный спецификатор с названиями команде в отличие от одноимённого теста не нужен.

Команда просто сравнивает содержимое файла-результата с файлом-эталоном.

Если содержимое файлов совпадает, файл-результат удаляется.

Если содержимое файлов не совпадает, файл-результат не удаляется и команда возвращает признак неуспешности теста.

Команда может быть использована в частности для тестирования программ, которые помимо того, что выдают результат своей работы на стандартный поток вывода, меняют ещё как-то файлы в соседней директории. Такие изменения можно проверить в том же тестовом скрипте , используя check .


prevtopnext

SourceForge.net Logo