diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
commit | 458120dd40db6b4df55a4e96b650e16798ef06a0 (patch) | |
tree | 8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/lib/python/test/test_imp.py | |
parent | 3a742c699f6806c1145aea5149bf15de15a0afd7 (diff) |
add hg and python
Diffstat (limited to 'sys/lib/python/test/test_imp.py')
-rw-r--r-- | sys/lib/python/test/test_imp.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/sys/lib/python/test/test_imp.py b/sys/lib/python/test/test_imp.py new file mode 100644 index 000000000..893ba2461 --- /dev/null +++ b/sys/lib/python/test/test_imp.py @@ -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() |