GNU make: invirtiendo el éxito sub-proceso?
Pregunta
Tengo un archivo de maquillaje para un sistema con guión, con una gran cantidad de pruebas que deben pasar. Cada prueba es una llamada independiente a la aplicación de secuencias de comandos:
#----------------------------------------------------------------------------
# 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 debe devolver el fracaso. Sé que -
ignorará el estado de retorno, pero tiene que ser algo sencillo para invertir el estado de retorno para que pueda ejecutar
#----------------------------------------------------------------------------
# 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
...
Solución
Utilice el comando !
.
echo This returns success
! echo This returns failure
Otros consejos
Supongamos que desea asegurarse de que el estado de salida de "bin / kin test5.kin" es 5. A continuación, sólo escribir lo siguiente:
run-test5:
bin/kin test5.bin; test $$? = 5
Para las pruebas más elaboradas ver 'ayuda de prueba' y 'prueba de hombre'.
Nota: tiendo a evitar signos de admiración, ya que suele ser imposible de copiar / pegar en un shell interactivo (ya que busca en la historia)
.