def METHOD_NAME(
    cpu: str,
    num_cpus: int,
    cache_type: str,
    memory_class: str,
    length: str,
    to_tick: Optional[int] = None,
):
    name = "{}-cpu_{}-cores_{}_{}_riscv-boot-test".format(
        cpu, str(num_cpus), cache_type, memory_class
    )
    verifiers = []
    exit_regex = re.compile(
        f"Exiting @ tick {str(to_tick)} because simulate\\(\\) limit reached"
    )
    verifiers.append(verifier.MatchRegex(exit_regex))
    config_args = [
        "--cpu",
        cpu,
        "--num-cpus",
        str(num_cpus),
        "--mem-system",
        cache_type,
        "--dram-class",
        memory_class,
        "--resource-directory",
        resource_path,
    ]
    if to_tick:
        name += "_to-tick"
        config_args += ["--tick-exit", str(to_tick)]
    gem5_verify_config(
        name=name,
        verifiers=verifiers,
        fixtures=(),
        config=joinpath(
            config.base_dir,
            "tests",
            "gem5",
            "configs",
            "riscv_boot_exit_run.py",
        ),
        config_args=config_args,
        valid_isas=(constants.all_compiled_tag,),
        valid_hosts=constants.supported_hosts,
        length=length,
    )