Author: Ronan Lamy <ronan.l...@gmail.com> Branch: py3.5 Changeset: r93423:b3b1beda9224 Date: 2017-12-14 21:02 +0000 http://bitbucket.org/pypy/pypy/changeset/b3b1beda9224/
Log: Give up on trying to get test_multithreaded_import() to work untranslated diff --git a/extra_tests/test_import.py b/extra_tests/test_import.py new file mode 100644 --- /dev/null +++ b/extra_tests/test_import.py @@ -0,0 +1,41 @@ +import pytest +import sys +import time +from _thread import start_new_thread + +@pytest.mark.xfail('__pypy__' not in sys.builtin_module_names, + reason='Fails on CPython') +def test_multithreaded_import(tmpdir): + tmpfile = tmpdir.join('multithreaded_import_test.py') + tmpfile.write('''if 1: + x = 666 + import time + for i in range(1000): time.sleep(0.001) + x = 42 + ''') + + oldpath = sys.path[:] + try: + sys.path.insert(0, str(tmpdir)) + got = [] + + def check(): + import multithreaded_import_test + got.append(getattr(multithreaded_import_test, 'x', '?')) + + for i in range(5): + start_new_thread(check, ()) + + for n in range(100): + for i in range(105): + time.sleep(0.001) + if len(got) == 5: + break + else: + raise AssertionError("got %r so far but still waiting" % + (got,)) + + assert got == [42] * 5 + + finally: + sys.path[:] = oldpath diff --git a/pypy/module/imp/test/test_import.py b/pypy/module/imp/test/test_import.py --- a/pypy/module/imp/test/test_import.py +++ b/pypy/module/imp/test/test_import.py @@ -1249,46 +1249,3 @@ spaceconfig = { "translation.sandbox": True } - - -class AppTestMultithreadedImp(object): - spaceconfig = dict(usemodules=['thread', 'time']) - - def setup_class(cls): - #if not conftest.option.runappdirect: - # py.test.skip("meant as an -A test") - tmpfile = udir.join('test_multithreaded_imp.py') - tmpfile.write('''if 1: - x = 666 - import time - for i in range(1000): time.sleep(0.001) - x = 42 - ''') - cls.w_tmppath = cls.space.wrap(str(udir)) - - def test_multithreaded_import(self): - import sys, _thread, time - oldpath = sys.path[:] - try: - sys.path.insert(0, self.tmppath) - got = [] - - def check(): - import test_multithreaded_imp - got.append(getattr(test_multithreaded_imp, 'x', '?')) - - for i in range(5): - _thread.start_new_thread(check, ()) - - for n in range(100): - for i in range(105): time.sleep(0.001) - if len(got) == 5: - break - else: - raise AssertionError("got %r so far but still waiting" % - (got,)) - - assert got == [42] * 5, got - - finally: - sys.path[:] = oldpath _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit