text: import os
  import platform
  
  import pytest
  
  import utils
  
  
  @pytest.mark.parametrize('manylinux_image', ['manylinux1', 'manylinux2010', 'manylinux2014'])
  def test(manylinux_image):
      project_dir = os.path.dirname(__file__)
  
      if utils.platform != 'linux':
          pytest.skip('the docker test is only relevant to the linux build')
      elif platform.machine() not in ['x86_64', 'i686']:
          if manylinux_image in ['manylinux1', 'manylinux2010']:
              pytest.skip("manylinux1 and 2010 doesn't exist for non-x86 architectures")
  
      # build the wheels
      # CFLAGS environment variable is necessary to fail on 'malloc_info' (on manylinux1) during compilation/linking,
      # rather than when dynamically loading the Python
      add_env = {
          'CIBW_ENVIRONMENT': 'CFLAGS="$CFLAGS -Werror=implicit-function-declaration"',
          'CIBW_MANYLINUX_X86_64_IMAGE': manylinux_image,
          'CIBW_MANYLINUX_I686_IMAGE': manylinux_image,
          'CIBW_MANYLINUX_PYPY_X86_64_IMAGE': manylinux_image,
          'CIBW_MANYLINUX_AARCH64_IMAGE': manylinux_image,
          'CIBW_MANYLINUX_PPC64LE_IMAGE': manylinux_image,
          'CIBW_MANYLINUX_S390X_IMAGE': manylinux_image,
      }
      if manylinux_image == 'manylinux1':
          # We don't have a manylinux1 image for PyPy
          add_env['CIBW_SKIP'] = 'pp*'
      elif manylinux_image == 'manylinux2014':
          # We don't have a manylinux2014 image for PyPy (yet?)
          add_env['CIBW_SKIP'] = 'cp27* pp*'  # Python 2.7 not available on manylinux2014
      actual_wheels = utils.cibuildwheel_run(project_dir, add_env=add_env)
  
      expected_wheels = [w for w in utils.expected_wheels('spam', '0.1.0', manylinux_versions=[manylinux_image])]
      if manylinux_image == 'manylinux2014':
          expected_wheels = [w for w in expected_wheels if '-cp27' not in w]
      if manylinux_image in ['manylinux1', 'manylinux2014']:
          expected_wheels = [w for w in expected_wheels if '-pp' not in w]
      assert set(actual_wheels) == set(expected_wheels)
  