diff options
-rw-r--r-- | test/config.py | 22 | ||||
-rw-r--r-- | test/suite_clopts.py | 4 | ||||
-rw-r--r-- | test/suite_text2pcap.py | 2 |
3 files changed, 17 insertions, 11 deletions
diff --git a/test/config.py b/test/config.py index 240875140c..b1a76772ff 100644 --- a/test/config.py +++ b/test/config.py @@ -104,7 +104,7 @@ def getTsharkInfo(): (cmd_tshark, '--version'), stderr=subprocess.PIPE, universal_newlines=True, - env={'WIRESHARK_CONFIG_DIR': '/dummy/non/existing'} + env=baseEnv() ).replace('\n', ' ') except subprocess.CalledProcessError as e: logging.warning("Failed to detect tshark features: %s", e) @@ -172,8 +172,18 @@ def setProgramPath(path): setUpHostFiles() return retval -def testEnvironment(): - return test_env +def baseEnv(home=None): + """A modified environment to ensure reproducible tests.""" + env = os.environ.copy() + env['TZ'] = 'UTC' + home_env = 'APPDATA' if sys.platform.startswith('win32') else 'HOME' + if home: + env[home_env] = home + else: + # This directory is supposed not to be written and is used by + # "readonly" tests that do not read any other preferences. + env[home_env] = "/wireshark-tests-unused" + return env def setUpTestEnvironment(): global home_path @@ -185,10 +195,8 @@ def setUpTestEnvironment(): test_confdir = tempfile.mkdtemp(prefix='wireshark-tests.') home_path = os.path.join(test_confdir, 'home') if sys.platform.startswith('win32'): - home_env = 'APPDATA' conf_path = os.path.join(home_path, 'Wireshark') else: - home_env = 'HOME' conf_path = os.path.join(home_path, '.config', 'wireshark') os.makedirs(conf_path) # Test spaces while we're here. @@ -209,11 +217,9 @@ def setUpTestEnvironment(): setUpUatFile(uat) # Set up our environment - test_env = os.environ.copy() + test_env = baseEnv(home=home_path) test_env['WIRESHARK_RUN_FROM_BUILD_DIRECTORY'] = 'True' test_env['WIRESHARK_QUIT_AFTER_CAPTURE'] = 'True' - test_env['TZ'] = 'UTC' - test_env[home_env] = home_path def setUpUatFile(conf_file): global home_path diff --git a/test/suite_clopts.py b/test/suite_clopts.py index 02cfd97f68..aa6ec95ccc 100644 --- a/test/suite_clopts.py +++ b/test/suite_clopts.py @@ -178,7 +178,7 @@ class case_tshark_dump_glossaries(subprocesstest.SubprocessTestCase): def test_tshark_glossary_valid_utf8(self): for glossary in glossaries: - env = os.environ.copy() + env = config.baseEnv() env['LANG'] = 'en_US.UTF-8' g_contents = subprocess.check_output((config.cmd_tshark, '-G', glossary), env=env, stderr=subprocess.PIPE) decoded = True @@ -189,7 +189,7 @@ class case_tshark_dump_glossaries(subprocesstest.SubprocessTestCase): self.assertTrue(decoded, '{} is not valid UTF-8'.format(glossary)) def test_tshark_glossary_plugin_count(self): - self.runProcess((config.cmd_tshark, '-G', 'plugins'), env=os.environ.copy()) + self.runProcess((config.cmd_tshark, '-G', 'plugins'), env=config.baseEnv()) self.assertGreaterEqual(self.countOutput('dissector'), 10, 'Fewer than 10 dissector plugins found') diff --git a/test/suite_text2pcap.py b/test/suite_text2pcap.py index e4ff07bd0e..0702e51d7a 100644 --- a/test/suite_text2pcap.py +++ b/test/suite_text2pcap.py @@ -129,7 +129,7 @@ def check_text2pcap(self, cap_file, file_type, expected_packets=None, expected_d cf = cf_path, of = testin_file, ) - self.assertRun(tshark_cmd, shell=True, env=os.environ.copy()) + self.assertRun(tshark_cmd, shell=True, env=config.baseEnv()) testout_fname = file_type_to_testout[file_type] testout_file = self.filename_from_id(testout_fname) |