Cómo usar la redirección en cmake add_test

Tengo una aplicación de consola llamada "foo", que toma un archivo de texto de referencia como entrada (in.txt) y genera texto en la salida estándar (quiero mantener este comportamiento).

En make (no cmake), uso un objetivo de prueba, que llama a foo y redirige la salida a un archivo (out.txt) de la siguiente manera. Luego, uso diff para comparar el archivo out.txt con la referencia esperada (ref.txt)

test:
    ./foo -a test/in.txt > test/out.txt
    diff test/out.txt test/ref.txt

Esto funciona bien usando make. Ahora mi pregunta es;¿Cómo puedo usar cmake para crear un Makefile similar?

Desde un subdirectorio llamado build, intenté

project(foo)
...
add_test(NAME test1 COMMAND ./foo ../test/in.txt > ../test/out.txt)
enable_testing()

Usando cmake versión 3.5, obtengo un Makefile sin errores, pero cuando llamomake test, la prueba en sí falla. Parece el comando cmakeadd_test admite argumentos de línea de comandos, pero no la redirección. Traté de citas y escapar sin éxito. Como no pude pasar esta parte, no intenté usar diff. Me imagino que podría empacar foo y diff en una línea usando & como puedes hacer con bash. Ese sería el segundo paso.

Respuestas a la pregunta(2)

Su respuesta a la pregunta