Как использовать перенаправление в cmake add_test
У меня есть консольное приложение под названием "foo", которое принимает в качестве входных данных текстовый файл ссылки (in.txt) и генерирует текст при стандартном выводе (я хочу сохранить это поведение).
В make (не cmake) я использую цель теста, которая вызывает foo и перенаправляет вывод в файл (out.txt) следующим образом. Затем я использую diff для сравнения файла out.txt с ожидаемой ссылкой (ref.txt)
test:
./foo -a test/in.txt > test/out.txt
diff test/out.txt test/ref.txt
Это отлично работает, используя make. Теперь мой вопрос:Как я могу использовать cmake для создания аналогичного Makefile?
Из подкаталога под названием build, я попытался
project(foo)
...
add_test(NAME test1 COMMAND ./foo ../test/in.txt > ../test/out.txt)
enable_testing()
Используя cmake версии 3.5, я получаю Makefile без ошибок, но когда я звонюmake test
Сам тест не пройден. Кажется, команда cmakeadd_test
поддерживает аргументы командной строки, но не перенаправление. Я попробовал цитаты и избежать успеха. Поскольку я не мог пройти эту часть, я не пытался использовать diff. Я просто представляю, что могу упаковать foo и diff в одну строку, используя &, как вы можете сделать с bash. Это был бы второй шаг.