summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/gtest_test_utils.py25
-rwxr-xr-xtest/gtest_xml_outfiles_test.py7
-rwxr-xr-xtest/gtest_xml_output_unittest.py11
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,