summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_uuid.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_uuid.py')
-rw-r--r--Lib/test/test_uuid.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py
index cc21bae..d101956 100644
--- a/Lib/test/test_uuid.py
+++ b/Lib/test/test_uuid.py
@@ -446,6 +446,34 @@ class TestUUID(TestCase):
equal(u, uuid.UUID(v))
equal(str(u), v)
+ def testIssue8621(self):
+ import os
+ import sys
+ if os.name != 'posix':
+ return
+
+ # On at least some versions of OSX uuid.uuid4 generates
+ # the same sequence of UUIDs in the parent and any
+ # children started using fork.
+ fds = os.pipe()
+ pid = os.fork()
+ if pid == 0:
+ os.close(fds[0])
+ value = uuid.uuid4()
+ os.write(fds[1], value.hex)
+ sys.exit(0)
+
+ else:
+ os.close(fds[1])
+ parent_value = uuid.uuid4().hex
+ os.waitpid(pid, 0)
+ child_value = os.read(fds[0], 100)
+
+ self.assertNotEqual(parent_value, child_value)
+
+
+
+
def test_main():
test_support.run_unittest(TestUUID)