PATH: //opt/alt/python311/lib64/python3.11/ctypes/test
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 __init__.py
↓
X
📄 __main__.py
↓
X
📁 __pycache__/
X
📄 test_anon.py
↓
X
📄 test_array_in_pointer.py
↓
X
📄 test_arrays.py
↓
X
📄 test_as_parameter.py
↓
X
📄 test_bitfields.py
↓
X
📄 test_buffers.py
↓
X
📄 test_bytes.py
↓
X
📄 test_byteswap.py
↓
X
📄 test_callbacks.py
↓
X
📄 test_cast.py
↓
X
📄 test_cfuncs.py
↓
X
📄 test_checkretval.py
↓
X
📄 test_delattr.py
↓
X
📄 test_errno.py
↓
X
📄 test_find.py
↓
X
📄 test_frombuffer.py
↓
X
📄 test_funcptr.py
↓
X
📄 test_functions.py
↓
X
📄 test_incomplete.py
↓
X
📄 test_init.py
↓
X
📄 test_internals.py
↓
X
📄 test_keeprefs.py
↓
X
📄 test_libc.py
↓
X
📄 test_loading.py
↓
X
📄 test_macholib.py
↓
X
📄 test_memfunctions.py
↓
X
📄 test_numbers.py
↓
X
📄 test_objects.py
↓
X
📄 test_parameters.py
↓
X
📄 test_pep3118.py
↓
X
📄 test_pickling.py
↓
X
📄 test_pointers.py
↓
X
📄 test_prototypes.py
↓
X
📄 test_python_api.py
↓
X
📄 test_random_things.py
↓
X
📄 test_refcounts.py
↓
X
📄 test_repr.py
↓
X
📄 test_returnfuncptrs.py
↓
X
📄 test_simplesubclasses.py
↓
X
📄 test_sizes.py
↓
X
📄 test_slicing.py
↓
X
📄 test_stringptr.py
↓
X
📄 test_strings.py
↓
X
📄 test_struct_fields.py
↓
X
📄 test_structures.py
↓
X
📄 test_unaligned_structures.py
↓
X
📄 test_unicode.py
↓
X
📄 test_values.py
↓
X
📄 test_varsize_struct.py
↓
X
📄 test_win32.py
↓
X
📄 test_wintypes.py
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: test_find.py
import unittest import unittest.mock import os.path import sys import test.support from test.support import os_helper 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 > ' + os_helper.TESTFN) self.assertFalse(os.path.lexists(os_helper.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, 'wb') 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 os_helper.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) def test_gh114257(self): self.assertIsNone(find_library("libc")) if __name__ == "__main__": unittest.main()
SIMPAN PERUBAHAN