diff options
author | Mats Wichmann <mats@linux.com> | 2023-01-30 13:27:41 -0700 |
---|---|---|
committer | Mats Wichmann <mats@linux.com> | 2023-01-30 13:27:41 -0700 |
commit | 6abf249d2e38df51dd8e647176b7ce6dacfdf9b9 (patch) | |
tree | 08b8563add65f7bc917e009c784b7ec7d8119623 | |
parent | 6ea34c031395e9488bf9a55b25d4b567d2c0627d (diff) | |
download | scons-git-6abf249d2e38df51dd8e647176b7ce6dacfdf9b9.tar.gz |
Fix some CPPDEFINES handling problems
A few places were deciding what to do based on result of is_List, when the
intent was really list-or-tuple-or-derivatives - changed to is_Sequence.
Added some test cases, including a unit test for processDefines
(which would have caught one of these cases).
Signed-off-by: Mats Wichmann <mats@linux.com>
-rw-r--r-- | SCons/Defaults.py | 6 | ||||
-rw-r--r-- | SCons/DefaultsTests.py | 56 | ||||
-rw-r--r-- | SCons/Environment.py | 2 | ||||
-rw-r--r-- | test/CPPDEFINES/append.py | 89 | ||||
-rw-r--r-- | test/CPPDEFINES/fixture/SConstruct-Append | 5 | ||||
-rw-r--r-- | test/CPPDEFINES/fixture/SConstruct-Prepend | 5 | ||||
-rw-r--r-- | test/CPPDEFINES/prepend.py | 89 |
7 files changed, 238 insertions, 14 deletions
diff --git a/SCons/Defaults.py b/SCons/Defaults.py index ad64041aa..250ccf617 100644 --- a/SCons/Defaults.py +++ b/SCons/Defaults.py @@ -46,7 +46,7 @@ import SCons.PathList import SCons.Scanner.Dir import SCons.Subst import SCons.Tool -from SCons.Util import is_List, is_String, is_Tuple, is_Dict, flatten +from SCons.Util import is_List, is_String, is_Sequence, is_Dict, flatten # A placeholder for a default Environment (for fetching source files # from source code management systems and the like). This must be @@ -517,11 +517,11 @@ def processDefines(defs): Any prefix/suffix is handled elsewhere (usually :func:`_concat_ixes`). """ dlist = [] - if is_List(defs): + if is_Sequence(defs): for define in defs: if define is None: continue - elif is_List(define) or is_Tuple(define): + elif is_Sequence(define): if len(define) >= 2 and define[1] is not None: # TODO: do we need to quote define[1] if it contains space? dlist.append(str(define[0]) + '=' + str(define[1])) diff --git a/SCons/DefaultsTests.py b/SCons/DefaultsTests.py index 7fd62ae8b..b876552ca 100644 --- a/SCons/DefaultsTests.py +++ b/SCons/DefaultsTests.py @@ -27,7 +27,7 @@ import collections import TestCmd -from SCons.Defaults import mkdir_func, _defines +from SCons.Defaults import mkdir_func, _defines, processDefines class DummyEnvironment(collections.UserDict): @@ -90,18 +90,54 @@ class DefaultsTestCase(unittest.TestCase): """ env = DummyEnvironment() - # Neither source or target specified - x = _defines('-D', ['A', 'B', 'C'], 'XYZ', env) - self.assertEqual(x, ['-DAXYZ', '-DBXYZ', '-DCXYZ']) + with self.subTest(): + # Neither source or target specified + x = _defines('-D', ['A', 'B', 'C'], 'XYZ', env) + self.assertEqual(x, ['-DAXYZ', '-DBXYZ', '-DCXYZ']) - # only source specified - y = _defines('-D', ['AA', 'BA', 'CA'], 'XYZA', env, 'XYZ') - self.assertEqual(y, ['-DAAXYZA', '-DBAXYZA', '-DCAXYZA']) + with self.subTest(): + # only source specified + y = _defines('-D', ['AA', 'BA', 'CA'], 'XYZA', env, 'XYZ') + self.assertEqual(y, ['-DAAXYZA', '-DBAXYZA', '-DCAXYZA']) - # source and target specified - z = _defines('-D', ['AAB', 'BAB', 'CAB'], 'XYZAB', env, 'XYZ', 'abc') - self.assertEqual(z,['-DAABXYZAB', '-DBABXYZAB', '-DCABXYZAB']) + with self.subTest(): + # source and target specified + z = _defines('-D', ['AAB', 'BAB', 'CAB'], 'XYZAB', env, 'XYZ', 'abc') + self.assertEqual(z, ['-DAABXYZAB', '-DBABXYZAB', '-DCABXYZAB']) + def test_processDefines(self): + """Verify correct handling in processDefines.""" + env = DummyEnvironment() + + with self.subTest(): + # macro name only + rv = processDefines('name') + self.assertEqual(rv, ['name']) + + with self.subTest(): + # macro with value + rv = processDefines('name=val') + self.assertEqual(rv, ['name=val']) + + with self.subTest(): + # single list + rv = processDefines(['name', 'val']) + self.assertEqual(rv, ['name', 'val']) + + with self.subTest(): + # single tuple + rv = processDefines(('name', 'val')) + self.assertEqual(rv, ['name', 'val']) + + with self.subTest(): + # single dict + rv = processDefines({'foo': None, 'name': 'val'}) + self.assertEqual(rv, ['foo', 'name=val']) + + with self.subTest(): + # compound list + rv = processDefines(['foo', ('name', 'val'), ['name2', 'val2']]) + self.assertEqual(rv, ['foo', 'name=val', 'name2=val2']) if __name__ == "__main__": diff --git a/SCons/Environment.py b/SCons/Environment.py index e73da823f..e10bec1bb 100644 --- a/SCons/Environment.py +++ b/SCons/Environment.py @@ -330,7 +330,7 @@ def _add_cppdefines( else: _add_define(val, defines, prepend) - elif is_List(val): + elif is_Sequence(val): tmp = [] for item in val: if unique: diff --git a/test/CPPDEFINES/append.py b/test/CPPDEFINES/append.py index 0d074cf45..2a3102196 100644 --- a/test/CPPDEFINES/append.py +++ b/test/CPPDEFINES/append.py @@ -45,6 +45,7 @@ expect_print_output="""\ -Dfoo bar -Dbaz -Dfoo -Dbar baz -DMacro2=Value2 -DMacro3=Value3 -DMacro1=Value1 +-DMacro1 -DValue1 ==== Testing CPPDEFINES, appending a string to a string orig = 'FOO', append = 'FOO' Append: @@ -69,6 +70,14 @@ Append: AppendUnique: result=['FOO', 'NAME1', 'NAME2'] final=-DFOO -DNAME1 -DNAME2 +==== Testing CPPDEFINES, appending a tuple to a string + orig = 'FOO', append = ('NAME1', 'NAME2') +Append: + result=['FOO', 'NAME1', 'NAME2'] + final=-DFOO -DNAME1 -DNAME2 +AppendUnique: + result=['FOO', 'NAME1', 'NAME2'] + final=-DFOO -DNAME1 -DNAME2 ==== Testing CPPDEFINES, appending a list-of-2lists to a string orig = 'FOO', append = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']] Append: @@ -109,6 +118,14 @@ Append: AppendUnique: result=['NAME1=VAL1', 'NAME1', 'NAME2'] final=-DNAME1=VAL1 -DNAME1 -DNAME2 +==== Testing CPPDEFINES, appending a tuple to a valuestring + orig = 'NAME1=VAL1', append = ('NAME1', 'NAME2') +Append: + result=['NAME1=VAL1', 'NAME1', 'NAME2'] + final=-DNAME1=VAL1 -DNAME1 -DNAME2 +AppendUnique: + result=['NAME1=VAL1', 'NAME1', 'NAME2'] + final=-DNAME1=VAL1 -DNAME1 -DNAME2 ==== Testing CPPDEFINES, appending a list-of-2lists to a valuestring orig = 'NAME1=VAL1', append = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']] Append: @@ -149,6 +166,14 @@ Append: AppendUnique: result=['NAME1', 'NAME2'] final=-DNAME1 -DNAME2 +==== Testing CPPDEFINES, appending a tuple to a list + orig = ['NAME1', 'NAME2'], append = ('NAME1', 'NAME2') +Append: + result=['NAME1', 'NAME2', 'NAME1', 'NAME2'] + final=-DNAME1 -DNAME2 -DNAME1 -DNAME2 +AppendUnique: + result=['NAME1', 'NAME2'] + final=-DNAME1 -DNAME2 ==== Testing CPPDEFINES, appending a list-of-2lists to a list orig = ['NAME1', 'NAME2'], append = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']] Append: @@ -165,6 +190,54 @@ Append: AppendUnique: result=['NAME1', 'NAME2', ('NAME2', 'VAL2'), ('NAME3', None), ('NAME1', 'VAL1')] final=-DNAME1 -DNAME2 -DNAME2=VAL2 -DNAME3 -DNAME1=VAL1 +==== Testing CPPDEFINES, appending a string to a tuple + orig = ('NAME1', 'NAME2'), append = 'FOO' +Append: + result=['NAME1', 'NAME2', 'FOO'] + final=-DNAME1 -DNAME2 -DFOO +AppendUnique: + result=['NAME1', 'NAME2', 'FOO'] + final=-DNAME1 -DNAME2 -DFOO +==== Testing CPPDEFINES, appending a valuestring to a tuple + orig = ('NAME1', 'NAME2'), append = 'NAME1=VAL1' +Append: + result=['NAME1', 'NAME2', 'NAME1=VAL1'] + final=-DNAME1 -DNAME2 -DNAME1=VAL1 +AppendUnique: + result=['NAME1', 'NAME2', 'NAME1=VAL1'] + final=-DNAME1 -DNAME2 -DNAME1=VAL1 +==== Testing CPPDEFINES, appending a list to a tuple + orig = ('NAME1', 'NAME2'), append = ['NAME1', 'NAME2'] +Append: + result=['NAME1', 'NAME2', 'NAME1', 'NAME2'] + final=-DNAME1 -DNAME2 -DNAME1 -DNAME2 +AppendUnique: + result=['NAME1', 'NAME2'] + final=-DNAME1 -DNAME2 +==== Testing CPPDEFINES, appending a tuple to a tuple + orig = ('NAME1', 'NAME2'), append = ('NAME1', 'NAME2') +Append: + result=['NAME1', 'NAME2', 'NAME1', 'NAME2'] + final=-DNAME1 -DNAME2 -DNAME1 -DNAME2 +AppendUnique: + result=['NAME1', 'NAME2'] + final=-DNAME1 -DNAME2 +==== Testing CPPDEFINES, appending a list-of-2lists to a tuple + orig = ('NAME1', 'NAME2'), append = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']] +Append: + result=['NAME1', 'NAME2', ('NAME1', 'VAL1'), ['NAME2', 'VAL2']] + final=-DNAME1 -DNAME2 -DNAME1=VAL1 -DNAME2=VAL2 +AppendUnique: + result=['NAME1', 'NAME2', ('NAME1', 'VAL1'), ['NAME2', 'VAL2']] + final=-DNAME1 -DNAME2 -DNAME1=VAL1 -DNAME2=VAL2 +==== Testing CPPDEFINES, appending a dict to a tuple + orig = ('NAME1', 'NAME2'), append = {'NAME2': 'VAL2', 'NAME3': None, 'NAME1': 'VAL1'} +Append: + result=['NAME1', 'NAME2', ('NAME2', 'VAL2'), ('NAME3', None), ('NAME1', 'VAL1')] + final=-DNAME1 -DNAME2 -DNAME2=VAL2 -DNAME3 -DNAME1=VAL1 +AppendUnique: + result=['NAME1', 'NAME2', ('NAME2', 'VAL2'), ('NAME3', None), ('NAME1', 'VAL1')] + final=-DNAME1 -DNAME2 -DNAME2=VAL2 -DNAME3 -DNAME1=VAL1 ==== Testing CPPDEFINES, appending a string to a list-of-2lists orig = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']], append = 'FOO' Append: @@ -189,6 +262,14 @@ Append: AppendUnique: result=[('NAME1', 'VAL1'), ['NAME2', 'VAL2'], 'NAME1', 'NAME2'] final=-DNAME1=VAL1 -DNAME2=VAL2 -DNAME1 -DNAME2 +==== Testing CPPDEFINES, appending a tuple to a list-of-2lists + orig = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']], append = ('NAME1', 'NAME2') +Append: + result=[('NAME1', 'VAL1'), ['NAME2', 'VAL2'], 'NAME1', 'NAME2'] + final=-DNAME1=VAL1 -DNAME2=VAL2 -DNAME1 -DNAME2 +AppendUnique: + result=[('NAME1', 'VAL1'), ['NAME2', 'VAL2'], 'NAME1', 'NAME2'] + final=-DNAME1=VAL1 -DNAME2=VAL2 -DNAME1 -DNAME2 ==== Testing CPPDEFINES, appending a list-of-2lists to a list-of-2lists orig = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']], append = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']] Append: @@ -229,6 +310,14 @@ Append: AppendUnique: result=[('NAME2', 'VAL2'), ('NAME3', None), ('NAME1', 'VAL1'), 'NAME1', 'NAME2'] final=-DNAME2=VAL2 -DNAME3 -DNAME1=VAL1 -DNAME1 -DNAME2 +==== Testing CPPDEFINES, appending a tuple to a dict + orig = {'NAME2': 'VAL2', 'NAME3': None, 'NAME1': 'VAL1'}, append = ('NAME1', 'NAME2') +Append: + result=[('NAME2', 'VAL2'), ('NAME3', None), ('NAME1', 'VAL1'), 'NAME1', 'NAME2'] + final=-DNAME2=VAL2 -DNAME3 -DNAME1=VAL1 -DNAME1 -DNAME2 +AppendUnique: + result=[('NAME2', 'VAL2'), ('NAME3', None), ('NAME1', 'VAL1'), 'NAME1', 'NAME2'] + final=-DNAME2=VAL2 -DNAME3 -DNAME1=VAL1 -DNAME1 -DNAME2 ==== Testing CPPDEFINES, appending a list-of-2lists to a dict orig = {'NAME2': 'VAL2', 'NAME3': None, 'NAME1': 'VAL1'}, append = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']] Append: diff --git a/test/CPPDEFINES/fixture/SConstruct-Append b/test/CPPDEFINES/fixture/SConstruct-Append index af4db9dac..76b86ad0c 100644 --- a/test/CPPDEFINES/fixture/SConstruct-Append +++ b/test/CPPDEFINES/fixture/SConstruct-Append @@ -39,6 +39,10 @@ env_multi.AppendUnique(CPPDEFINES=[("Macro3", "Value3")], delete_existing=True) env_multi.AppendUnique(CPPDEFINES={"Macro1": "Value1"}, delete_existing=True) print(env_multi.subst('$_CPPDEFFLAGS')) +# a lone tuple +env_multi = Environment(CPPDEFPREFIX='-D', CPPDEFINES=("Macro1", "Value1")) +print(env_multi.subst('$_CPPDEFFLAGS')) + # https://github.com/SCons/scons/issues/1152 # https://github.com/SCons/scons/issues/2900 # Python3 dicts dont preserve order. Hence we supply subclass of OrderedDict @@ -63,6 +67,7 @@ cases = [ ('string', 'FOO'), ('valuestring', 'NAME1=VAL1'), ('list', ['NAME1', 'NAME2']), + ('tuple', ('NAME1', 'NAME2')), ('list-of-2lists', [('NAME1', 'VAL1'), ['NAME2', 'VAL2']]), ( 'dict', diff --git a/test/CPPDEFINES/fixture/SConstruct-Prepend b/test/CPPDEFINES/fixture/SConstruct-Prepend index 52b66e8c2..4628ea46a 100644 --- a/test/CPPDEFINES/fixture/SConstruct-Prepend +++ b/test/CPPDEFINES/fixture/SConstruct-Prepend @@ -39,6 +39,10 @@ env_multi.PrependUnique(CPPDEFINES=[("Macro3", "Value3")], delete_existing=True) env_multi.PrependUnique(CPPDEFINES={"Macro1": "Value1"}, delete_existing=True) print(env_multi.subst('$_CPPDEFFLAGS')) +# a lone tuple +env_tuple = Environment(CPPDEFPREFIX='-D', CPPDEFINES=("Macro1", "Value1")) +print(env_tuple.subst('$_CPPDEFFLAGS')) + # https://github.com/SCons/scons/issues/1152 # https://github.com/SCons/scons/issues/2900 # Python3 dicts dont preserve order. Hence we supply subclass of OrderedDict @@ -64,6 +68,7 @@ cases = [ ('string', 'FOO'), ('valuestring', 'NAME1=VAL1'), ('list', ['NAME1', 'NAME2']), + ('tuple', ('NAME1', 'NAME2')), ('list-of-2lists', [('NAME1', 'VAL1'), ['NAME2', 'VAL2']]), ( 'dict', diff --git a/test/CPPDEFINES/prepend.py b/test/CPPDEFINES/prepend.py index 2e63e87e9..5ec2e468e 100644 --- a/test/CPPDEFINES/prepend.py +++ b/test/CPPDEFINES/prepend.py @@ -44,6 +44,7 @@ expect_print_output="""\ -Dbaz -Dfoo bar -Dbar baz -Dfoo -DMacro1=Value1 -DMacro3=Value3 -DMacro2=Value2 +-DMacro1 -DValue1 ==== Testing CPPDEFINES, prepending a string to a string orig = 'FOO', prepend = 'FOO' Prepend: @@ -68,6 +69,14 @@ Prepend: PrependUnique: result=['NAME2', 'NAME1', 'FOO'] final=-DNAME2 -DNAME1 -DFOO +==== Testing CPPDEFINES, prepending a tuple to a string + orig = 'FOO', prepend = ('NAME1', 'NAME2') +Prepend: + result=['NAME2', 'NAME1', 'FOO'] + final=-DNAME2 -DNAME1 -DFOO +PrependUnique: + result=['NAME2', 'NAME1', 'FOO'] + final=-DNAME2 -DNAME1 -DFOO ==== Testing CPPDEFINES, prepending a list-of-2lists to a string orig = 'FOO', prepend = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']] Prepend: @@ -108,6 +117,14 @@ Prepend: PrependUnique: result=['NAME2', 'NAME1', 'NAME1=VAL1'] final=-DNAME2 -DNAME1 -DNAME1=VAL1 +==== Testing CPPDEFINES, prepending a tuple to a valuestring + orig = 'NAME1=VAL1', prepend = ('NAME1', 'NAME2') +Prepend: + result=['NAME2', 'NAME1', 'NAME1=VAL1'] + final=-DNAME2 -DNAME1 -DNAME1=VAL1 +PrependUnique: + result=['NAME2', 'NAME1', 'NAME1=VAL1'] + final=-DNAME2 -DNAME1 -DNAME1=VAL1 ==== Testing CPPDEFINES, prepending a list-of-2lists to a valuestring orig = 'NAME1=VAL1', prepend = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']] Prepend: @@ -148,6 +165,14 @@ Prepend: PrependUnique: result=['NAME1', 'NAME2'] final=-DNAME1 -DNAME2 +==== Testing CPPDEFINES, prepending a tuple to a list + orig = ['NAME1', 'NAME2'], prepend = ('NAME1', 'NAME2') +Prepend: + result=['NAME2', 'NAME1', 'NAME1', 'NAME2'] + final=-DNAME2 -DNAME1 -DNAME1 -DNAME2 +PrependUnique: + result=['NAME1', 'NAME2'] + final=-DNAME1 -DNAME2 ==== Testing CPPDEFINES, prepending a list-of-2lists to a list orig = ['NAME1', 'NAME2'], prepend = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']] Prepend: @@ -164,6 +189,54 @@ Prepend: PrependUnique: result=[('NAME1', 'VAL1'), ('NAME3', None), ('NAME2', 'VAL2'), 'NAME1', 'NAME2'] final=-DNAME1=VAL1 -DNAME3 -DNAME2=VAL2 -DNAME1 -DNAME2 +==== Testing CPPDEFINES, prepending a string to a tuple + orig = ('NAME1', 'NAME2'), prepend = 'FOO' +Prepend: + result=['FOO', 'NAME1', 'NAME2'] + final=-DFOO -DNAME1 -DNAME2 +PrependUnique: + result=['FOO', 'NAME1', 'NAME2'] + final=-DFOO -DNAME1 -DNAME2 +==== Testing CPPDEFINES, prepending a valuestring to a tuple + orig = ('NAME1', 'NAME2'), prepend = 'NAME1=VAL1' +Prepend: + result=['NAME1=VAL1', 'NAME1', 'NAME2'] + final=-DNAME1=VAL1 -DNAME1 -DNAME2 +PrependUnique: + result=['NAME1=VAL1', 'NAME1', 'NAME2'] + final=-DNAME1=VAL1 -DNAME1 -DNAME2 +==== Testing CPPDEFINES, prepending a list to a tuple + orig = ('NAME1', 'NAME2'), prepend = ['NAME1', 'NAME2'] +Prepend: + result=['NAME2', 'NAME1', 'NAME1', 'NAME2'] + final=-DNAME2 -DNAME1 -DNAME1 -DNAME2 +PrependUnique: + result=['NAME1', 'NAME2'] + final=-DNAME1 -DNAME2 +==== Testing CPPDEFINES, prepending a tuple to a tuple + orig = ('NAME1', 'NAME2'), prepend = ('NAME1', 'NAME2') +Prepend: + result=['NAME2', 'NAME1', 'NAME1', 'NAME2'] + final=-DNAME2 -DNAME1 -DNAME1 -DNAME2 +PrependUnique: + result=['NAME1', 'NAME2'] + final=-DNAME1 -DNAME2 +==== Testing CPPDEFINES, prepending a list-of-2lists to a tuple + orig = ('NAME1', 'NAME2'), prepend = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']] +Prepend: + result=[['NAME2', 'VAL2'], ('NAME1', 'VAL1'), 'NAME1', 'NAME2'] + final=-DNAME2=VAL2 -DNAME1=VAL1 -DNAME1 -DNAME2 +PrependUnique: + result=[['NAME2', 'VAL2'], ('NAME1', 'VAL1'), 'NAME1', 'NAME2'] + final=-DNAME2=VAL2 -DNAME1=VAL1 -DNAME1 -DNAME2 +==== Testing CPPDEFINES, prepending a dict to a tuple + orig = ('NAME1', 'NAME2'), prepend = {'NAME2': 'VAL2', 'NAME3': None, 'NAME1': 'VAL1'} +Prepend: + result=[('NAME1', 'VAL1'), ('NAME3', None), ('NAME2', 'VAL2'), 'NAME1', 'NAME2'] + final=-DNAME1=VAL1 -DNAME3 -DNAME2=VAL2 -DNAME1 -DNAME2 +PrependUnique: + result=[('NAME1', 'VAL1'), ('NAME3', None), ('NAME2', 'VAL2'), 'NAME1', 'NAME2'] + final=-DNAME1=VAL1 -DNAME3 -DNAME2=VAL2 -DNAME1 -DNAME2 ==== Testing CPPDEFINES, prepending a string to a list-of-2lists orig = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']], prepend = 'FOO' Prepend: @@ -188,6 +261,14 @@ Prepend: PrependUnique: result=['NAME2', 'NAME1', ('NAME1', 'VAL1'), ['NAME2', 'VAL2']] final=-DNAME2 -DNAME1 -DNAME1=VAL1 -DNAME2=VAL2 +==== Testing CPPDEFINES, prepending a tuple to a list-of-2lists + orig = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']], prepend = ('NAME1', 'NAME2') +Prepend: + result=['NAME2', 'NAME1', ('NAME1', 'VAL1'), ['NAME2', 'VAL2']] + final=-DNAME2 -DNAME1 -DNAME1=VAL1 -DNAME2=VAL2 +PrependUnique: + result=['NAME2', 'NAME1', ('NAME1', 'VAL1'), ['NAME2', 'VAL2']] + final=-DNAME2 -DNAME1 -DNAME1=VAL1 -DNAME2=VAL2 ==== Testing CPPDEFINES, prepending a list-of-2lists to a list-of-2lists orig = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']], prepend = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']] Prepend: @@ -228,6 +309,14 @@ Prepend: PrependUnique: result=['NAME2', 'NAME1', ('NAME2', 'VAL2'), ('NAME3', None), ('NAME1', 'VAL1')] final=-DNAME2 -DNAME1 -DNAME2=VAL2 -DNAME3 -DNAME1=VAL1 +==== Testing CPPDEFINES, prepending a tuple to a dict + orig = {'NAME2': 'VAL2', 'NAME3': None, 'NAME1': 'VAL1'}, prepend = ('NAME1', 'NAME2') +Prepend: + result=['NAME2', 'NAME1', ('NAME2', 'VAL2'), ('NAME3', None), ('NAME1', 'VAL1')] + final=-DNAME2 -DNAME1 -DNAME2=VAL2 -DNAME3 -DNAME1=VAL1 +PrependUnique: + result=['NAME2', 'NAME1', ('NAME2', 'VAL2'), ('NAME3', None), ('NAME1', 'VAL1')] + final=-DNAME2 -DNAME1 -DNAME2=VAL2 -DNAME3 -DNAME1=VAL1 ==== Testing CPPDEFINES, prepending a list-of-2lists to a dict orig = {'NAME2': 'VAL2', 'NAME3': None, 'NAME1': 'VAL1'}, prepend = [('NAME1', 'VAL1'), ['NAME2', 'VAL2']] Prepend: |