mirror of
https://gitlab.com/ita1024/waf.git
synced 2024-11-22 09:57:15 +01:00
Find the order that follows the alphabet
This commit is contained in:
parent
e5cafe6c7a
commit
fa145ed653
66
tests/post/wscript
Normal file
66
tests/post/wscript
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
#! /usr/bin/env python
|
||||||
|
# encoding: utf-8
|
||||||
|
# Thomas Nagy, 2017 (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()
|
||||||
|
|
@ -190,7 +190,7 @@ class task_gen(object):
|
|||||||
else:
|
else:
|
||||||
tmp.append(a)
|
tmp.append(a)
|
||||||
|
|
||||||
tmp.sort()
|
tmp.sort(reverse=True)
|
||||||
|
|
||||||
# topological sort
|
# topological sort
|
||||||
out = []
|
out = []
|
||||||
@ -210,13 +210,13 @@ class task_gen(object):
|
|||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
tmp.append(x)
|
tmp.append(x)
|
||||||
|
tmp.sort(reverse=True)
|
||||||
|
|
||||||
if prec:
|
if prec:
|
||||||
buf = ['Cycle detected in the method execution:']
|
buf = ['Cycle detected in the method execution:']
|
||||||
for k, v in prec.items():
|
for k, v in prec.items():
|
||||||
buf.append('- %s after %s' % (k, [x for x in v if x in prec]))
|
buf.append('- %s after %s' % (k, [x for x in v if x in prec]))
|
||||||
raise Errors.WafError('\n'.join(buf))
|
raise Errors.WafError('\n'.join(buf))
|
||||||
out.reverse()
|
|
||||||
self.meths = out
|
self.meths = out
|
||||||
|
|
||||||
# then we run the methods in order
|
# then we run the methods in order
|
||||||
@ -430,7 +430,7 @@ def before_method(*k):
|
|||||||
def deco(func):
|
def deco(func):
|
||||||
setattr(task_gen, func.__name__, func)
|
setattr(task_gen, func.__name__, func)
|
||||||
for fun_name in k:
|
for fun_name in k:
|
||||||
task_gen.prec[fun_name].add(func.__name__)
|
task_gen.prec[func.__name__].add(fun_name)
|
||||||
return func
|
return func
|
||||||
return deco
|
return deco
|
||||||
before = before_method
|
before = before_method
|
||||||
@ -457,7 +457,7 @@ def after_method(*k):
|
|||||||
def deco(func):
|
def deco(func):
|
||||||
setattr(task_gen, func.__name__, func)
|
setattr(task_gen, func.__name__, func)
|
||||||
for fun_name in k:
|
for fun_name in k:
|
||||||
task_gen.prec[func.__name__].add(fun_name)
|
task_gen.prec[fun_name].add(func.__name__)
|
||||||
return func
|
return func
|
||||||
return deco
|
return deco
|
||||||
after = after_method
|
after = after_method
|
||||||
|
Loading…
Reference in New Issue
Block a user