waf では、デフォルトでは、単体試験 (waf_unit_test) が失敗してもビルドは成功扱いになります。 以下のように wscript を記述すると、単体試験失敗時にビルドも失敗扱いにすることができます。from waflib.Tools import waf_unit_test from waflib.Errors import BuildError
# ... snip ...
def build(bld): bld.recurse("src") bld.add_post_fun(waf_unit_test.summary) bld.add_post_fun(ensure_unittest_passed)
def ensure_unittest_passed(bld): for (f, code, out, err) in getattr(bld, 'utest_results', []): if code: raise BuildError() なお、ここでは単体試験の成功/失敗を終了コードで判定していますので、必要に応じてカスタマイズしてください。
|