diff --git a/code_to_optimize/code_directories/simple_tracer_e2e/workload.py b/code_to_optimize/code_directories/simple_tracer_e2e/workload.py index 1fe6af823..2dfe2ba8a 100644 --- a/code_to_optimize/code_directories/simple_tracer_e2e/workload.py +++ b/code_to_optimize/code_directories/simple_tracer_e2e/workload.py @@ -1,4 +1,6 @@ from concurrent.futures import ThreadPoolExecutor + + def funcA(number): k = 0 for i in range(number * 100): @@ -9,6 +11,7 @@ def funcA(number): # Use a generator expression directly in join for more efficiency return " ".join(str(i) for i in range(number)) + def test_threadpool() -> None: pool = ThreadPoolExecutor(max_workers=3) args = list(range(10, 31, 10)) @@ -19,4 +22,4 @@ def test_threadpool() -> None: if __name__ == "__main__": - test_threadpool() \ No newline at end of file + test_threadpool() diff --git a/codeflash/tracer.py b/codeflash/tracer.py index eb4df84d4..5d1240868 100644 --- a/codeflash/tracer.py +++ b/codeflash/tracer.py @@ -247,14 +247,18 @@ def tracer_logic(self, frame: FrameType, event: str) -> None: return if self.timeout is not None and (time.time() - self.start_time) > self.timeout: sys.setprofile(None) + threading.setprofile(None) console.print(f"Codeflash: Timeout reached! Stopping tracing at {self.timeout} seconds.") return code = frame.f_code + file_name = Path(code.co_filename).resolve() # TODO : It currently doesn't log the last return call from the first function if code.co_name in self.ignored_functions: return + if not file_name.is_relative_to(self.project_root): + return if not file_name.exists(): return if self.functions and code.co_name not in self.functions: diff --git a/tests/scripts/end_to_end_test_tracer_replay.py b/tests/scripts/end_to_end_test_tracer_replay.py index 58662448e..ffd3f0b5a 100644 --- a/tests/scripts/end_to_end_test_tracer_replay.py +++ b/tests/scripts/end_to_end_test_tracer_replay.py @@ -10,7 +10,7 @@ def run_test(expected_improvement_pct: int) -> bool: min_improvement_x=0.1, expected_unit_tests=1, coverage_expectations=[ - CoverageExpectation(function_name="funcA", expected_coverage=100.0, expected_lines=[3, 4, 5, 7, 10]), + CoverageExpectation(function_name="funcA", expected_coverage=100.0, expected_lines=[5, 6, 7, 9, 12]), ], ) cwd = ( diff --git a/tests/scripts/end_to_end_test_utilities.py b/tests/scripts/end_to_end_test_utilities.py index c961b6fd1..fda917020 100644 --- a/tests/scripts/end_to_end_test_utilities.py +++ b/tests/scripts/end_to_end_test_utilities.py @@ -202,8 +202,8 @@ def run_trace_test(cwd: pathlib.Path, config: TestConfig, expected_improvement_p return False functions_traced = re.search(r"Traced (\d+) function calls successfully and replay test created at - (.*)$", stdout) - if not functions_traced or int(functions_traced.group(1)) != 5: - logging.error("Expected 5 traced functions") + if not functions_traced or int(functions_traced.group(1)) != 4: + logging.error("Expected 4 traced functions") return False replay_test_path = pathlib.Path(functions_traced.group(2))