diff -r 000000000000 -r ae805ac0140d python-2.5.2/win32/Lib/test/test_imp.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python-2.5.2/win32/Lib/test/test_imp.py Fri Apr 03 17:19:34 2009 +0100 @@ -0,0 +1,43 @@ +import imp +from test.test_support import TestFailed, TestSkipped +try: + import thread +except ImportError: + raise TestSkipped("test only valid when thread support is available") + +def verify_lock_state(expected): + if imp.lock_held() != expected: + raise TestFailed("expected imp.lock_held() to be %r" % expected) + +def testLock(): + LOOPS = 50 + + # The import lock may already be held, e.g. if the test suite is run + # via "import test.autotest". + lock_held_at_start = imp.lock_held() + verify_lock_state(lock_held_at_start) + + for i in range(LOOPS): + imp.acquire_lock() + verify_lock_state(True) + + for i in range(LOOPS): + imp.release_lock() + + # The original state should be restored now. + verify_lock_state(lock_held_at_start) + + if not lock_held_at_start: + try: + imp.release_lock() + except RuntimeError: + pass + else: + raise TestFailed("release_lock() without lock should raise " + "RuntimeError") + +def test_main(): + testLock() + +if __name__ == "__main__": + test_main()