code: def test_pointers(msg):
      from pybind11_tests import (
          return_void_ptr,
          get_void_ptr_value,
          ExampleMandA,
          print_opaque_list,
          return_null_str,
          get_null_str_value,
          return_unique_ptr,
          ConstructorStats,
      )
  
      living_before = ConstructorStats.get(ExampleMandA).alive()
      assert get_void_ptr_value(return_void_ptr()) == 0x1234
      assert get_void_ptr_value(
          ExampleMandA()
      )  # Should also work for other C++ types
      assert ConstructorStats.get(ExampleMandA).alive() == living_before
  
      with pytest.raises(TypeError) as excinfo:
          get_void_ptr_value([1, 2, 3])  # This should not work
      assert (
          msg(excinfo.value)
          == """
          get_void_ptr_value(): incompatible function arguments. The following argument types are supported:
              1. (arg0: capsule) -> int
  
          Invoked with: [1, 2, 3]
      """
      )  # noqa: E501 line too long
  
      assert return_null_str() is None
      assert get_null_str_value(return_null_str()) is not None
  
      ptr = return_unique_ptr()
      assert "StringList" in repr(ptr)
      assert print_opaque_list(ptr) == "Opaque list: [some value]"
  
label_desc: Use image node_id 2 for calling a global function with example usage: test_pointers(msg) without return types