2009-10-09 4 views
5

필자는 테스트를 통과해야하는 많은 스크립트 시스템을위한 make 파일을 만들었습니다. 각 테스트는 스크립팅 응용 프로그램에 대한 별도의 호출입니다.GNU make : 하위 프로세스를 뒤집을 수 있습니까?

#---------------------------------------------------------------------------- 
# 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 
    ... 

어느 쪽이 좋을까요? 나는 또한 실패를 돌려줘야하는 비슷한 테스트를 가지고있다. 나는 내가

#---------------------------------------------------------------------------- 
# 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 
    ... 

답변

8

! 명령을 사용하여 실행할 수 있습니다 -는 반환 상태를 반전 간단하게 뭔가를 반환 상태를 무시합니다,하지만 거기에 있어야한다는 것을 알고있다. 테스트의 도움 테스트 '를 참조 정교 자세한 내용은

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

:

echo This returns success 
! echo This returns failure 
+1

특히 "! bin/kin"이 아닌 "! bin/kin"보다 오류가 발생했습니다. –

+0

grep을 사용하여 빌드 로그 출력에 오류 메시지가 있는지 테스트 할 때 매우 유용합니다. '! grep output.log -i "오류 메시지" – shuckc

1

하면 "빈/친척 test5.kin"의 종료 상태가 5. 그런 다음이 쓰기이 있는지 확인하려면 가정 및 '남자 테스트'.

참고 : 느낌표는 일반적으로 대화 형 셸로 복사하거나 붙여 넣을 수 없으므로 (느낌표를 검색하므로) 느낌표를 사용하지 않는 경향이 있습니다.