Как использовать перенаправление в 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. Это был бы второй шаг.

Ответы на вопрос(2)

Ваш ответ на вопрос