code: def test_enqueue_copy_array(ctx_factory):
      # https://github.com/inducer/pyopencl/issues/618
      ctx = ctx_factory()
      queue = cl.CommandQueue(ctx)
  
      if ctx._get_cl_version() < (
          1,
          2,
      ) or cl.get_cl_header_version() < (1, 2):
          pytest.skip("requires CL 1.2")
  
      if not queue.device.image_support:
          pytest.skip("device has no image support")
  
      image_format = cl.ImageFormat(
          cl.channel_order.RGBA, cl.channel_type.FLOAT
      )
      flags = cl.mem_flags.READ_ONLY
      image = np.ascontiguousarray(np.zeros((128, 128, 4), np.float32))
      image_cl = cl.Image(
          ctx,
          flags,
          image_format,
          shape=(image.shape[1], image.shape[0], 1),
          is_array=True,
      )
      cl.enqueue_copy(
          queue,
          dest=image,
          src=image_cl,
          origin=(0, 0, 0),
          region=(image.shape[1], image.shape[0], 1),
      )
  
imports: import numpy
  import numpy.linalg
  import pytest
  import pyopencl
  import pyopencl.array
  import pyopencl.cltypes
  import pyopencl.clrandom
  from pyopencl.tools import pytest_generate_tests_for_pyopencl, ImmediateAllocator, DeferredAllocator
  from pyopencl.characterize import get_pocl_version
label_desc: Use image node_id 41 for calling a global function with example usage: test_enqueue_copy_array(ctx_factory) without return types