def test_no_validation_callback_for_custom_benchmark(env: LlvmEnv): """Test that a custom benchmark has no validation callback.""" with tempfile.TemporaryDirectory() as d: p = Path(d) / "example.c" with open(p, "w") as f: print("int main() {return 0;}", file=f) benchmark = env.make_benchmark(p) env.benchmark = benchmark env.reset() validation_cb = get_llvm_benchmark_validation_callback(env) assert validation_cb is None
def test_two_custom_benchmarks_reset(env: LlvmEnv): with tempfile.TemporaryDirectory() as d: source = Path(d) / "a.c" with open(str(source), "w") as f: f.write("int main() { return 0; }") benchmark1 = llvm.make_benchmark(source) benchmark2 = llvm.make_benchmark(source) assert benchmark1.uri != benchmark2.uri env.reset(benchmark=benchmark1) assert env.benchmark == benchmark1.uri env.reset() assert env.benchmark == benchmark1.uri env.benchmark = benchmark2 # assert env.benchmark == benchmark1.uri env.reset() assert env.benchmark == benchmark2.uri
def test_two_custom_benchmarks_reset(env: LlvmEnv): with tempfile.TemporaryDirectory() as d: source = Path(d) / "a.c" with open(str(source), "w") as f: f.write("int main() { return 0; }") benchmark1 = llvm.make_benchmark(source) benchmark2 = llvm.make_benchmark(source) assert benchmark1.uri != benchmark2.uri env.reset(benchmark=benchmark1) assert env.benchmark == benchmark1.uri env.reset() assert env.benchmark == benchmark1.uri with pytest.warns( UserWarning, match=r"Changing the benchmark has no effect until reset\(\) is called", ): env.benchmark = benchmark2 env.reset() assert env.benchmark == benchmark2.uri