2009-10-09 10 views
5

मेरे पास एक स्क्रिप्ट सिस्टम के लिए एक मेक फ़ाइल है, जिसमें कई परीक्षण पास किए जाने चाहिए। प्रत्येक परीक्षण स्क्रिप्टिंग अनुप्रयोग के लिए एक अलग कॉल है:जीएनयू बनाते हैं: उप-प्रक्रिया सफलता को निष्क्रिय करना?

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

! आदेश का उपयोग करें।

echo This returns success 
! echo This returns failure 
+1

विशेष रूप से, "! Bin/kin" की बजाय "! Bin/kin", जिसकी मैंने कोशिश की और त्रुटि मिली –

+0

बिल्ड लॉग आउटपुट में त्रुटि संदेश की उपस्थिति के लिए परीक्षण करने के लिए grep का उपयोग करते समय बहुत उपयोगी। '! grep output.log -i "त्रुटि संदेश" ' – shuckc

1

मान लीजिए आप यकीन है कि "बिन/परिजनों test5.kin" के निकास स्थिति 5. तो बस इस बारे में बनाना चाहते:

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

के लिए अधिक सविस्तार परीक्षण को देखने की मदद परीक्षण ' और 'मैन टेस्ट'।

नोट: मैं विस्मयादिबोधक चिह्नों से बचने के लिए प्रवृत्त हूं क्योंकि उन्हें आम तौर पर एक इंटरैक्टिव खोल में कॉपी/पेस्ट करना असंभव है (क्योंकि यह इतिहास की खोज करता है)।

संबंधित मुद्दे