diff options
Diffstat (limited to 'test')
-rwxr-xr-x | test/gtest_test_utils.py | 25 | ||||
-rwxr-xr-x | test/gtest_xml_outfiles_test.py | 7 | ||||
-rwxr-xr-x | 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 f454774..a3f0138 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 b83df77..d5d7266 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 7206006..c5f9f57 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, |