From: Ned Deily Date: Sat, 9 Apr 2011 21:58:04 +0000 (-0700) Subject: Issue9670: Merge backout from 3.2. X-Git-Tag: v3.3.0a1~2633 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4e6aba6f6352acd0f40a7677c678afa4079a85ba;p=thirdparty%2FPython%2Fcpython.git Issue9670: Merge backout from 3.2. --- 4e6aba6f6352acd0f40a7677c678afa4079a85ba diff --cc Lib/test/test_threading.py index 270e0b86e499,5f99b2ea9f59..c107652d268f --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@@ -685,40 -677,6 +685,10 @@@ class ThreadingExceptionTests(BaseTestC thread.start() self.assertRaises(RuntimeError, setattr, thread, "daemon", True) + def test_releasing_unacquired_lock(self): + lock = threading.Lock() + self.assertRaises(RuntimeError, lock.release) + - def test_recursion_limit(self): - # Issue 9670 - # test that excessive recursion within a non-main thread causes - # an exception rather than crashing the interpreter on platforms - # like Mac OS X or FreeBSD which have small default stack sizes - # for threads - script = """if True: - import threading - - def recurse(): - return recurse() - - def outer(): - try: - recurse() - except RuntimeError: - pass - - w = threading.Thread(target=outer) - w.start() - w.join() - print('end of main thread') - """ - expected_output = "end of main thread\n" - p = subprocess.Popen([sys.executable, "-c", script], - stdout=subprocess.PIPE) - stdout, stderr = p.communicate() - data = stdout.decode().replace('\r', '') - self.assertEqual(p.returncode, 0, "Unexpected error") - self.assertEqual(data, expected_output) class LockTests(lock_tests.LockTests): locktype = staticmethod(threading.Lock)