/
opt
/
imh-python
/
lib
/
python3.9
/
ctypes
/
test
/
/opt/imh-python/lib/python3.9/ctypes/test
mkdir
upload
Name
Size
Mode
Actions
__pycache__/
-
0755
rm
test_anon.py
2540
0644
edit
dl
rm
test_arrays.py
7505
0644
edit
dl
rm
test_array_in_pointer.py
1738
0644
edit
dl
rm
test_as_parameter.py
6919
0644
edit
dl
rm
test_bitfields.py
10222
0644
edit
dl
rm
test_buffers.py
2611
0644
edit
dl
rm
test_bytes.py
1987
0644
edit
dl
rm
test_byteswap.py
11411
0644
edit
dl
rm
test_callbacks.py
10574
0644
edit
dl
rm
test_cast.py
3728
0644
edit
dl
rm
test_cfuncs.py
7680
0644
edit
dl
rm
test_checkretval.py
968
0644
edit
dl
rm
test_delattr.py
533
0644
edit
dl
rm
test_errno.py
2171
0644
edit
dl
rm
test_find.py
4433
0644
edit
dl
rm
test_frombuffer.py
5215
0644
edit
dl
rm
test_funcptr.py
4026
0644
edit
dl
rm
test_functions.py
12556
0644
edit
dl
rm
test_incomplete.py
1023
0644
edit
dl
rm
test_init.py
1039
0644
edit
dl
rm
test_internals.py
2631
0644
edit
dl
rm
test_keeprefs.py
4058
0644
edit
dl
rm
test_libc.py
1005
0644
edit
dl
rm
test_loading.py
7064
0644
edit
dl
rm
test_macholib.py
2121
0644
edit
dl
rm
test_memfunctions.py
3293
0644
edit
dl
rm
test_numbers.py
9526
0644
edit
dl
rm
test_objects.py
1677
0644
edit
dl
rm
test_parameters.py
9570
0644
edit
dl
rm
test_pep3118.py
8516
0644
edit
dl
rm
test_pickling.py
2218
0644
edit
dl
rm
test_pointers.py
7239
0644
edit
dl
rm
test_prototypes.py
6845
0644
edit
dl
rm
test_python_api.py
2866
0644
edit
dl
rm
test_random_things.py
2836
0644
edit
dl
rm
test_refcounts.py
2576
0644
edit
dl
rm
test_repr.py
842
0644
edit
dl
rm
test_returnfuncptrs.py
2893
0644
edit
dl
rm
test_simplesubclasses.py
1289
0644
edit
dl
rm
test_sizes.py
804
0644
edit
dl
rm
test_slicing.py
6025
0644
edit
dl
rm
test_stringptr.py
2598
0644
edit
dl
rm
test_strings.py
7303
0644
edit
dl
rm
test_structures.py
27430
0644
edit
dl
rm
test_struct_fields.py
2421
0644
edit
dl
rm
test_unaligned_structures.py
1140
0644
edit
dl
rm
test_unicode.py
1997
0644
edit
dl
rm
test_values.py
3871
0644
edit
dl
rm
test_varsize_struct.py
1842
0644
edit
dl
rm
test_win32.py
5027
0644
edit
dl
rm
test_wintypes.py
1397
0644
edit
dl
rm
__init__.py
399
0644
edit
dl
rm
__main__.py
68
0644
edit
dl
rm
Edit:
/opt/imh-python/lib/python3.9/ctypes/test/test_find.py
(4433B)
import unittest import unittest.mock import os.path import sys import test.support from ctypes import * from ctypes.util import find_library # On some systems, loading the OpenGL libraries needs the RTLD_GLOBAL mode. class Test_OpenGL_libs(unittest.TestCase): @classmethod def setUpClass(cls): lib_gl = lib_glu = lib_gle = None if sys.platform == "win32": lib_gl = find_library("OpenGL32") lib_glu = find_library("Glu32") elif sys.platform == "darwin": lib_gl = lib_glu = find_library("OpenGL") else: lib_gl = find_library("GL") lib_glu = find_library("GLU") lib_gle = find_library("gle") ## print, for debugging if test.support.verbose: print("OpenGL libraries:") for item in (("GL", lib_gl), ("GLU", lib_glu), ("gle", lib_gle)): print("\t", item) cls.gl = cls.glu = cls.gle = None if lib_gl: try: cls.gl = CDLL(lib_gl, mode=RTLD_GLOBAL) except OSError: pass if lib_glu: try: cls.glu = CDLL(lib_glu, RTLD_GLOBAL) except OSError: pass if lib_gle: try: cls.gle = CDLL(lib_gle) except OSError: pass @classmethod def tearDownClass(cls): cls.gl = cls.glu = cls.gle = None def test_gl(self): if self.gl is None: self.skipTest('lib_gl not available') self.gl.glClearIndex def test_glu(self): if self.glu is None: self.skipTest('lib_glu not available') self.glu.gluBeginCurve def test_gle(self): if self.gle is None: self.skipTest('lib_gle not available') self.gle.gleGetJoinStyle def test_shell_injection(self): result = find_library('; echo Hello shell > ' + test.support.TESTFN) self.assertFalse(os.path.lexists(test.support.TESTFN)) self.assertIsNone(result) @unittest.skipUnless(sys.platform.startswith('linux'), 'Test only valid for Linux') class FindLibraryLinux(unittest.TestCase): def test_find_on_libpath(self): import subprocess import tempfile try: p = subprocess.Popen(['gcc', '--version'], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) out, _ = p.communicate() except OSError: raise unittest.SkipTest('gcc, needed for test, not available') with tempfile.TemporaryDirectory() as d: # create an empty temporary file srcname = os.path.join(d, 'dummy.c') libname = 'py_ctypes_test_dummy' dstname = os.path.join(d, 'lib%s.so' % libname) with open(srcname, 'w') as f: pass self.assertTrue(os.path.exists(srcname)) # compile the file to a shared library cmd = ['gcc', '-o', dstname, '--shared', '-Wl,-soname,lib%s.so' % libname, srcname] out = subprocess.check_output(cmd) self.assertTrue(os.path.exists(dstname)) # now check that the .so can't be found (since not in # LD_LIBRARY_PATH) self.assertIsNone(find_library(libname)) # now add the location to LD_LIBRARY_PATH with test.support.EnvironmentVarGuard() as env: KEY = 'LD_LIBRARY_PATH' if KEY not in env: v = d else: v = '%s:%s' % (env[KEY], d) env.set(KEY, v) # now check that the .so can be found (since in # LD_LIBRARY_PATH) self.assertEqual(find_library(libname), 'lib%s.so' % libname) def test_find_library_with_gcc(self): with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None): self.assertNotEqual(find_library('c'), None) def test_find_library_with_ld(self): with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None), \ unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None): self.assertNotEqual(find_library('c'), None) if __name__ == "__main__": unittest.main()
Save
cmd:
run