summaryrefslogtreecommitdiffstats
path: root/test/LEX
diff options
context:
space:
mode:
authorMats Wichmann <mats@linux.com>2022-01-19 17:35:38 (GMT)
committerMats Wichmann <mats@linux.com>2022-01-19 17:35:38 (GMT)
commita94950db308154798e65e07704e65a85c0aef6f6 (patch)
tree0c3e08a4c51d1540030441517353209b1604df41 /test/LEX
parentb54e9d95e0ee70460cdb86773f31660f2c16d650 (diff)
downloadSCons-a94950db308154798e65e07704e65a85c0aef6f6.zip
SCons-a94950db308154798e65e07704e65a85c0aef6f6.tar.gz
SCons-a94950db308154798e65e07704e65a85c0aef6f6.tar.bz2
A bit more test fixture work
mylex.py is now a general fixture Some of the existing fixtures had a bit more cleanup. the unneeded mylink_win32.py is dropped (only referenced by a test which already skips on win32, and the general mylink.py covers the win32 case anyway). Signed-off-by: Mats Wichmann <mats@linux.com>
Diffstat (limited to 'test/LEX')
-rw-r--r--test/LEX/LEX.py55
-rw-r--r--test/LEX/LEXFLAGS.py27
2 files changed, 20 insertions, 62 deletions
diff --git a/test/LEX/LEX.py b/test/LEX/LEX.py
index 79d8359..7dc8436 100644
--- a/test/LEX/LEX.py
+++ b/test/LEX/LEX.py
@@ -1,6 +1,8 @@
#!/usr/bin/env python
#
-# __COPYRIGHT__
+# MIT License
+#
+# Copyright The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -20,10 +22,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-
-__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
-
import TestSCons
@@ -32,46 +30,29 @@ _exe = TestSCons._exe
test = TestSCons.TestSCons()
-
-
-test.write('mylex.py', """
-import getopt
-import sys
-if sys.platform == 'win32':
- longopts = ['nounistd']
-else:
- longopts = []
-cmd_opts, args = getopt.getopt(sys.argv[1:], 't', longopts)
-for a in args:
- with open(a, 'rb') as f:
- contents = f.read()
- sys.stdout.write(contents.replace(b'LEX', b'mylex.py').decode())
-sys.exit(0)
-""")
+test.file_fixture('mylex.py')
test.write('SConstruct', """
-env = Environment(LEX = r'%(_python_)s mylex.py', tools=['default', 'lex'])
-env.CFile(target = 'aaa', source = 'aaa.l')
-env.CFile(target = 'bbb', source = 'bbb.lex')
-env.CXXFile(target = 'ccc', source = 'ccc.ll')
-env.CXXFile(target = 'ddd', source = 'ddd.lm')
+env = Environment(LEX=r'%(_python_)s mylex.py', tools=['default', 'lex'])
+env.CFile(target='aaa', source='aaa.l')
+env.CFile(target='bbb', source='bbb.lex')
+env.CXXFile(target='ccc', source='ccc.ll')
+env.CXXFile(target='ddd', source='ddd.lm')
""" % locals())
-test.write('aaa.l', "aaa.l\nLEX\n")
-test.write('bbb.lex', "bbb.lex\nLEX\n")
-test.write('ccc.ll', "ccc.ll\nLEX\n")
-test.write('ddd.lm', "ddd.lm\nLEX\n")
+test.write('aaa.l', "aaa.l\nLEX\n")
+test.write('bbb.lex', "bbb.lex\nLEX\n")
+test.write('ccc.ll', "ccc.ll\nLEX\n")
+test.write('ddd.lm', "ddd.lm\nLEX\n")
-test.run(arguments = '.', stderr = None)
+test.run(arguments='.', stderr=None)
# Read in with mode='r' because mylex.py implicitley wrote to stdout
# with mode='w'.
-test.must_match('aaa.c', "aaa.l\nmylex.py\n", mode='r')
-test.must_match('bbb.c', "bbb.lex\nmylex.py\n", mode='r')
-test.must_match('ccc.cc', "ccc.ll\nmylex.py\n", mode='r')
-test.must_match('ddd.m', "ddd.lm\nmylex.py\n", mode='r')
-
-
+test.must_match('aaa.c', "aaa.l\nmylex.py\n", mode='r')
+test.must_match('bbb.c', "bbb.lex\nmylex.py\n", mode='r')
+test.must_match('ccc.cc', "ccc.ll\nmylex.py\n", mode='r')
+test.must_match('ddd.m', "ddd.lm\nmylex.py\n", mode='r')
test.pass_test()
diff --git a/test/LEX/LEXFLAGS.py b/test/LEX/LEXFLAGS.py
index efcf9c4..f7d16c1 100644
--- a/test/LEX/LEXFLAGS.py
+++ b/test/LEX/LEXFLAGS.py
@@ -35,28 +35,7 @@ test = TestSCons.TestSCons()
test.subdir('in')
-test.write('mylex.py', """
-import getopt
-import sys
-import os
-if sys.platform == 'win32':
- longopts = ['nounistd']
-else:
- longopts = []
-cmd_opts, args = getopt.getopt(sys.argv[1:], 'I:tx', longopts)
-opt_string = ''
-i_arguments = ''
-for opt, arg in cmd_opts:
- if opt == '-I': i_arguments = i_arguments + ' ' + arg
- else: opt_string = opt_string + ' ' + opt
-for a in args:
- with open(a, 'r') as f:
- contents = f.read()
- contents = contents.replace('LEXFLAGS', opt_string)
- contents = contents.replace('I_ARGS', i_arguments)
- sys.stdout.write(contents)
-sys.exit(0)
-""")
+test.file_fixture('mylex.py')
test.write('SConstruct', """
env = Environment(
@@ -76,9 +55,7 @@ if sys.platform == 'win32' and not sysconfig.get_platform() in ("mingw",):
lexflags = ' --nounistd' + lexflags
# Read in with mode='r' because mylex.py implicitley wrote to stdout
# with mode='w'.
-test.must_match(['out', 'aaa.c'], "aaa.l\n%s\n out in\n" % lexflags, mode='r')
-
-
+test.must_match(['out', 'aaa.c'], "aaa.l\n%s\n out in\n" % lexflags, mode='r')
test.pass_test()