Merge pull request #4303 from RedwanFox/fix_textfile_encoding_issue
[scons.git] / test / QT / reentrant.py
blob40fb1f19ae7a081d0aaf561b52affb5faf490d7a
1 #!/usr/bin/env python
3 # MIT License
5 # Copyright The SCons Foundation
7 # Permission is hereby granted, free of charge, to any person obtaining
8 # a copy of this software and associated documentation files (the
9 # "Software"), to deal in the Software without restriction, including
10 # without limitation the rights to use, copy, modify, merge, publish,
11 # distribute, sublicense, and/or sell copies of the Software, and to
12 # permit persons to whom the Software is furnished to do so, subject to
13 # the following conditions:
15 # The above copyright notice and this permission notice shall be included
16 # in all copies or substantial portions of the Software.
18 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
19 # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
20 # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 """
27 Test creation from a copied environment that already has QT variables.
28 This makes sure the tool initialization is re-entrant.
29 """
31 import TestSCons
33 test = TestSCons.TestSCons()
35 test.Qt_dummy_installation('qt')
37 test.write(['qt', 'include', 'foo5.h'], """\
38 #include <stdio.h>
39 void
40 foo5(void)
42 #ifdef FOO
43 printf("qt/include/foo5.h\\n");
44 #endif
46 """)
48 test.Qt_create_SConstruct('SConstruct')
50 test.write('SConscript', """\
51 Import("env")
52 env = env.Clone(tools=['qt'])
53 env.Program('main', 'main.cpp', CPPDEFINES=['FOO'], LIBS=[])
54 """)
56 test.write('main.cpp', r"""
57 #include "foo5.h"
58 int main(void) { foo5(); return 0; }
59 """)
61 test.run(arguments="--warn=no-tool-qt-deprecated")
63 test.run(
64 arguments='--warn=no-tool-qt-deprecated',
65 program=test.workpath('main' + TestSCons._exe),
66 stdout='qt/include/foo5.h\n',
68 test.pass_test()
70 # Local Variables:
71 # tab-width:4
72 # indent-tabs-mode:nil
73 # End:
74 # vim: set expandtab tabstop=4 shiftwidth=4: