summaryrefslogtreecommitdiffstats
path: root/test/exitfns.py
diff options
context:
space:
mode:
authorAnthony Roach <aroach@electriceyeball.com>2001-08-23 03:06:10 (GMT)
committerAnthony Roach <aroach@electriceyeball.com>2001-08-23 03:06:10 (GMT)
commitb2e435ca54132d70963b8c0831a7c5cbbb6a67f2 (patch)
tree5ed54646e719cf9f8bd40c28d7ca1bfe65af23f1 /test/exitfns.py
parent2bd067fd38e6d3a636c7d46a1273f2cdc72e653c (diff)
downloadSCons-b2e435ca54132d70963b8c0831a7c5cbbb6a67f2.zip
SCons-b2e435ca54132d70963b8c0831a7c5cbbb6a67f2.tar.gz
SCons-b2e435ca54132d70963b8c0831a7c5cbbb6a67f2.tar.bz2
Add framework to execute code on exit from scons.
Diffstat (limited to 'test/exitfns.py')
-rw-r--r--test/exitfns.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/test/exitfns.py b/test/exitfns.py
new file mode 100644
index 0000000..94911e7
--- /dev/null
+++ b/test/exitfns.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+
+__revision__ = "test/exitfns.py __REVISION__ __DATE__ __DEVELOPER__"
+
+from TestCmd import TestCmd
+
+test = TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+sconstruct = """
+from scons.exitfuncs import *
+
+def x1():
+ print "running x1"
+def x2(n):
+ print "running x2(%s)" % `n`
+def x3(n, kwd=None):
+ print "running x3(%s, kwd=%s)" % (`n`, `kwd`)
+
+register(x3, "no kwd args")
+register(x1)
+register(x2, 12)
+register(x3, 5, kwd="bar")
+register(x3, "no kwd args")
+
+"""
+
+expected_output = """running x3('no kwd args', kwd=None)
+running x3(5, kwd='bar')
+running x2(12)
+running x1
+running x3('no kwd args', kwd=None)
+"""
+
+test.write('SConstruct', sconstruct)
+
+test.run(chdir = '.', arguments='-f SConstruct')
+
+test.fail_test(test.stdout() != expected_output)
+
+test.write('SConstruct', """import sys
+def f():
+ pass
+
+sys.exitfunc = f
+""" + sconstruct)
+
+test.run(chdir = '.', arguments='-f SConstruct')
+
+test.fail_test(test.stdout() != expected_output)
+
+test.pass_test()