code: def test_empty_ndrange(ctx_factory, empty_shape):
      ctx = ctx_factory()
      queue = cl.CommandQueue(ctx)
  
      if ctx._get_cl_version() < (
          1,
          2,
      ) or cl.get_cl_header_version() < (1, 2):
          pytest.skip("OpenCL 1.2 required for empty NDRange suuport")
  
      a = cl_array.zeros(queue, empty_shape, dtype=np.float32)
  
      prg = cl.Program(
          ctx,
          """
          __kernel void add_two(__global float *a_g)
          {
            a_g[get_global_id(0)] += 2;
          }
          """,
      ).build()
  
      prg.add_two(
          queue, a.shape, None, a.data, allow_empty_ndrange=True
      )
  
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 38 for calling a global function with example usage: test_empty_ndrange(ctx_factory, empty_shape) without return types