Commit 7f233974 authored by Jason R. Coombs's avatar Jason R. Coombs

Add a unit test for testing spawn. Ref pypa/distutils#5.

parent 1215561b
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
import sys import sys
import unittest import unittest
import os import os
import threading
from distutils.errors import DistutilsPlatformError from distutils.errors import DistutilsPlatformError
from distutils.tests import support from distutils.tests import support
...@@ -74,6 +75,28 @@ class msvccompilerTestCase(support.TempdirManager, ...@@ -74,6 +75,28 @@ class msvccompilerTestCase(support.TempdirManager,
else: else:
raise unittest.SkipTest("VS 2015 is not installed") raise unittest.SkipTest("VS 2015 is not installed")
class TestSpawn(unittest.TestCase):
def test_concurrent_safe(self):
"""
Concurrent calls to spawn should have consistent results.
"""
import distutils._msvccompiler as _msvccompiler
compiler = _msvccompiler.MSVCCompiler()
compiler._paths = "expected"
inner_cmd = 'import os; assert os.environ["PATH"] == "expected"'
command = ['python', '-c', inner_cmd]
threads = [
threading.Thread(target=compiler.spawn, args=[command])
for n in range(100)
]
for thread in threads:
thread.start()
for thread in threads:
thread.join()
def test_suite(): def test_suite():
return unittest.makeSuite(msvccompilerTestCase) return unittest.makeSuite(msvccompilerTestCase)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment