2009-10-09 21 views
5

Tengo un archivo make para un sistema con guiones, con muchas pruebas que deberían pasar. Cada prueba es una llamada separada a la aplicación de scripting:GNU make: ¿invertir el éxito del subproceso?

#---------------------------------------------------------------------------- 
# run test scripts in the module::test 
#---------------------------------------------------------------------------- 
scripted_tests: bin/kin modules/test/actor_equality.kin modules/test/actor_fibre.kin ... 
    bin/kin modules/test/actor_equality.kin 
    bin/kin modules/test/actor_fibre.kin 
    ... 

Lo que está bien. También tengo algunas pruebas similares que deberían devolver la falla. Sé que - ignorará el estado de retorno, pero debe ser algo sencillo para invertir el estado de retorno para que pueda funcionar

#---------------------------------------------------------------------------- 
# run test scripts in the module::test::errors 
#---------------------------------------------------------------------------- 
inverse_tests: bin/kin modules/test/error/bad_function.kin ... 
    not bin/kin modules/test/error/bad_function.kin 
    ... 

Respuesta

8

utilizar el comando !.

echo This returns success 
! echo This returns failure 
+1

Específicamente, es "! Bin/kin" en lugar de "! Bin/kin", que probé y obtuve un error –

+0

Muy útil cuando se utiliza grep para detectar la presencia de un mensaje de error en el resultado del registro de compilación. '! grep output.log -i "error msg" ' – shuckc

1

Suponga que desea asegurarse de que el estado de salida de "bin/kin test5.kin" es 5. A continuación, acaba de escribir esto:

run-test5: 
    bin/kin test5.bin; test $$? = 5 

Para ver más elaborado pruebas de 'prueba de ayuda' y 'prueba de hombre'.

Nota: tiendo a evitar los signos de admiración porque normalmente es imposible copiarlos y pegarlos en un intérprete interactivo (ya que busca en el historial).

Cuestiones relacionadas