import kernbench.cli.main as cli_main


def test_cli_main_arg_parsing(monkeypatch):

    def fake_cmd_run(args) -> int:
        assert args.cmd == "run"
        assert args.topology == "topology.yaml"
        assert args.bench == "qkv-gemm"
        assert args.device == None
        return 0

    # monkey patch the handler to test arg parsing without running the actual bench
    monkeypatch.setattr(cli_main, "cmd_run", fake_cmd_run)
    rc = cli_main.main(["run", "--topology", "topology.yaml", "--bench", "qkv-gemm"])
    assert rc == 0


def test_cli_main():
    """CLI bench run on single SIP device."""
    rc = cli_main.main(["run", "--topology", "topology.yaml", "--bench", "qkv-gemm", "--device", "sip:0"])
    assert rc == 0
