3
# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
6
from waflib.TaskGen import feature,after_method
7
from waflib import Utils,Task,Logs,Options
8
testlock=Utils.threading.Lock()
10
if getattr(self,'link_task',None):
11
self.create_task('utest',self.link_task.outputs)
12
class utest(Task.Task):
16
def runnable_status(self):
17
ret=super(utest,self).runnable_status()
19
if getattr(Options.options,'all_tests',False):
23
filename=self.inputs[0].abspath()
24
self.ut_exec=getattr(self,'ut_exec',[filename])
25
if getattr(self.generator,'ut_fun',None):
26
self.generator.ut_fun(self)
28
fu=getattr(self.generator.bld,'all_test_paths')
29
except AttributeError:
31
self.generator.bld.all_test_paths=fu
33
for g in self.generator.bld.groups:
35
if getattr(tg,'link_task',None):
36
lst.append(tg.link_task.outputs[0].parent.abspath())
37
def add_path(dct,path,var):
38
dct[var]=os.pathsep.join(Utils.to_list(path)+[os.environ.get(var,'')])
40
add_path(fu,lst,'PATH')
41
elif sys.platform=='darwin':
42
add_path(fu,lst,'DYLD_LIBRARY_PATH')
43
add_path(fu,lst,'LD_LIBRARY_PATH')
45
add_path(fu,lst,'LD_LIBRARY_PATH')
46
cwd=getattr(self.generator,'ut_cwd','')or self.inputs[0].parent.abspath()
47
proc=Utils.subprocess.Popen(self.ut_exec,cwd=cwd,env=fu,stderr=Utils.subprocess.PIPE,stdout=Utils.subprocess.PIPE)
48
(stdout,stderr)=proc.communicate()
49
tup=(filename,proc.returncode,stdout,stderr)
50
self.generator.utest_result=tup
53
bld=self.generator.bld
54
Logs.debug("ut: %r",tup)
56
bld.utest_results.append(tup)
57
except AttributeError:
58
bld.utest_results=[tup]
62
lst=getattr(bld,'utest_results',[])
64
Logs.pprint('CYAN','execution summary')
66
tfail=len([x for x in lst if x[1]])
67
Logs.pprint('CYAN',' tests that pass %d/%d'%(total-tfail,total))
68
for(f,code,out,err)in lst:
70
Logs.pprint('CYAN',' %s'%f)
71
Logs.pprint('CYAN',' tests that fail %d/%d'%(tfail,total))
72
for(f,code,out,err)in lst:
74
Logs.pprint('CYAN',' %s'%f)
76
opt.add_option('--alltests',action='store_true',default=False,help='Exec all unit tests',dest='all_tests')
78
feature('test')(make_test)
79
after_method('apply_link')(make_test)
b'\\ No newline at end of file'