From 514265c415e072caf92fb4eed57aacdfea9964f1 Mon Sep 17 00:00:00 2001 From: vladlosev Date: Sat, 22 Nov 2008 02:26:23 +0000 Subject: [PATCH] Fixed two of the failing tests mentioned in issue 9 --- test/gtest_test_utils.py | 25 +++++++++++++++++++++++++ test/gtest_xml_outfiles_test.py | 7 ++++--- test/gtest_xml_output_unittest.py | 11 +++++------ 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/test/gtest_test_utils.py b/test/gtest_test_utils.py index f454774d..a3f0138e 100755 --- a/test/gtest_test_utils.py +++ b/test/gtest_test_utils.py @@ -116,6 +116,31 @@ def GetExitStatus(exit_code): return -1 +def RunCommandSuppressOutput(command, working_dir=None): + """Changes into a specified directory, if provided, and executes a command. + Restores the old directory afterwards. + + Args: + command: A command to run. + working_dir: A directory to change into. + """ + + old_dir = None + try: + if working_dir is not None: + old_dir = os.getcwd() + os.chdir(working_dir) + f = os.popen(command, 'r') + f.read() + ret_code = f.close() + finally: + if old_dir is not None: + os.chdir(old_dir) + if ret_code is None: + ret_code = 0 + return ret_code + + def Main(): """Runs the unit test.""" diff --git a/test/gtest_xml_outfiles_test.py b/test/gtest_xml_outfiles_test.py index b83df775..d5d7266a 100755 --- a/test/gtest_xml_outfiles_test.py +++ b/test/gtest_xml_outfiles_test.py @@ -100,9 +100,10 @@ class GTestXMLOutFilesTest(gtest_xml_test_utils.GTestXMLTestCase): def _TestOutFile(self, test_name, expected_xml): gtest_prog_path = os.path.join(gtest_test_utils.GetBuildDir(), test_name) - command = "cd %s && %s --gtest_output=xml:%s &> /dev/null" % ( - tempfile.mkdtemp(), gtest_prog_path, self.output_dir_) - status = os.system(command) + command = "%s --gtest_output=xml:%s" % (gtest_prog_path, self.output_dir_) + status = gtest_test_utils.RunCommandSuppressOutput( + command, + working_dir=tempfile.mkdtemp()) self.assertEquals(0, gtest_test_utils.GetExitStatus(status)) # TODO(wan@google.com): libtool causes the built test binary to be diff --git a/test/gtest_xml_output_unittest.py b/test/gtest_xml_output_unittest.py index 7206006c..c5f9f57f 100755 --- a/test/gtest_xml_output_unittest.py +++ b/test/gtest_xml_output_unittest.py @@ -131,9 +131,9 @@ class GTestXMLOutputUnitTest(gtest_xml_test_utils.GTestXMLTestCase): if e.errno != errno.ENOENT: raise - status = os.system("cd %s && %s %s=xml &> /dev/null" - % (temp_dir, gtest_prog_path, - GTEST_OUTPUT_FLAG)) + status = gtest_test_utils.RunCommandSuppressOutput( + "%s %s=xml" % (gtest_prog_path, GTEST_OUTPUT_FLAG), + working_dir=temp_dir) self.assertEquals(0, gtest_test_utils.GetExitStatus(status)) self.assert_(os.path.isfile(output_file)) @@ -150,9 +150,8 @@ class GTestXMLOutputUnitTest(gtest_xml_test_utils.GTestXMLTestCase): gtest_prog_path = os.path.join(gtest_test_utils.GetBuildDir(), gtest_prog_name) - command = ("%s %s=xml:%s &> /dev/null" - % (gtest_prog_path, GTEST_OUTPUT_FLAG, xml_path)) - status = os.system(command) + command = ("%s %s=xml:%s" % (gtest_prog_path, GTEST_OUTPUT_FLAG, xml_path)) + status = gtest_test_utils.RunCommandSuppressOutput(command) if os.WIFSIGNALED(status): signal = os.WTERMSIG(status) self.assert_(False,