]> granicus.if.org Git - python/commitdiff
Call setreuid and setregid in a subprocess to avoid altering the test runner's
authorGregory P. Smith <greg@mad-scientist.com>
Sat, 6 Mar 2010 07:35:19 +0000 (07:35 +0000)
committerGregory P. Smith <greg@mad-scientist.com>
Sat, 6 Mar 2010 07:35:19 +0000 (07:35 +0000)
process state.  Should fix issue8045.

Lib/test/test_os.py

index 44cc4cb7134ab0dcb6e19544b99e90ef4c5238de..3dd7f90464401104bb771cd80d3a9e8e1243480d 100644 (file)
@@ -642,7 +642,14 @@ if sys.platform != 'win32':
                     self.assertRaises(os.error, os.setreuid, 0, 0)
                 self.assertRaises(OverflowError, os.setreuid, 1<<32, 0)
                 self.assertRaises(OverflowError, os.setreuid, 0, 1<<32)
-                os.setreuid(-1, -1)  # Does nothing, but it needs to accept -1
+
+            def test_setreuid_neg1(self):
+                # Needs to accept -1.  We run this in a subprocess to avoid
+                # altering the test runner's process state (issue8045).
+                import subprocess
+                subprocess.check_call([
+                        sys.executable, '-c',
+                        'import os,sys;os.setreuid(-1,-1);sys.exit(0)'])
 
         if hasattr(os, 'setregid'):
             def test_setregid(self):
@@ -650,7 +657,14 @@ if sys.platform != 'win32':
                     self.assertRaises(os.error, os.setregid, 0, 0)
                 self.assertRaises(OverflowError, os.setregid, 1<<32, 0)
                 self.assertRaises(OverflowError, os.setregid, 0, 1<<32)
-                os.setregid(-1, -1)  # Does nothing, but it needs to accept -1
+
+            def test_setregid_neg1(self):
+                # Needs to accept -1.  We run this in a subprocess to avoid
+                # altering the test runner's process state (issue8045).
+                import subprocess
+                subprocess.check_call([
+                        sys.executable, '-c',
+                        'import os,sys;os.setregid(-1,-1);sys.exit(0)'])
 else:
     class PosixUidGidTests(unittest.TestCase):
         pass