def METHOD_NAME(self) -> None:
    """
    Create two images:
    - base image {base} with {data_size} bytes allocated
    - top image {top} without any data allocated
    And the following VM configuration:
    - base image throttled to {data_size}
    - top image with a blkdebug configuration so the first write access
      to it will result in an error
    - top image is attached to a virtio-scsi device
    """
    qemu_img_create('-f', imgfmt, base, str(image_size))
    qemu_io('-c', f'write 0 {data_size}', base)
    qemu_img_create('-f', imgfmt, top, str(image_size))
    self.vm = iotests.VM()
    self.vm.add_args('-accel', 'tcg') # Make throttling work properly
    self.vm.add_object(self.vm.qmp_to_opts({
        'qom-type': 'throttle-group',
        'id': 'thrgr',
        'x-bps-total': str(data_size)
    }))
    self.vm.add_blockdev(self.vm.qmp_to_opts({
        'driver': imgfmt,
        'node-name': 'base',
        'file': {
            'driver': 'throttle',
            'throttle-group': 'thrgr',
            'file': {
                'driver': 'file',
                'filename': base
            }
        }
    }))
    self.vm.add_blockdev(self.vm.qmp_to_opts({
        'driver': imgfmt,
        'node-name': 'top',
        'file': {
            'driver': 'blkdebug',
            'node-name': 'top-blkdebug',
            'inject-error': [{
                'event': 'pwritev',
                'immediately': 'true',
                'once': 'true'
            }],
            'image': {
                'driver': 'file',
                'filename': top
            }
        },
        'backing': 'base'
    }))
    self.vm.add_device(self.vm.qmp_to_opts({
        'driver': 'virtio-scsi',
        'id': 'vscsi'
    }))
    self.vm.add_device(self.vm.qmp_to_opts({
        'driver': 'scsi-hd',
        'bus': 'vscsi.0',
        'drive': 'top'
    }))
    self.vm.launch()