def METHOD_NAME(test, params, env):
    """
    Driver in use test:
    1) boot guest with serial device.
    2) Transfer data between host and guest via serialport.
    3) run interrupt test during background stress test.
    :param test: QEMU test object
    :param params: Dictionary with the test parameters
    :param env: Dictionary with test environment.
    """
    driver = params["driver_name"]
    sender = params['file_sender']
    timeout = int(params.get("login_timeout", 360))
    suppress_exception = params.get("suppress_exception", "no") == "yes"
    vm = env.get_vm(params["main_vm"])
    session = vm.wait_for_login()
    if params["os_type"] == "windows":
        session = utils_test.qemu.windrv_check_running_verifier(session, vm,
                                                                test, driver,
                                                                timeout)
    bg_thread = run_bg_test(test, params, vm, sender)
    globals().get(params["interrupt_test"])(test, params, vm, session)
    # for vcpu hotplug subtest, only check guest crash.
    vcpu_hotplug = params.get_boolean("vcpu_hotplug")
    if vcpu_hotplug:
        error_context.context("Check if guest is alive.", test.log.info)
        vm.verify_kernel_crash()
        session = vm.wait_for_login(timeout=timeout)
        session.close()
        return
    if bg_thread:
        bg_thread.join(timeout=timeout,
                       suppress_exception=suppress_exception)
    if vm.is_alive():
        kill_host_serial_pid(params, vm)
        if (virtio_serial_file_transfer.transfer_data(
                params, vm, sender=sender) is not True):
            test.fail("Serial data transfter test failed.")
    if params.get("memory_leak_check", "no") == "yes":
        # for windows guest, disable/uninstall driver to get memory leak based on
        # driver verifier is enabled
        if params.get("os_type") == "windows":
            win_driver_utils.memory_leak_check(vm, test, params)