summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_dl.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_dl.py')
-rwxr-xr-xLib/test/test_dl.py54
1 files changed, 28 insertions, 26 deletions
diff --git a/Lib/test/test_dl.py b/Lib/test/test_dl.py
index b8cb0c04..dcc3ec2 100755
--- a/Lib/test/test_dl.py
+++ b/Lib/test/test_dl.py
@@ -1,32 +1,34 @@
#! /usr/bin/env python
"""Test dlmodule.c
- Roger E. Masse
+ Roger E. Masse revised strategy by Barry Warsaw
"""
-filename = '/usr/lib/libresolv.so'
-try:
- import dl
-except ImportError:
- # No test if no library
- raise SystemExit
+verbose = 0
+if __name__ == '__main__':
+ verbose = 1
-try:
- import os
- n = os.popen('/bin/uname','r')
- if n.readlines()[0][:-1] != 'SunOS':
- raise SystemExit
- l = dl.open('/usr/lib/libresolv.so')
-except:
- # No test if not SunOS (or Solaris)
- raise SystemExit
+import dl
-# Try to open a shared library that should be available
-# on SunOS and Solaris in a default place
-try:
- open(filename,'r')
-except IOError:
- # No test if I can't even open the test file with builtin open
- raise SystemExit
+sharedlibs = [
+ # SunOS/Solaris
+ ('/usr/lib/libresolv.so', 'gethostent'),
+ ]
-l = dl.open(filename)
-a = l.call('gethostent')
-l.close()
+for s, func in sharedlibs:
+ try:
+ if verbose:
+ print 'trying to open:', s,
+ l = dl.open(s)
+ except dl.error:
+ if verbose:
+ print 'failed'
+ pass
+ else:
+ if verbose:
+ print 'succeeded...',
+ l.call(func)
+ l.close()
+ if verbose:
+ print 'worked!'
+ break
+else:
+ print 'Could not open any shared libraries'