Skip to content

Commit 96e2a2e

Browse files
authored
Merge pull request #110 from codeflash-ai/trace-deterministic
tracer deterministism
2 parents 17de10b + b58c37d commit 96e2a2e

File tree

4 files changed

+11
-4
lines changed

4 files changed

+11
-4
lines changed

code_to_optimize/code_directories/simple_tracer_e2e/workload.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
from concurrent.futures import ThreadPoolExecutor
2+
3+
24
def funcA(number):
35
k = 0
46
for i in range(number * 100):
@@ -9,6 +11,7 @@ def funcA(number):
911
# Use a generator expression directly in join for more efficiency
1012
return " ".join(str(i) for i in range(number))
1113

14+
1215
def test_threadpool() -> None:
1316
pool = ThreadPoolExecutor(max_workers=3)
1417
args = list(range(10, 31, 10))
@@ -19,4 +22,4 @@ def test_threadpool() -> None:
1922

2023

2124
if __name__ == "__main__":
22-
test_threadpool()
25+
test_threadpool()

codeflash/tracer.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,14 +247,18 @@ def tracer_logic(self, frame: FrameType, event: str) -> None:
247247
return
248248
if self.timeout is not None and (time.time() - self.start_time) > self.timeout:
249249
sys.setprofile(None)
250+
threading.setprofile(None)
250251
console.print(f"Codeflash: Timeout reached! Stopping tracing at {self.timeout} seconds.")
251252
return
252253
code = frame.f_code
254+
253255
file_name = Path(code.co_filename).resolve()
254256
# TODO : It currently doesn't log the last return call from the first function
255257

256258
if code.co_name in self.ignored_functions:
257259
return
260+
if not file_name.is_relative_to(self.project_root):
261+
return
258262
if not file_name.exists():
259263
return
260264
if self.functions and code.co_name not in self.functions:

tests/scripts/end_to_end_test_tracer_replay.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def run_test(expected_improvement_pct: int) -> bool:
1010
min_improvement_x=0.1,
1111
expected_unit_tests=1,
1212
coverage_expectations=[
13-
CoverageExpectation(function_name="funcA", expected_coverage=100.0, expected_lines=[3, 4, 5, 7, 10]),
13+
CoverageExpectation(function_name="funcA", expected_coverage=100.0, expected_lines=[5, 6, 7, 9, 12]),
1414
],
1515
)
1616
cwd = (

tests/scripts/end_to_end_test_utilities.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,8 @@ def run_trace_test(cwd: pathlib.Path, config: TestConfig, expected_improvement_p
202202
return False
203203

204204
functions_traced = re.search(r"Traced (\d+) function calls successfully and replay test created at - (.*)$", stdout)
205-
if not functions_traced or int(functions_traced.group(1)) != 5:
206-
logging.error("Expected 5 traced functions")
205+
if not functions_traced or int(functions_traced.group(1)) != 4:
206+
logging.error("Expected 4 traced functions")
207207
return False
208208

209209
replay_test_path = pathlib.Path(functions_traced.group(2))

0 commit comments

Comments
 (0)