PATH: //proc/self/root/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_array_in_pointer.py
import unittest from ctypes import * from binascii import hexlify import re def dump(obj): # helper function to dump memory contents in hex, with a hyphen # between the bytes. h = hexlify(memoryview(obj)).decode() return re.sub(r"(..)", r"\1-", h)[:-1] class Value(Structure): _fields_ = [("val", c_byte)] class Container(Structure): _fields_ = [("pvalues", POINTER(Value))] class Test(unittest.TestCase): def test(self): # create an array of 4 values val_array = (Value * 4)() # create a container, which holds a pointer to the pvalues array. c = Container() c.pvalues = val_array # memory contains 4 NUL bytes now, that's correct self.assertEqual("00-00-00-00", dump(val_array)) # set the values of the array through the pointer: for i in range(4): c.pvalues[i].val = i + 1 values = [c.pvalues[i].val for i in range(4)] # These are the expected results: here s the bug! self.assertEqual( (values, dump(val_array)), ([1, 2, 3, 4], "01-02-03-04") ) def test_2(self): val_array = (Value * 4)() # memory contains 4 NUL bytes now, that's correct self.assertEqual("00-00-00-00", dump(val_array)) ptr = cast(val_array, POINTER(Value)) # set the values of the array through the pointer: for i in range(4): ptr[i].val = i + 1 values = [ptr[i].val for i in range(4)] # These are the expected results: here s the bug! self.assertEqual( (values, dump(val_array)), ([1, 2, 3, 4], "01-02-03-04") ) if __name__ == "__main__": unittest.main()
SIMPAN PERUBAHAN