#! /usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2016-2018 (ita) top = '.' out = 'build' import inspect from waflib import Utils, Logs, TaskGen @TaskGen.taskgen_method def log(self): fname = inspect.stack()[1][3] try: self.called.append(fname) except AttributeError: self.called = [fname] @TaskGen.taskgen_method def check(self): self.post() result = ''.join(self.called) if result == self.expected: color = 'GREEN' else: color = 'RED' result = 'got %r but expected %r' % (result, self.expected) self.bld.failure = 1 Logs.pprint(color, result) @TaskGen.feature('test1') @TaskGen.after('d') def a(self): self.log() @TaskGen.feature('test1') @TaskGen.after('c') def b(self): self.log() @TaskGen.feature('test1') def c(self): self.log() @TaskGen.feature('test1') def d(self): self.log() @TaskGen.feature('test1') @TaskGen.after('f') def e(self): self.log() @TaskGen.feature('test1') def f(self): self.log() def configure(conf): pass def build(bld): bld.failure = 0 def stop_status(bld): if bld.failure: bld.fatal('One or several test failed, check the outputs above') bld.add_post_fun(stop_status) bld(features='test1', expected='cbdafe').check()