diff --git a/src/pytest_codspeed/instruments/walltime.py b/src/pytest_codspeed/instruments/walltime.py index a992477..2b01241 100644 --- a/src/pytest_codspeed/instruments/walltime.py +++ b/src/pytest_codspeed/instruments/walltime.py @@ -224,6 +224,8 @@ def __codspeed_root_frame__() -> T: # Benchmark iter_range = range(iter_per_round) run_start = perf_counter_ns() + if self.instrument_hooks: + self.instrument_hooks.start_benchmark() for _ in range(rounds): start = perf_counter_ns() for _ in iter_range: @@ -234,6 +236,9 @@ def __codspeed_root_frame__() -> T: if end - run_start > benchmark_config.max_time_ns: # TODO: log something break + if self.instrument_hooks: + self.instrument_hooks.stop_benchmark() + self.instrument_hooks.set_executed_benchmark(uri) benchmark_end = perf_counter_ns() total_time = (benchmark_end - run_start) / 1e9 @@ -250,7 +255,7 @@ def __codspeed_root_frame__() -> T: ) return out - def measure_pedantic( + def measure_pedantic( # noqa: C901 self, marker_options: BenchmarkMarkerOptions, pedantic_options: PedanticOptions[T], @@ -277,6 +282,8 @@ def __codspeed_root_frame__(*args, **kwargs) -> T: # Benchmark times_per_round_ns: list[float] = [] benchmark_start = perf_counter_ns() + if self.instrument_hooks: + self.instrument_hooks.start_benchmark() for _ in range(pedantic_options.rounds): start = perf_counter_ns() args, kwargs = pedantic_options.setup_and_get_args_kwargs() @@ -286,7 +293,9 @@ def __codspeed_root_frame__(*args, **kwargs) -> T: times_per_round_ns.append(end - start) if pedantic_options.teardown is not None: pedantic_options.teardown(*args, **kwargs) - + if self.instrument_hooks: + self.instrument_hooks.stop_benchmark() + self.instrument_hooks.set_executed_benchmark(uri) benchmark_end = perf_counter_ns() total_time = (benchmark_end - benchmark_start) / 1e9 stats = BenchmarkStats.from_list(