diff options
author | Mats Wichmann <mats@linux.com> | 2022-01-19 17:35:38 (GMT) |
---|---|---|
committer | Mats Wichmann <mats@linux.com> | 2022-01-19 17:35:38 (GMT) |
commit | a94950db308154798e65e07704e65a85c0aef6f6 (patch) | |
tree | 0c3e08a4c51d1540030441517353209b1604df41 /test/LEX | |
parent | b54e9d95e0ee70460cdb86773f31660f2c16d650 (diff) | |
download | SCons-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.py | 55 | ||||
-rw-r--r-- | test/LEX/LEXFLAGS.py | 27 |
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() |