From 52019a1b21ced489cfc9077795f6170a1fa19dc1 Mon Sep 17 00:00:00 2001 From: Sakthipriyan Vairamani Date: Wed, 26 Aug 2015 15:22:43 +0530 Subject: [PATCH] test: fix default value for additional param In Python, the default values of parameters are evaluated only once during their declaration. So, whenever the default parameter is used the same object will be used. Since we use a list, which is a mutable object, this could lead to unexpected results. PR-URL: https://github.com/nodejs/node/pull/2553 Reviewed-By: Ben Noordhuis --- test/testpy/__init__.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/test/testpy/__init__.py b/test/testpy/__init__.py index 5933f8b..b1f1519 100644 --- a/test/testpy/__init__.py +++ b/test/testpy/__init__.py @@ -40,16 +40,19 @@ FILES_PATTERN = re.compile(r"//\s+Files:(.*)") class SimpleTestCase(test.TestCase): - def __init__(self, path, file, arch, mode, context, config, additional=[]): + def __init__(self, path, file, arch, mode, context, config, additional=None): super(SimpleTestCase, self).__init__(context, path, arch, mode) self.file = file self.config = config self.arch = arch self.mode = mode self.tmpdir = join(dirname(self.config.root), 'tmp') - self.additional_flags = additional + if additional is not None: + self.additional_flags = additional + else: + self.additional_flags = [] + - def GetLabel(self): return "%s %s" % (self.mode, self.GetName()) @@ -81,10 +84,13 @@ class SimpleTestCase(test.TestCase): class SimpleTestConfiguration(test.TestConfiguration): - def __init__(self, context, root, section, additional=[]): + def __init__(self, context, root, section, additional=None): super(SimpleTestConfiguration, self).__init__(context, root) self.section = section - self.additional_flags = additional + if additional is not None: + self.additional_flags = additional + else: + self.additional_flags = [] def Ls(self, path): def SelectTest(name): @@ -110,7 +116,7 @@ class SimpleTestConfiguration(test.TestConfiguration): test.ReadConfigurationInto(status_file, sections, defs) class ParallelTestConfiguration(SimpleTestConfiguration): - def __init__(self, context, root, section, additional=[]): + def __init__(self, context, root, section, additional=None): super(ParallelTestConfiguration, self).__init__(context, root, section, additional) @@ -122,8 +128,8 @@ class ParallelTestConfiguration(SimpleTestConfiguration): return result class AddonTestConfiguration(SimpleTestConfiguration): - def __init__(self, context, root, section, additional=[]): - super(AddonTestConfiguration, self).__init__(context, root, section) + def __init__(self, context, root, section, additional=None): + super(AddonTestConfiguration, self).__init__(context, root, section, additional) def Ls(self, path): def SelectTest(name): -- 2.7.4