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.