code: def test_change_pointers(self):
      dll = CDLL(_ctypes_test.__file__)
      func = dll._testfunc_p_p
  
      i = c_int(87654)
      func.restype = POINTER(c_int)
      func.argtypes = (POINTER(c_int),)
  
      res = func(pointer(i))
      self.assertEqual(res[0], 87654)
      self.assertEqual(res.contents.value, 87654)
  
      # C code: *res = 54345
      res[0] = 54345
      self.assertEqual(i.value, 54345)
  
      # C code:
      #   int x = 12321;
      #   res = &x
      x = c_int(12321)
      res.contents = x
      self.assertEqual(i.value, 54345)
  
      x.value = -99
      self.assertEqual(res.contents.value, -99)
  
imports: import _ctypes_test
  import array
  import ctypes
  import sys
  import unittest
  from ctypes import CDLL, CFUNCTYPE, Structure, POINTER, pointer, _Pointer, _pointer_type_cache, byref, sizeof, c_void_p, c_char_p, c_byte, c_ubyte, c_short, c_ushort, c_int, c_uint, c_long, c_ulong, c_longlong, c_ulonglong, c_float, c_double
  from ._support import _CData, PyCPointerType, Py_TPFLAGS_DISALLOW_INSTANTIATION, Py_TPFLAGS_IMMUTABLETYPE
label_desc: Use image node_id 5 for calling the PointersTestCase obj's underlying member method code with example usage: obj.test_change_pointers() without return types