blob: 6069a77bf1a7f6c130632f722ec0d1699e58a809 [file] [log] [blame]
Roger E. Masse7eee08d1996-12-13 20:32:26 +00001#! /usr/bin/env python
2"""Test dlmodule.c
Roger E. Masse2362b581996-12-16 20:25:44 +00003 Roger E. Masse revised strategy by Barry Warsaw
Roger E. Masse7eee08d1996-12-13 20:32:26 +00004"""
Georg Brandl72243502010-02-06 23:02:29 +00005import unittest
Benjamin Petersonbec087f2009-03-26 21:10:30 +00006from test.test_support import verbose, import_module
Brett Cannon7f874fc2008-05-10 21:20:19 +00007dl = import_module('dl', deprecated=True)
Roger E. Masse7eee08d1996-12-13 20:32:26 +00008
Roger E. Masse2362b581996-12-16 20:25:44 +00009sharedlibs = [
Guido van Rossuma6ed2251997-04-09 20:57:52 +000010 ('/usr/lib/libc.so', 'getpid'),
Guido van Rossum74ee8861999-02-23 17:58:48 +000011 ('/lib/libc.so.6', 'getpid'),
Andrew M. Kuchling6efc6e72001-02-27 20:54:23 +000012 ('/usr/bin/cygwin1.dll', 'getpid'),
Anthony Baxter82201742006-04-09 15:07:40 +000013 ('/usr/lib/libc.dylib', 'getpid'),
Roger E. Masse2362b581996-12-16 20:25:44 +000014 ]
Roger E. Masse7eee08d1996-12-13 20:32:26 +000015
Brett Cannon8820f2a2008-04-01 12:46:02 +000016def test_main():
17 for s, func in sharedlibs:
18 try:
19 if verbose:
20 print 'trying to open:', s,
21 l = dl.open(s)
22 except dl.error, err:
23 if verbose:
24 print 'failed', repr(str(err))
25 pass
26 else:
27 if verbose:
28 print 'succeeded...',
29 l.call(func)
30 l.close()
31 if verbose:
32 print 'worked!'
33 break
Roger E. Masse2362b581996-12-16 20:25:44 +000034 else:
Benjamin Petersonbec087f2009-03-26 21:10:30 +000035 raise unittest.SkipTest, 'Could not open any shared libraries'
Brett Cannon8820f2a2008-04-01 12:46:02 +000036
37
38if __name__ == '__main__':
39 test_main()