mirror of
https://github.com/codeflash-ai/codeflash-agent.git
synced 2026-05-04 18:25:19 +00:00
feat: add dual-clock instrumentation (wall + CPU time) and remove dead binary parser
Measure both wall-clock time (perf_counter_ns) and CPU thread time (thread_time_ns) in instrumented test code. cpu_runtime is now a required int field on FunctionTestInvocation, stored in the SQLite test_results table as a 10th column. Also fixes the sleeptime.py bug (10e9 → 1e9 divisor) and removes the binary pickle parser (parse_test_return_values_bin) since no writer exists in the current codebase — SQLite is the sole data capture path.
This commit is contained in:
parent
0c622ac469
commit
eb6a0be717
27 changed files with 626 additions and 165 deletions
|
|
@ -179,7 +179,7 @@ def codeflash_capture(
|
||||||
and not callable(getattr(instance, attr, None))
|
and not callable(getattr(instance, attr, None))
|
||||||
}
|
}
|
||||||
codeflash_cur.execute(
|
codeflash_cur.execute(
|
||||||
"CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)"
|
"CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Write to sqlite
|
# Write to sqlite
|
||||||
|
|
@ -189,7 +189,7 @@ def codeflash_capture(
|
||||||
else PicklePatcher.dumps(instance_state)
|
else PicklePatcher.dumps(instance_state)
|
||||||
)
|
)
|
||||||
codeflash_cur.execute(
|
codeflash_cur.execute(
|
||||||
"INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
"INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
||||||
(
|
(
|
||||||
test_module_name,
|
test_module_name,
|
||||||
test_class_name,
|
test_class_name,
|
||||||
|
|
@ -202,6 +202,7 @@ def codeflash_capture(
|
||||||
VerificationType.INIT_STATE_FTO
|
VerificationType.INIT_STATE_FTO
|
||||||
if is_fto
|
if is_fto
|
||||||
else VerificationType.INIT_STATE_HELPER,
|
else VerificationType.INIT_STATE_HELPER,
|
||||||
|
0,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@ def codeflash_behavior_async(func: F) -> F:
|
||||||
codeflash_cur.execute(
|
codeflash_cur.execute(
|
||||||
"CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, "
|
"CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, "
|
||||||
"test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, "
|
"test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, "
|
||||||
"runtime INTEGER, return_value BLOB, verification_type TEXT)"
|
"runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)"
|
||||||
)
|
)
|
||||||
|
|
||||||
exception = None
|
exception = None
|
||||||
|
|
@ -119,7 +119,7 @@ def codeflash_behavior_async(func: F) -> F:
|
||||||
else pickle.dumps((args, kwargs, return_value))
|
else pickle.dumps((args, kwargs, return_value))
|
||||||
)
|
)
|
||||||
codeflash_cur.execute(
|
codeflash_cur.execute(
|
||||||
"INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
"INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
||||||
(
|
(
|
||||||
test_module_name,
|
test_module_name,
|
||||||
test_class_name,
|
test_class_name,
|
||||||
|
|
@ -130,6 +130,7 @@ def codeflash_behavior_async(func: F) -> F:
|
||||||
codeflash_duration,
|
codeflash_duration,
|
||||||
pickled_return_value,
|
pickled_return_value,
|
||||||
VerificationType.FUNCTION_CALL.value,
|
VerificationType.FUNCTION_CALL.value,
|
||||||
|
0,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
"""SQLite and binary pickle test result parsing."""
|
"""SQLite test result parsing."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
|
@ -42,7 +42,8 @@ def parse_sqlite_test_results(
|
||||||
" test_function_name,"
|
" test_function_name,"
|
||||||
" function_getting_tested, loop_index,"
|
" function_getting_tested, loop_index,"
|
||||||
" iteration_id, runtime,"
|
" iteration_id, runtime,"
|
||||||
" return_value, verification_type"
|
" return_value, verification_type,"
|
||||||
|
" cpu_runtime"
|
||||||
" FROM test_results"
|
" FROM test_results"
|
||||||
).fetchall()
|
).fetchall()
|
||||||
except sqlite3.Error:
|
except sqlite3.Error:
|
||||||
|
|
@ -99,6 +100,7 @@ def _process_sqlite_row_inner(
|
||||||
iteration_id = val[5]
|
iteration_id = val[5]
|
||||||
runtime = val[6]
|
runtime = val[6]
|
||||||
verification_type = val[8]
|
verification_type = val[8]
|
||||||
|
cpu_runtime = val[9]
|
||||||
|
|
||||||
test_file_path = file_path_from_module_name(
|
test_file_path = file_path_from_module_name(
|
||||||
test_module_path, # type: ignore[arg-type]
|
test_module_path, # type: ignore[arg-type]
|
||||||
|
|
@ -156,6 +158,7 @@ def _process_sqlite_row_inner(
|
||||||
test_framework=test_config.test_framework,
|
test_framework=test_config.test_framework,
|
||||||
test_type=test_type,
|
test_type=test_type,
|
||||||
return_value=ret_val,
|
return_value=ret_val,
|
||||||
|
cpu_runtime=cpu_runtime, # type: ignore[arg-type]
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
verification_type=(
|
verification_type=(
|
||||||
VerificationType(verification_type)
|
VerificationType(verification_type)
|
||||||
|
|
@ -164,95 +167,3 @@ def _process_sqlite_row_inner(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def parse_test_return_values_bin(
|
|
||||||
file_location: Path,
|
|
||||||
test_files: TestFiles,
|
|
||||||
test_config: TestConfig,
|
|
||||||
) -> TestResults:
|
|
||||||
"""Parse test results from a binary pickle file."""
|
|
||||||
import dill as pickle # noqa: PLC0415
|
|
||||||
|
|
||||||
test_results = TestResults()
|
|
||||||
if not file_location.exists():
|
|
||||||
log.debug("No test results for %s found.", file_location)
|
|
||||||
return test_results
|
|
||||||
|
|
||||||
with file_location.open("rb") as fh:
|
|
||||||
try:
|
|
||||||
while True:
|
|
||||||
len_next_bytes = fh.read(4)
|
|
||||||
if not len_next_bytes:
|
|
||||||
break
|
|
||||||
len_next = int.from_bytes(len_next_bytes, byteorder="big")
|
|
||||||
encoded_test_bytes = fh.read(len_next)
|
|
||||||
encoded_test_name = encoded_test_bytes.decode("ascii")
|
|
||||||
duration_bytes = fh.read(8)
|
|
||||||
duration = int.from_bytes(duration_bytes, byteorder="big")
|
|
||||||
len_next_bytes = fh.read(4)
|
|
||||||
len_next = int.from_bytes(len_next_bytes, byteorder="big")
|
|
||||||
test_pickle_bin = fh.read(len_next)
|
|
||||||
loop_index_bytes = fh.read(8)
|
|
||||||
loop_index = int.from_bytes(loop_index_bytes, byteorder="big")
|
|
||||||
len_next_bytes = fh.read(4)
|
|
||||||
len_next = int.from_bytes(len_next_bytes, byteorder="big")
|
|
||||||
invocation_id_bytes = fh.read(len_next)
|
|
||||||
invocation_id = invocation_id_bytes.decode("ascii")
|
|
||||||
|
|
||||||
invocation_id_object = InvocationId.from_str_id(
|
|
||||||
encoded_test_name, invocation_id
|
|
||||||
)
|
|
||||||
test_file_path = file_path_from_module_name(
|
|
||||||
invocation_id_object.test_module_path,
|
|
||||||
test_config.tests_project_rootdir,
|
|
||||||
)
|
|
||||||
test_type = test_files.get_test_type_by_instrumented_file_path(
|
|
||||||
test_file_path,
|
|
||||||
)
|
|
||||||
|
|
||||||
try:
|
|
||||||
test_pickle = (
|
|
||||||
pickle.loads( # noqa: S301
|
|
||||||
test_pickle_bin,
|
|
||||||
)
|
|
||||||
if loop_index == 1
|
|
||||||
else None
|
|
||||||
)
|
|
||||||
except Exception: # noqa: BLE001
|
|
||||||
log.debug(
|
|
||||||
"Failed to deserialize pickle for %s",
|
|
||||||
encoded_test_name,
|
|
||||||
exc_info=True,
|
|
||||||
)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if test_type is None:
|
|
||||||
log.debug(
|
|
||||||
"Test type not found for %s, skipping.",
|
|
||||||
test_file_path,
|
|
||||||
)
|
|
||||||
continue
|
|
||||||
|
|
||||||
test_results.add(
|
|
||||||
FunctionTestInvocation(
|
|
||||||
loop_index=loop_index,
|
|
||||||
id=invocation_id_object,
|
|
||||||
file_name=test_file_path,
|
|
||||||
did_pass=True,
|
|
||||||
runtime=duration,
|
|
||||||
test_framework=(test_config.test_framework),
|
|
||||||
test_type=test_type,
|
|
||||||
return_value=test_pickle,
|
|
||||||
timed_out=False,
|
|
||||||
verification_type=(VerificationType.FUNCTION_CALL),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
except Exception: # noqa: BLE001
|
|
||||||
log.warning(
|
|
||||||
"Failed to parse test results from %s.",
|
|
||||||
file_location,
|
|
||||||
exc_info=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
return test_results
|
|
||||||
|
|
|
||||||
|
|
@ -382,7 +382,8 @@ def codeflash_behavior_async(func):
|
||||||
" iteration_id TEXT,"
|
" iteration_id TEXT,"
|
||||||
" runtime INTEGER,"
|
" runtime INTEGER,"
|
||||||
" return_value BLOB,"
|
" return_value BLOB,"
|
||||||
" verification_type TEXT)"
|
" verification_type TEXT,"
|
||||||
|
" cpu_runtime INTEGER)"
|
||||||
)
|
)
|
||||||
exception = None
|
exception = None
|
||||||
counter = loop.time()
|
counter = loop.time()
|
||||||
|
|
@ -409,7 +410,7 @@ def codeflash_behavior_async(func):
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
codeflash_cur.execute(
|
codeflash_cur.execute(
|
||||||
"INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
"INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
||||||
(
|
(
|
||||||
test_module_name,
|
test_module_name,
|
||||||
test_class_name,
|
test_class_name,
|
||||||
|
|
@ -420,6 +421,7 @@ def codeflash_behavior_async(func):
|
||||||
codeflash_duration,
|
codeflash_duration,
|
||||||
pickled_return_value,
|
pickled_return_value,
|
||||||
"function_call",
|
"function_call",
|
||||||
|
0,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
|
|
|
||||||
|
|
@ -874,6 +874,21 @@ def create_wrapper_function(
|
||||||
),
|
),
|
||||||
lineno=lineno + 11,
|
lineno=lineno + 11,
|
||||||
),
|
),
|
||||||
|
ast.Assign(
|
||||||
|
targets=[
|
||||||
|
ast.Name(id="cpu_counter", ctx=ast.Store()),
|
||||||
|
],
|
||||||
|
value=ast.Call(
|
||||||
|
func=ast.Attribute(
|
||||||
|
value=ast.Name(id="time", ctx=ast.Load()),
|
||||||
|
attr="thread_time_ns",
|
||||||
|
ctx=ast.Load(),
|
||||||
|
),
|
||||||
|
args=[],
|
||||||
|
keywords=[],
|
||||||
|
),
|
||||||
|
lineno=lineno + 11,
|
||||||
|
),
|
||||||
ast.Assign(
|
ast.Assign(
|
||||||
targets=[
|
targets=[
|
||||||
ast.Name(
|
ast.Name(
|
||||||
|
|
@ -938,6 +953,34 @@ def create_wrapper_function(
|
||||||
),
|
),
|
||||||
lineno=lineno + 13,
|
lineno=lineno + 13,
|
||||||
),
|
),
|
||||||
|
ast.Assign(
|
||||||
|
targets=[
|
||||||
|
ast.Name(
|
||||||
|
id="codeflash_cpu_duration",
|
||||||
|
ctx=ast.Store(),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
value=ast.BinOp(
|
||||||
|
left=ast.Call(
|
||||||
|
func=ast.Attribute(
|
||||||
|
value=ast.Name(
|
||||||
|
id="time",
|
||||||
|
ctx=ast.Load(),
|
||||||
|
),
|
||||||
|
attr="thread_time_ns",
|
||||||
|
ctx=ast.Load(),
|
||||||
|
),
|
||||||
|
args=[],
|
||||||
|
keywords=[],
|
||||||
|
),
|
||||||
|
op=ast.Sub(),
|
||||||
|
right=ast.Name(
|
||||||
|
id="cpu_counter",
|
||||||
|
ctx=ast.Load(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
lineno=lineno + 13,
|
||||||
|
),
|
||||||
],
|
],
|
||||||
handlers=[
|
handlers=[
|
||||||
ast.ExceptHandler(
|
ast.ExceptHandler(
|
||||||
|
|
@ -972,6 +1015,34 @@ def create_wrapper_function(
|
||||||
),
|
),
|
||||||
lineno=lineno + 15,
|
lineno=lineno + 15,
|
||||||
),
|
),
|
||||||
|
ast.Assign(
|
||||||
|
targets=[
|
||||||
|
ast.Name(
|
||||||
|
id="codeflash_cpu_duration",
|
||||||
|
ctx=ast.Store(),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
value=ast.BinOp(
|
||||||
|
left=ast.Call(
|
||||||
|
func=ast.Attribute(
|
||||||
|
value=ast.Name(
|
||||||
|
id="time",
|
||||||
|
ctx=ast.Load(),
|
||||||
|
),
|
||||||
|
attr="thread_time_ns",
|
||||||
|
ctx=ast.Load(),
|
||||||
|
),
|
||||||
|
args=[],
|
||||||
|
keywords=[],
|
||||||
|
),
|
||||||
|
op=ast.Sub(),
|
||||||
|
right=ast.Name(
|
||||||
|
id="cpu_counter",
|
||||||
|
ctx=ast.Load(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
lineno=lineno + 15,
|
||||||
|
),
|
||||||
ast.Assign(
|
ast.Assign(
|
||||||
targets=[
|
targets=[
|
||||||
ast.Name(
|
ast.Name(
|
||||||
|
|
@ -1102,7 +1173,7 @@ def create_wrapper_function(
|
||||||
),
|
),
|
||||||
args=[
|
args=[
|
||||||
ast.Constant(
|
ast.Constant(
|
||||||
value="INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
value="INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
||||||
),
|
),
|
||||||
ast.Tuple(
|
ast.Tuple(
|
||||||
elts=[
|
elts=[
|
||||||
|
|
@ -1141,6 +1212,10 @@ def create_wrapper_function(
|
||||||
ast.Constant(
|
ast.Constant(
|
||||||
value=VerificationType.FUNCTION_CALL.value
|
value=VerificationType.FUNCTION_CALL.value
|
||||||
),
|
),
|
||||||
|
ast.Name(
|
||||||
|
id="codeflash_cpu_duration",
|
||||||
|
ctx=ast.Load(),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
ctx=ast.Load(),
|
ctx=ast.Load(),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -587,7 +587,8 @@ class InjectPerfOnly(ast.NodeTransformer):
|
||||||
ast.Constant(
|
ast.Constant(
|
||||||
value="CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT,"
|
value="CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT,"
|
||||||
" test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT,"
|
" test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT,"
|
||||||
" loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)"
|
" loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB,"
|
||||||
|
" verification_type TEXT, cpu_runtime INTEGER)"
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
keywords=[],
|
keywords=[],
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"""Top-level test result orchestrator.
|
"""Top-level test result orchestrator.
|
||||||
|
|
||||||
Coordinates XML, SQLite, binary, and merge parsers to produce
|
Coordinates XML, SQLite, and merge parsers to produce
|
||||||
a unified ``TestResults`` object.
|
a unified ``TestResults`` object.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -11,10 +11,7 @@ from pathlib import Path
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from ..runtime._codeflash_wrap_decorator import get_run_tmp_file
|
from ..runtime._codeflash_wrap_decorator import get_run_tmp_file
|
||||||
from ._data_parsers import (
|
from ._data_parsers import parse_sqlite_test_results
|
||||||
parse_sqlite_test_results,
|
|
||||||
parse_test_return_values_bin,
|
|
||||||
)
|
|
||||||
from ._result_merger import merge_test_results
|
from ._result_merger import merge_test_results
|
||||||
from ._stdout_parsers import parse_test_failures_from_stdout
|
from ._stdout_parsers import parse_test_failures_from_stdout
|
||||||
from ._xml_parser import parse_test_xml
|
from ._xml_parser import parse_test_xml
|
||||||
|
|
@ -53,18 +50,15 @@ def parse_test_results(
|
||||||
sql_file, test_files, test_config
|
sql_file, test_files, test_config
|
||||||
)
|
)
|
||||||
|
|
||||||
# Parse binary pickle results
|
# Clean up deprecated binary pickle file if present
|
||||||
bin_file = get_run_tmp_file(
|
bin_file = get_run_tmp_file(
|
||||||
Path(f"test_return_values_{optimization_iteration}.bin"),
|
Path(f"test_return_values_{optimization_iteration}.bin"),
|
||||||
)
|
)
|
||||||
if bin_file.exists():
|
if bin_file.exists():
|
||||||
bin_results = parse_test_return_values_bin(
|
log.debug(
|
||||||
bin_file, test_files, test_config
|
"Found deprecated .bin result file %s, removing.",
|
||||||
|
bin_file,
|
||||||
)
|
)
|
||||||
for result in bin_results:
|
|
||||||
data_results.add(result)
|
|
||||||
|
|
||||||
# Cleanup temp files
|
|
||||||
bin_file.unlink(missing_ok=True)
|
bin_file.unlink(missing_ok=True)
|
||||||
sql_file.unlink(missing_ok=True)
|
sql_file.unlink(missing_ok=True)
|
||||||
get_run_tmp_file(Path("pytest_results.xml")).unlink(
|
get_run_tmp_file(Path("pytest_results.xml")).unlink(
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,7 @@ def _merge_single_xml(
|
||||||
did_pass=xml_result.did_pass,
|
did_pass=xml_result.did_pass,
|
||||||
test_type=xml_result.test_type,
|
test_type=xml_result.test_type,
|
||||||
return_value=data_result.return_value,
|
return_value=data_result.return_value,
|
||||||
|
cpu_runtime=data_result.cpu_runtime,
|
||||||
timed_out=xml_result.timed_out,
|
timed_out=xml_result.timed_out,
|
||||||
verification_type=(
|
verification_type=(
|
||||||
VerificationType(data_result.verification_type)
|
VerificationType(data_result.verification_type)
|
||||||
|
|
@ -120,6 +121,7 @@ def _merge_by_iteration_id(
|
||||||
did_pass=data_result.did_pass,
|
did_pass=data_result.did_pass,
|
||||||
test_type=xml_result.test_type,
|
test_type=xml_result.test_type,
|
||||||
return_value=data_result.return_value,
|
return_value=data_result.return_value,
|
||||||
|
cpu_runtime=data_result.cpu_runtime,
|
||||||
timed_out=(
|
timed_out=(
|
||||||
xml_result.timed_out if merged_runtime is None else False
|
xml_result.timed_out if merged_runtime is None else False
|
||||||
),
|
),
|
||||||
|
|
@ -161,6 +163,7 @@ def _merge_by_index(
|
||||||
did_pass=data_result.did_pass,
|
did_pass=data_result.did_pass,
|
||||||
test_type=data_result.test_type,
|
test_type=data_result.test_type,
|
||||||
return_value=data_result.return_value,
|
return_value=data_result.return_value,
|
||||||
|
cpu_runtime=data_result.cpu_runtime,
|
||||||
timed_out=xml_result.timed_out,
|
timed_out=xml_result.timed_out,
|
||||||
verification_type=(
|
verification_type=(
|
||||||
VerificationType(data_result.verification_type)
|
VerificationType(data_result.verification_type)
|
||||||
|
|
|
||||||
|
|
@ -272,6 +272,7 @@ def parse_test_xml( # noqa: C901, PLR0912, PLR0915
|
||||||
did_pass=result,
|
did_pass=result,
|
||||||
test_type=test_type,
|
test_type=test_type,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=timed_out,
|
timed_out=timed_out,
|
||||||
stdout="",
|
stdout="",
|
||||||
),
|
),
|
||||||
|
|
@ -363,6 +364,7 @@ def _parse_begin_matches( # noqa: PLR0913
|
||||||
did_pass=result,
|
did_pass=result,
|
||||||
test_type=test_type,
|
test_type=test_type,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=timed_out,
|
timed_out=timed_out,
|
||||||
stdout=stdout,
|
stdout=stdout,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -142,6 +142,7 @@ class FunctionTestInvocation:
|
||||||
test_framework: str
|
test_framework: str
|
||||||
test_type: TestType
|
test_type: TestType
|
||||||
return_value: object | None
|
return_value: object | None
|
||||||
|
cpu_runtime: int
|
||||||
timed_out: bool | None
|
timed_out: bool | None
|
||||||
verification_type: str | None = VerificationType.FUNCTION_CALL
|
verification_type: str | None = VerificationType.FUNCTION_CALL
|
||||||
stdout: str | None = None
|
stdout: str | None = None
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,6 @@ def accurate_sleepfunc(t) -> float:
|
||||||
"""T is in seconds"""
|
"""T is in seconds"""
|
||||||
start_time = time.perf_counter_ns()
|
start_time = time.perf_counter_ns()
|
||||||
while True:
|
while True:
|
||||||
if (time.perf_counter_ns() - start_time) / 10e9 >= t:
|
if (time.perf_counter_ns() - start_time) / 1e9 >= t:
|
||||||
break
|
break
|
||||||
return t
|
return t
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,7 @@ class TestAddRuntimeComments:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
verification_type=VerificationType.FUNCTION_CALL,
|
verification_type=VerificationType.FUNCTION_CALL,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -391,6 +391,7 @@ def _make_test_results(
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=test_type,
|
test_type=test_type,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
@ -744,6 +745,7 @@ class TestEstablishOriginalCodeBaseline:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
@ -763,6 +765,7 @@ class TestEstablishOriginalCodeBaseline:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ def generate_test_invocations(count=100):
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=i,
|
loop_index=i,
|
||||||
)
|
)
|
||||||
|
|
@ -53,6 +54,7 @@ def generate_test_invocations(count=100):
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=i,
|
loop_index=i,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,7 @@ def _make_invocation(
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=42,
|
return_value=42,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2963,6 +2963,7 @@ def test_compare_results_fn():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=5,
|
return_value=5,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -2984,6 +2985,7 @@ def test_compare_results_fn():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=5,
|
return_value=5,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -3008,6 +3010,7 @@ def test_compare_results_fn():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=[5],
|
return_value=[5],
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -3032,6 +3035,7 @@ def test_compare_results_fn():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=5,
|
return_value=5,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -3051,6 +3055,7 @@ def test_compare_results_fn():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=5,
|
return_value=5,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -3075,6 +3080,7 @@ def test_compare_results_fn():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=5,
|
return_value=5,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -3099,6 +3105,7 @@ def test_compare_results_fn():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=5,
|
return_value=5,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -3120,6 +3127,7 @@ def test_compare_results_fn():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=5,
|
return_value=5,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -3144,6 +3152,7 @@ def test_compare_results_fn():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.REPLAY_TEST,
|
test_type=TestType.REPLAY_TEST,
|
||||||
return_value=5,
|
return_value=5,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -3165,6 +3174,7 @@ def test_compare_results_fn():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.REPLAY_TEST,
|
test_type=TestType.REPLAY_TEST,
|
||||||
return_value=5,
|
return_value=5,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
355
packages/codeflash-python/tests/test_cpu_runtime.py
Normal file
355
packages/codeflash-python/tests/test_cpu_runtime.py
Normal file
|
|
@ -0,0 +1,355 @@
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import sqlite3
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from codeflash_python.test_discovery.models import TestType
|
||||||
|
from codeflash_python.testing._result_merger import (
|
||||||
|
_merge_by_index,
|
||||||
|
_merge_by_iteration_id,
|
||||||
|
_merge_single_xml,
|
||||||
|
merge_test_results,
|
||||||
|
)
|
||||||
|
from codeflash_python.testing.models import (
|
||||||
|
FunctionTestInvocation,
|
||||||
|
InvocationId,
|
||||||
|
TestConfig,
|
||||||
|
TestFile,
|
||||||
|
TestFiles,
|
||||||
|
TestResults,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _make_inv_id(
|
||||||
|
*,
|
||||||
|
module: str = "tests.test_example",
|
||||||
|
cls: str | None = "TestExample",
|
||||||
|
func: str | None = "test_run",
|
||||||
|
target: str = "run",
|
||||||
|
iteration: str | None = "0",
|
||||||
|
) -> InvocationId:
|
||||||
|
return InvocationId(
|
||||||
|
test_module_path=module,
|
||||||
|
test_class_name=cls,
|
||||||
|
test_function_name=func,
|
||||||
|
function_getting_tested=target,
|
||||||
|
iteration_id=iteration,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _make_invocation( # noqa: PLR0913
|
||||||
|
*,
|
||||||
|
loop_index: int = 1,
|
||||||
|
inv_id: InvocationId | None = None,
|
||||||
|
did_pass: bool = True,
|
||||||
|
runtime: int | None = 500,
|
||||||
|
cpu_runtime: int = 400,
|
||||||
|
test_type: TestType = TestType.EXISTING_UNIT_TEST,
|
||||||
|
timed_out: bool = False,
|
||||||
|
) -> FunctionTestInvocation:
|
||||||
|
return FunctionTestInvocation(
|
||||||
|
loop_index=loop_index,
|
||||||
|
id=inv_id or _make_inv_id(),
|
||||||
|
file_name=Path("tests/test_example.py"),
|
||||||
|
did_pass=did_pass,
|
||||||
|
runtime=runtime,
|
||||||
|
test_framework="pytest",
|
||||||
|
test_type=test_type,
|
||||||
|
return_value=None,
|
||||||
|
cpu_runtime=cpu_runtime,
|
||||||
|
timed_out=timed_out,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class TestFunctionTestInvocationCpuRuntime:
|
||||||
|
"""cpu_runtime field on FunctionTestInvocation."""
|
||||||
|
|
||||||
|
def test_cpu_runtime_required(self) -> None:
|
||||||
|
with pytest.raises(TypeError):
|
||||||
|
FunctionTestInvocation(
|
||||||
|
loop_index=1,
|
||||||
|
id=_make_inv_id(),
|
||||||
|
file_name=Path("tests/test_example.py"),
|
||||||
|
did_pass=True,
|
||||||
|
runtime=100,
|
||||||
|
test_framework="pytest",
|
||||||
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
|
return_value=None,
|
||||||
|
# cpu_runtime omitted
|
||||||
|
timed_out=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_cpu_runtime_zero_is_valid(self) -> None:
|
||||||
|
inv = _make_invocation(cpu_runtime=0)
|
||||||
|
assert 0 == inv.cpu_runtime
|
||||||
|
|
||||||
|
def test_cpu_runtime_large_value(self) -> None:
|
||||||
|
inv = _make_invocation(cpu_runtime=5_000_000_000)
|
||||||
|
assert 5_000_000_000 == inv.cpu_runtime
|
||||||
|
|
||||||
|
|
||||||
|
class TestMergeSingleXmlCpuRuntime:
|
||||||
|
"""_merge_single_xml preserves data_result's cpu_runtime."""
|
||||||
|
|
||||||
|
def test_data_cpu_runtime_flows_through(self) -> None:
|
||||||
|
xml_result = _make_invocation(
|
||||||
|
cpu_runtime=0,
|
||||||
|
runtime=None,
|
||||||
|
inv_id=_make_inv_id(iteration=None),
|
||||||
|
)
|
||||||
|
data_results = TestResults()
|
||||||
|
data_results.add(
|
||||||
|
_make_invocation(cpu_runtime=12345, runtime=800),
|
||||||
|
)
|
||||||
|
merged = TestResults()
|
||||||
|
|
||||||
|
_merge_single_xml(xml_result, data_results, merged)
|
||||||
|
|
||||||
|
assert 1 == len(merged)
|
||||||
|
assert 12345 == merged[0].cpu_runtime
|
||||||
|
|
||||||
|
def test_data_zero_cpu_runtime_preserved(self) -> None:
|
||||||
|
xml_result = _make_invocation(
|
||||||
|
cpu_runtime=99999,
|
||||||
|
runtime=None,
|
||||||
|
inv_id=_make_inv_id(iteration=None),
|
||||||
|
)
|
||||||
|
data_results = TestResults()
|
||||||
|
data_results.add(
|
||||||
|
_make_invocation(cpu_runtime=0, runtime=500),
|
||||||
|
)
|
||||||
|
merged = TestResults()
|
||||||
|
|
||||||
|
_merge_single_xml(xml_result, data_results, merged)
|
||||||
|
|
||||||
|
assert 1 == len(merged)
|
||||||
|
assert 0 == merged[0].cpu_runtime
|
||||||
|
|
||||||
|
|
||||||
|
class TestMergeByIterationIdCpuRuntime:
|
||||||
|
"""_merge_by_iteration_id preserves data_result's cpu_runtime."""
|
||||||
|
|
||||||
|
def test_data_cpu_runtime_flows_through(self) -> None:
|
||||||
|
inv_id = _make_inv_id(iteration="7")
|
||||||
|
|
||||||
|
xml_results = TestResults()
|
||||||
|
xml_results.add(
|
||||||
|
_make_invocation(cpu_runtime=0, runtime=None, inv_id=inv_id),
|
||||||
|
)
|
||||||
|
|
||||||
|
data_results = TestResults()
|
||||||
|
data_results.add(
|
||||||
|
_make_invocation(cpu_runtime=77777, runtime=600, inv_id=inv_id),
|
||||||
|
)
|
||||||
|
|
||||||
|
merged = TestResults()
|
||||||
|
_merge_by_iteration_id(xml_results, data_results, merged)
|
||||||
|
|
||||||
|
assert 1 == len(merged)
|
||||||
|
assert 77777 == merged[0].cpu_runtime
|
||||||
|
|
||||||
|
|
||||||
|
class TestMergeByIndexCpuRuntime:
|
||||||
|
"""_merge_by_index preserves data_result's cpu_runtime."""
|
||||||
|
|
||||||
|
def test_data_cpu_runtime_flows_through(self) -> None:
|
||||||
|
xml_results = TestResults()
|
||||||
|
xml_results.add(
|
||||||
|
_make_invocation(
|
||||||
|
cpu_runtime=0,
|
||||||
|
runtime=None,
|
||||||
|
inv_id=_make_inv_id(iteration="a"),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
xml_results.add(
|
||||||
|
_make_invocation(
|
||||||
|
cpu_runtime=0,
|
||||||
|
runtime=None,
|
||||||
|
inv_id=_make_inv_id(iteration="b"),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
data_results = TestResults()
|
||||||
|
data_results.add(
|
||||||
|
_make_invocation(
|
||||||
|
cpu_runtime=111,
|
||||||
|
runtime=300,
|
||||||
|
inv_id=_make_inv_id(iteration="a"),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
data_results.add(
|
||||||
|
_make_invocation(
|
||||||
|
cpu_runtime=222,
|
||||||
|
runtime=400,
|
||||||
|
inv_id=_make_inv_id(iteration="b"),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
merged = TestResults()
|
||||||
|
_merge_by_index(xml_results, data_results, merged)
|
||||||
|
|
||||||
|
assert 2 == len(merged)
|
||||||
|
assert 111 == merged[0].cpu_runtime
|
||||||
|
assert 222 == merged[1].cpu_runtime
|
||||||
|
|
||||||
|
|
||||||
|
class TestSqliteParserCpuRuntime:
|
||||||
|
"""parse_sqlite_test_results extracts cpu_runtime from the database."""
|
||||||
|
|
||||||
|
def test_cpu_runtime_from_sqlite(self, tmp_path: Path) -> None:
|
||||||
|
from codeflash_python.testing._data_parsers import (
|
||||||
|
parse_sqlite_test_results,
|
||||||
|
)
|
||||||
|
|
||||||
|
test_file = tmp_path / "tests" / "test_example.py"
|
||||||
|
test_file.parent.mkdir(parents=True)
|
||||||
|
test_file.write_text("def test_run(): pass\n")
|
||||||
|
|
||||||
|
db_path = tmp_path / "results.sqlite"
|
||||||
|
db = sqlite3.connect(db_path)
|
||||||
|
db.execute(
|
||||||
|
"CREATE TABLE test_results ("
|
||||||
|
" test_module_path TEXT,"
|
||||||
|
" test_class_name TEXT,"
|
||||||
|
" test_function_name TEXT,"
|
||||||
|
" function_getting_tested TEXT,"
|
||||||
|
" loop_index INTEGER,"
|
||||||
|
" iteration_id TEXT,"
|
||||||
|
" runtime INTEGER,"
|
||||||
|
" return_value BLOB,"
|
||||||
|
" verification_type TEXT,"
|
||||||
|
" cpu_runtime INTEGER"
|
||||||
|
")"
|
||||||
|
)
|
||||||
|
db.execute(
|
||||||
|
"INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
||||||
|
(
|
||||||
|
"tests.test_example",
|
||||||
|
None,
|
||||||
|
"test_run",
|
||||||
|
"run",
|
||||||
|
1,
|
||||||
|
"0",
|
||||||
|
500,
|
||||||
|
None,
|
||||||
|
"function_call",
|
||||||
|
98765,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
db.commit()
|
||||||
|
db.close()
|
||||||
|
|
||||||
|
test_files = TestFiles(
|
||||||
|
test_files=[
|
||||||
|
TestFile(
|
||||||
|
original_file_path=test_file,
|
||||||
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
test_config = TestConfig(tests_project_rootdir=tmp_path)
|
||||||
|
|
||||||
|
results = parse_sqlite_test_results(db_path, test_files, test_config)
|
||||||
|
|
||||||
|
assert 1 == len(results)
|
||||||
|
assert 98765 == results[0].cpu_runtime
|
||||||
|
|
||||||
|
|
||||||
|
class TestEndToEndCpuRuntime:
|
||||||
|
"""Full pipeline: SQLite -> parse -> merge with XML -> verify cpu_runtime."""
|
||||||
|
|
||||||
|
def test_sqlite_cpu_runtime_survives_xml_merge(
|
||||||
|
self,
|
||||||
|
tmp_path: Path,
|
||||||
|
) -> None:
|
||||||
|
from codeflash_python.testing._data_parsers import (
|
||||||
|
parse_sqlite_test_results,
|
||||||
|
)
|
||||||
|
|
||||||
|
test_file = tmp_path / "tests" / "test_example.py"
|
||||||
|
test_file.parent.mkdir(parents=True)
|
||||||
|
test_file.write_text("def test_run(): pass\n")
|
||||||
|
|
||||||
|
db_path = tmp_path / "results.sqlite"
|
||||||
|
db = sqlite3.connect(db_path)
|
||||||
|
db.execute(
|
||||||
|
"CREATE TABLE test_results ("
|
||||||
|
" test_module_path TEXT,"
|
||||||
|
" test_class_name TEXT,"
|
||||||
|
" test_function_name TEXT,"
|
||||||
|
" function_getting_tested TEXT,"
|
||||||
|
" loop_index INTEGER,"
|
||||||
|
" iteration_id TEXT,"
|
||||||
|
" runtime INTEGER,"
|
||||||
|
" return_value BLOB,"
|
||||||
|
" verification_type TEXT,"
|
||||||
|
" cpu_runtime INTEGER"
|
||||||
|
")"
|
||||||
|
)
|
||||||
|
db.execute(
|
||||||
|
"INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
||||||
|
(
|
||||||
|
"tests.test_example",
|
||||||
|
None,
|
||||||
|
"test_run",
|
||||||
|
"run",
|
||||||
|
1,
|
||||||
|
"0",
|
||||||
|
750,
|
||||||
|
None,
|
||||||
|
"function_call",
|
||||||
|
42000,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
db.commit()
|
||||||
|
db.close()
|
||||||
|
|
||||||
|
test_files = TestFiles(
|
||||||
|
test_files=[
|
||||||
|
TestFile(
|
||||||
|
original_file_path=test_file,
|
||||||
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
test_config = TestConfig(tests_project_rootdir=tmp_path)
|
||||||
|
|
||||||
|
data_results = parse_sqlite_test_results(
|
||||||
|
db_path,
|
||||||
|
test_files,
|
||||||
|
test_config,
|
||||||
|
)
|
||||||
|
assert 1 == len(data_results)
|
||||||
|
assert 42000 == data_results[0].cpu_runtime
|
||||||
|
|
||||||
|
xml_results = TestResults()
|
||||||
|
xml_results.add(
|
||||||
|
FunctionTestInvocation(
|
||||||
|
loop_index=1,
|
||||||
|
id=InvocationId(
|
||||||
|
test_module_path="tests.test_example",
|
||||||
|
test_class_name=None,
|
||||||
|
test_function_name="test_run",
|
||||||
|
function_getting_tested="",
|
||||||
|
iteration_id=None,
|
||||||
|
),
|
||||||
|
file_name=test_file,
|
||||||
|
did_pass=True,
|
||||||
|
runtime=None,
|
||||||
|
test_framework="pytest",
|
||||||
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
|
timed_out=False,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
merged = merge_test_results(
|
||||||
|
xml_test_results=xml_results,
|
||||||
|
bin_test_results=data_results,
|
||||||
|
)
|
||||||
|
|
||||||
|
assert 1 == len(merged)
|
||||||
|
assert 42000 == merged[0].cpu_runtime
|
||||||
|
|
@ -130,6 +130,7 @@ def test_generated_test_critic() -> None:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -148,6 +149,7 @@ def test_generated_test_critic() -> None:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -166,6 +168,7 @@ def test_generated_test_critic() -> None:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -184,6 +187,7 @@ def test_generated_test_critic() -> None:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -202,6 +206,7 @@ def test_generated_test_critic() -> None:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.REPLAY_TEST,
|
test_type=TestType.REPLAY_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -220,6 +225,7 @@ def test_generated_test_critic() -> None:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=2,
|
loop_index=2,
|
||||||
)
|
)
|
||||||
|
|
@ -238,6 +244,7 @@ def test_generated_test_critic() -> None:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -64,6 +65,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -89,6 +91,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -115,6 +118,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -142,6 +146,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -178,6 +183,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=test_type,
|
test_type=test_type,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -213,6 +219,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -243,6 +250,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -273,6 +281,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -304,6 +313,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=test_type,
|
test_type=test_type,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -326,6 +336,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -348,6 +359,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -383,6 +395,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -416,6 +429,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -450,6 +464,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -482,6 +497,7 @@ class TestFileToNoOfTests:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -66,15 +66,18 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
gc.disable()
|
gc.disable()
|
||||||
try:
|
try:
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}######!')
|
print(f'!######{test_stdout_tag}######!')
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -85,7 +88,7 @@ def test_my_function():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -126,19 +129,22 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
elif _codeflash_should_sync_mps:
|
elif _codeflash_should_sync_mps:
|
||||||
torch.mps.synchronize()
|
torch.mps.synchronize()
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_cuda:
|
if _codeflash_should_sync_cuda:
|
||||||
torch.cuda.synchronize()
|
torch.cuda.synchronize()
|
||||||
elif _codeflash_should_sync_mps:
|
elif _codeflash_should_sync_mps:
|
||||||
torch.mps.synchronize()
|
torch.mps.synchronize()
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}######!')
|
print(f'!######{test_stdout_tag}######!')
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -149,7 +155,7 @@ def test_my_function():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -190,19 +196,22 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
elif _codeflash_should_sync_mps:
|
elif _codeflash_should_sync_mps:
|
||||||
th.mps.synchronize()
|
th.mps.synchronize()
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_cuda:
|
if _codeflash_should_sync_cuda:
|
||||||
th.cuda.synchronize()
|
th.cuda.synchronize()
|
||||||
elif _codeflash_should_sync_mps:
|
elif _codeflash_should_sync_mps:
|
||||||
th.mps.synchronize()
|
th.mps.synchronize()
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}######!')
|
print(f'!######{test_stdout_tag}######!')
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -213,7 +222,7 @@ def test_my_function():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -255,19 +264,22 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
elif _codeflash_should_sync_mps:
|
elif _codeflash_should_sync_mps:
|
||||||
torch.mps.synchronize()
|
torch.mps.synchronize()
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_cuda:
|
if _codeflash_should_sync_cuda:
|
||||||
torch.cuda.synchronize()
|
torch.cuda.synchronize()
|
||||||
elif _codeflash_should_sync_mps:
|
elif _codeflash_should_sync_mps:
|
||||||
torch.mps.synchronize()
|
torch.mps.synchronize()
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}######!')
|
print(f'!######{test_stdout_tag}######!')
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -278,7 +290,7 @@ def test_my_function():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -316,17 +328,20 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
if _codeflash_should_sync_tf:
|
if _codeflash_should_sync_tf:
|
||||||
tensorflow.test.experimental.sync_devices()
|
tensorflow.test.experimental.sync_devices()
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_tf:
|
if _codeflash_should_sync_tf:
|
||||||
tensorflow.test.experimental.sync_devices()
|
tensorflow.test.experimental.sync_devices()
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}######!')
|
print(f'!######{test_stdout_tag}######!')
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -337,7 +352,7 @@ def test_my_function():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -375,17 +390,20 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
if _codeflash_should_sync_tf:
|
if _codeflash_should_sync_tf:
|
||||||
tf.test.experimental.sync_devices()
|
tf.test.experimental.sync_devices()
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_tf:
|
if _codeflash_should_sync_tf:
|
||||||
tf.test.experimental.sync_devices()
|
tf.test.experimental.sync_devices()
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}######!')
|
print(f'!######{test_stdout_tag}######!')
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -396,7 +414,7 @@ def test_my_function():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -432,17 +450,20 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
gc.disable()
|
gc.disable()
|
||||||
try:
|
try:
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_jax:
|
if _codeflash_should_sync_jax:
|
||||||
jax.block_until_ready(return_value)
|
jax.block_until_ready(return_value)
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}######!')
|
print(f'!######{test_stdout_tag}######!')
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -453,7 +474,7 @@ def test_my_function():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -489,17 +510,20 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
gc.disable()
|
gc.disable()
|
||||||
try:
|
try:
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_jax:
|
if _codeflash_should_sync_jax:
|
||||||
jnp.block_until_ready(return_value)
|
jnp.block_until_ready(return_value)
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}######!')
|
print(f'!######{test_stdout_tag}######!')
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -510,7 +534,7 @@ def test_my_function():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -555,6 +579,7 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
if _codeflash_should_sync_tf:
|
if _codeflash_should_sync_tf:
|
||||||
tensorflow.test.experimental.sync_devices()
|
tensorflow.test.experimental.sync_devices()
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_cuda:
|
if _codeflash_should_sync_cuda:
|
||||||
torch.cuda.synchronize()
|
torch.cuda.synchronize()
|
||||||
|
|
@ -563,13 +588,15 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
if _codeflash_should_sync_tf:
|
if _codeflash_should_sync_tf:
|
||||||
tensorflow.test.experimental.sync_devices()
|
tensorflow.test.experimental.sync_devices()
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}######!')
|
print(f'!######{test_stdout_tag}######!')
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -580,7 +607,7 @@ def test_my_function():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -627,6 +654,7 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
if _codeflash_should_sync_tf:
|
if _codeflash_should_sync_tf:
|
||||||
tensorflow.test.experimental.sync_devices()
|
tensorflow.test.experimental.sync_devices()
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_cuda:
|
if _codeflash_should_sync_cuda:
|
||||||
torch.cuda.synchronize()
|
torch.cuda.synchronize()
|
||||||
|
|
@ -637,13 +665,15 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
if _codeflash_should_sync_tf:
|
if _codeflash_should_sync_tf:
|
||||||
tensorflow.test.experimental.sync_devices()
|
tensorflow.test.experimental.sync_devices()
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}######!')
|
print(f'!######{test_stdout_tag}######!')
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -654,7 +684,7 @@ def test_my_function():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
codeflash_con = sqlite3.connect(f'{CODEFLASH_DB_PATH}')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
_call__bound__arguments = inspect.signature(my_function).bind(1, 2)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
result = codeflash_wrap(my_function, 'test_example', None, 'test_my_function', 'my_function', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -685,10 +715,13 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
gc.disable()
|
gc.disable()
|
||||||
try:
|
try:
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}:{codeflash_duration}######!')
|
print(f'!######{test_stdout_tag}:{codeflash_duration}######!')
|
||||||
|
|
@ -732,14 +765,17 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
elif _codeflash_should_sync_mps:
|
elif _codeflash_should_sync_mps:
|
||||||
torch.mps.synchronize()
|
torch.mps.synchronize()
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_cuda:
|
if _codeflash_should_sync_cuda:
|
||||||
torch.cuda.synchronize()
|
torch.cuda.synchronize()
|
||||||
elif _codeflash_should_sync_mps:
|
elif _codeflash_should_sync_mps:
|
||||||
torch.mps.synchronize()
|
torch.mps.synchronize()
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}:{codeflash_duration}######!')
|
print(f'!######{test_stdout_tag}:{codeflash_duration}######!')
|
||||||
|
|
@ -780,12 +816,15 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
if _codeflash_should_sync_tf:
|
if _codeflash_should_sync_tf:
|
||||||
tensorflow.test.experimental.sync_devices()
|
tensorflow.test.experimental.sync_devices()
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_tf:
|
if _codeflash_should_sync_tf:
|
||||||
tensorflow.test.experimental.sync_devices()
|
tensorflow.test.experimental.sync_devices()
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}:{codeflash_duration}######!')
|
print(f'!######{test_stdout_tag}:{codeflash_duration}######!')
|
||||||
|
|
@ -824,12 +863,15 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
gc.disable()
|
gc.disable()
|
||||||
try:
|
try:
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_jax:
|
if _codeflash_should_sync_jax:
|
||||||
jax.block_until_ready(return_value)
|
jax.block_until_ready(return_value)
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}:{codeflash_duration}######!')
|
print(f'!######{test_stdout_tag}:{codeflash_duration}######!')
|
||||||
|
|
@ -879,6 +921,7 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
if _codeflash_should_sync_tf:
|
if _codeflash_should_sync_tf:
|
||||||
tensorflow.test.experimental.sync_devices()
|
tensorflow.test.experimental.sync_devices()
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
if _codeflash_should_sync_cuda:
|
if _codeflash_should_sync_cuda:
|
||||||
torch.cuda.synchronize()
|
torch.cuda.synchronize()
|
||||||
|
|
@ -889,8 +932,10 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
if _codeflash_should_sync_tf:
|
if _codeflash_should_sync_tf:
|
||||||
tensorflow.test.experimental.sync_devices()
|
tensorflow.test.experimental.sync_devices()
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{test_stdout_tag}:{codeflash_duration}######!')
|
print(f'!######{test_stdout_tag}:{codeflash_duration}######!')
|
||||||
|
|
|
||||||
|
|
@ -42,15 +42,18 @@ codeflash_wrap_string = """def codeflash_wrap(codeflash_wrapped, codeflash_test_
|
||||||
gc.disable()
|
gc.disable()
|
||||||
try:
|
try:
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f"!######{{test_stdout_tag}}######!")
|
print(f"!######{{test_stdout_tag}}######!")
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -112,7 +115,7 @@ def test_sort():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
input = [5, 4, 3, 2, 1, 0]
|
input = [5, 4, 3, 2, 1, 0]
|
||||||
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
|
|
@ -282,7 +285,7 @@ def test_sort():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
input = [5, 4, 3, 2, 1, 0]
|
input = [5, 4, 3, 2, 1, 0]
|
||||||
sort_class = BubbleSorter()
|
sort_class = BubbleSorter()
|
||||||
_call__bound__arguments = inspect.signature(sort_class.sorter).bind(input)
|
_call__bound__arguments = inspect.signature(sort_class.sorter).bind(input)
|
||||||
|
|
@ -558,7 +561,7 @@ def test_sort():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
input = [5, 4, 3, 2, 1, 0]
|
input = [5, 4, 3, 2, 1, 0]
|
||||||
_call__bound__arguments = inspect.signature(BubbleSorter.sorter_classmethod).bind(input)
|
_call__bound__arguments = inspect.signature(BubbleSorter.sorter_classmethod).bind(input)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
|
|
@ -729,7 +732,7 @@ def test_sort():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
input = [5, 4, 3, 2, 1, 0]
|
input = [5, 4, 3, 2, 1, 0]
|
||||||
_call__bound__arguments = inspect.signature(BubbleSorter.sorter_staticmethod).bind(input)
|
_call__bound__arguments = inspect.signature(BubbleSorter.sorter_staticmethod).bind(input)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
|
|
|
||||||
|
|
@ -52,15 +52,18 @@ codeflash_wrap_string = """def codeflash_wrap(codeflash_wrapped, codeflash_test_
|
||||||
gc.disable()
|
gc.disable()
|
||||||
try:
|
try:
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f"!######{{test_stdout_tag}}######!")
|
print(f"!######{{test_stdout_tag}}######!")
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -83,10 +86,13 @@ codeflash_wrap_perfonly_string = """def codeflash_wrap(codeflash_wrapped, codefl
|
||||||
gc.disable()
|
gc.disable()
|
||||||
try:
|
try:
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f"!######{{test_stdout_tag}}:{{codeflash_duration}}######!")
|
print(f"!######{{test_stdout_tag}}:{{codeflash_duration}}######!")
|
||||||
|
|
@ -176,7 +182,7 @@ import dill as pickle"""
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
input = [5, 4, 3, 2, 1, 0]
|
input = [5, 4, 3, 2, 1, 0]
|
||||||
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
|
|
@ -264,15 +270,18 @@ def codeflash_wrap(codeflash_wrapped, codeflash_test_module_name, codeflash_test
|
||||||
gc.disable()
|
gc.disable()
|
||||||
try:
|
try:
|
||||||
counter = time.perf_counter_ns()
|
counter = time.perf_counter_ns()
|
||||||
|
cpu_counter = time.thread_time_ns()
|
||||||
return_value = codeflash_wrapped(*args, **kwargs)
|
return_value = codeflash_wrapped(*args, **kwargs)
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
codeflash_duration = time.perf_counter_ns() - counter
|
codeflash_duration = time.perf_counter_ns() - counter
|
||||||
|
codeflash_cpu_duration = time.thread_time_ns() - cpu_counter
|
||||||
exception = e
|
exception = e
|
||||||
gc.enable()
|
gc.enable()
|
||||||
print(f'!######{{test_stdout_tag}}######!')
|
print(f'!######{{test_stdout_tag}}######!')
|
||||||
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
pickled_return_value = pickle.dumps(exception) if exception else pickle.dumps(return_value)
|
||||||
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call'))
|
codeflash_cur.execute('INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', (codeflash_test_module_name, codeflash_test_class_name, codeflash_test_name, codeflash_function_name, codeflash_loop_index, invocation_id, codeflash_duration, pickled_return_value, 'function_call', codeflash_cpu_duration))
|
||||||
codeflash_con.commit()
|
codeflash_con.commit()
|
||||||
if exception:
|
if exception:
|
||||||
raise exception
|
raise exception
|
||||||
|
|
@ -283,7 +292,7 @@ def test_prepare_image_for_yolo():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
"""
|
"""
|
||||||
if sys.version_info < (3, 11):
|
if sys.version_info < (3, 11):
|
||||||
expected += """ for (arg_val_pkl, return_val_pkl) in get_next_arg_and_return('/home/saurabh/packagename/traces/first.trace', 3):
|
expected += """ for (arg_val_pkl, return_val_pkl) in get_next_arg_and_return('/home/saurabh/packagename/traces/first.trace', 3):
|
||||||
|
|
@ -358,7 +367,7 @@ def test_sort():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
input = [5, 4, 3, 2, 1, 0]
|
input = [5, 4, 3, 2, 1, 0]
|
||||||
print(datetime.datetime.now().isoformat())
|
print(datetime.datetime.now().isoformat())
|
||||||
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
||||||
|
|
@ -639,7 +648,7 @@ def test_sort_parametrized(input, expected_output):
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
output = codeflash_wrap(sorter, '{module_path}', None, 'test_sort_parametrized', 'sorter', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
output = codeflash_wrap(sorter, '{module_path}', None, 'test_sort_parametrized', 'sorter', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -950,7 +959,7 @@ def test_sort_parametrized_loop(input, expected_output):
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
for i in range(2):
|
for i in range(2):
|
||||||
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
|
|
@ -1245,7 +1254,7 @@ def test_sort():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
inputs = [[5, 4, 3, 2, 1, 0], [5.0, 4.0, 3.0, 2.0, 1.0, 0.0], list(reversed(range(50)))]
|
inputs = [[5, 4, 3, 2, 1, 0], [5.0, 4.0, 3.0, 2.0, 1.0, 0.0], list(reversed(range(50)))]
|
||||||
expected_outputs = [[0, 1, 2, 3, 4, 5], [0.0, 1.0, 2.0, 3.0, 4.0, 5.0], list(range(50))]
|
expected_outputs = [[0, 1, 2, 3, 4, 5], [0.0, 1.0, 2.0, 3.0, 4.0, 5.0], list(range(50))]
|
||||||
for i in range(3):
|
for i in range(3):
|
||||||
|
|
@ -1519,7 +1528,7 @@ class TestPigLatin(unittest.TestCase):
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
input = [5, 4, 3, 2, 1, 0]
|
input = [5, 4, 3, 2, 1, 0]
|
||||||
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
|
|
@ -1813,7 +1822,7 @@ class TestPigLatin(unittest.TestCase):
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
output = codeflash_wrap(sorter, '{module_path}', 'TestPigLatin', 'test_sort', 'sorter', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
output = codeflash_wrap(sorter, '{module_path}', 'TestPigLatin', 'test_sort', 'sorter', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -2069,7 +2078,7 @@ class TestPigLatin(unittest.TestCase):
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
inputs = [[5, 4, 3, 2, 1, 0], [5.0, 4.0, 3.0, 2.0, 1.0, 0.0], list(reversed(range(50)))]
|
inputs = [[5, 4, 3, 2, 1, 0], [5.0, 4.0, 3.0, 2.0, 1.0, 0.0], list(reversed(range(50)))]
|
||||||
expected_outputs = [[0, 1, 2, 3, 4, 5], [0.0, 1.0, 2.0, 3.0, 4.0, 5.0], list(range(50))]
|
expected_outputs = [[0, 1, 2, 3, 4, 5], [0.0, 1.0, 2.0, 3.0, 4.0, 5.0], list(range(50))]
|
||||||
for i in range(3):
|
for i in range(3):
|
||||||
|
|
@ -2341,7 +2350,7 @@ class TestPigLatin(unittest.TestCase):
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
for i in range(2):
|
for i in range(2):
|
||||||
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
|
|
@ -2656,7 +2665,7 @@ def test_class_name_A_function_name():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
_call__bound__arguments = inspect.signature(class_name_A.function_name).bind(**args)
|
_call__bound__arguments = inspect.signature(class_name_A.function_name).bind(**args)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
ret = codeflash_wrap(class_name_A.function_name, '{module_path}', None, 'test_class_name_A_function_name', 'class_name_A.function_name', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
ret = codeflash_wrap(class_name_A.function_name, '{module_path}', None, 'test_class_name_A_function_name', 'class_name_A.function_name', '0', codeflash_loop_index, codeflash_cur, codeflash_con, *_call__bound__arguments.args, **_call__bound__arguments.kwargs)
|
||||||
|
|
@ -2729,7 +2738,7 @@ def test_common_tags_1():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
articles_1 = [1, 2, 3]
|
articles_1 = [1, 2, 3]
|
||||||
_call__bound__arguments = inspect.signature(find_common_tags).bind(articles_1)
|
_call__bound__arguments = inspect.signature(find_common_tags).bind(articles_1)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
|
|
@ -2809,7 +2818,7 @@ def test_sort():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
input = [5, 4, 3, 2, 1, 0]
|
input = [5, 4, 3, 2, 1, 0]
|
||||||
if len(input) > 0:
|
if len(input) > 0:
|
||||||
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
_call__bound__arguments = inspect.signature(sorter).bind(input)
|
||||||
|
|
@ -2886,7 +2895,7 @@ def test_sort():
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
input = [5, 4, 3, 2, 1, 0]
|
input = [5, 4, 3, 2, 1, 0]
|
||||||
_call__bound__arguments = inspect.signature(BubbleSorter.sorter).bind(input)
|
_call__bound__arguments = inspect.signature(BubbleSorter.sorter).bind(input)
|
||||||
_call__bound__arguments.apply_defaults()
|
_call__bound__arguments.apply_defaults()
|
||||||
|
|
@ -3001,7 +3010,7 @@ def test_code_replacement10() -> None:
|
||||||
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
codeflash_iteration = os.environ['CODEFLASH_TEST_ITERATION']
|
||||||
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
codeflash_con = sqlite3.connect(f'{tmp_dir_path}_{{codeflash_iteration}}.sqlite')
|
||||||
codeflash_cur = codeflash_con.cursor()
|
codeflash_cur = codeflash_con.cursor()
|
||||||
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT)')
|
codeflash_cur.execute('CREATE TABLE IF NOT EXISTS test_results (test_module_path TEXT, test_class_name TEXT, test_function_name TEXT, function_getting_tested TEXT, loop_index INTEGER, iteration_id TEXT, runtime INTEGER, return_value BLOB, verification_type TEXT, cpu_runtime INTEGER)')
|
||||||
get_code_output = 'random code'
|
get_code_output = 'random code'
|
||||||
file_path = Path(__file__).resolve()
|
file_path = Path(__file__).resolve()
|
||||||
opt = Optimizer(Namespace(project_root=str(file_path.parent.resolve()), disable_telemetry=True, tests_root='tests', test_framework='pytest', pytest_cmd='pytest', experiment_id=None))
|
opt = Optimizer(Namespace(project_root=str(file_path.parent.resolve()), disable_telemetry=True, tests_root='tests', test_framework='pytest', pytest_cmd='pytest', experiment_id=None))
|
||||||
|
|
@ -3176,9 +3185,7 @@ def test_sleepfunc_sequence_short(n, expected_total_sleep_time):
|
||||||
for i, test_result in enumerate(test_results.test_results):
|
for i, test_result in enumerate(test_results.test_results):
|
||||||
assert test_result.did_pass
|
assert test_result.did_pass
|
||||||
expected_ns = ((i % 2) + 1) * 100_000_000
|
expected_ns = ((i % 2) + 1) * 100_000_000
|
||||||
assert math.isclose(
|
assert math.isclose(test_result.runtime, expected_ns, rel_tol=1.0)
|
||||||
test_result.runtime, expected_ns, rel_tol=1.0
|
|
||||||
)
|
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
test_path.unlink(missing_ok=True)
|
test_path.unlink(missing_ok=True)
|
||||||
|
|
@ -3330,9 +3337,7 @@ import unittest
|
||||||
for i, test_result in enumerate(test_results.test_results):
|
for i, test_result in enumerate(test_results.test_results):
|
||||||
assert test_result.did_pass
|
assert test_result.did_pass
|
||||||
expected_ns = ((i % 2) + 1) * 100_000_000
|
expected_ns = ((i % 2) + 1) * 100_000_000
|
||||||
assert math.isclose(
|
assert math.isclose(test_result.runtime, expected_ns, rel_tol=1.0)
|
||||||
test_result.runtime, expected_ns, rel_tol=1.0
|
|
||||||
)
|
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
test_path.unlink(missing_ok=True)
|
test_path.unlink(missing_ok=True)
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -43,6 +44,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -62,6 +64,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -83,6 +86,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -102,6 +106,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -121,6 +126,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -142,6 +148,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -161,6 +168,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -180,6 +188,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -206,6 +215,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="unittest",
|
test_framework="unittest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -250,6 +260,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -271,6 +282,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=[2],
|
return_value=[2],
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
@ -290,6 +302,7 @@ def test_merge_test_results_1():
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.GENERATED_REGRESSION,
|
test_type=TestType.GENERATED_REGRESSION,
|
||||||
return_value=[3],
|
return_value=[3],
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
loop_index=1,
|
loop_index=1,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,7 @@ def make_invocation(
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -143,6 +144,7 @@ class TestFunctionTestInvocation:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
verification_type=VerificationType.INIT_STATE_FTO,
|
verification_type=VerificationType.INIT_STATE_FTO,
|
||||||
)
|
)
|
||||||
|
|
@ -348,6 +350,7 @@ def _make_replay_invocation(
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.REPLAY_TEST,
|
test_type=TestType.REPLAY_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -427,6 +430,7 @@ class TestGroupByBenchmarks:
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
)
|
)
|
||||||
results.add(unit_inv)
|
results.add(unit_inv)
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,7 @@ def _make_invocation(
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=42,
|
return_value=42,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,7 @@ def make_invocation(
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=TestType.EXISTING_UNIT_TEST,
|
test_type=TestType.EXISTING_UNIT_TEST,
|
||||||
return_value=None,
|
return_value=None,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=False,
|
timed_out=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -273,12 +274,13 @@ class TestParseSqliteTestResults:
|
||||||
" iteration_id TEXT,"
|
" iteration_id TEXT,"
|
||||||
" runtime INTEGER,"
|
" runtime INTEGER,"
|
||||||
" return_value BLOB,"
|
" return_value BLOB,"
|
||||||
" verification_type TEXT"
|
" verification_type TEXT,"
|
||||||
|
" cpu_runtime INTEGER"
|
||||||
")"
|
")"
|
||||||
)
|
)
|
||||||
module_name = f"tests{os.sep}test_foo".replace(os.sep, ".")
|
module_name = f"tests{os.sep}test_foo".replace(os.sep, ".")
|
||||||
conn.execute(
|
conn.execute(
|
||||||
"INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
"INSERT INTO test_results VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
||||||
(
|
(
|
||||||
module_name,
|
module_name,
|
||||||
None,
|
None,
|
||||||
|
|
@ -289,6 +291,7 @@ class TestParseSqliteTestResults:
|
||||||
100,
|
100,
|
||||||
None,
|
None,
|
||||||
VerificationType.FUNCTION_CALL.value,
|
VerificationType.FUNCTION_CALL.value,
|
||||||
|
0,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ def make_invocation( # noqa: PLR0913
|
||||||
test_framework="pytest",
|
test_framework="pytest",
|
||||||
test_type=test_type,
|
test_type=test_type,
|
||||||
return_value=return_value,
|
return_value=return_value,
|
||||||
|
cpu_runtime=0,
|
||||||
timed_out=timed_out,
|
timed_out=timed_out,
|
||||||
verification_type=verification_type,
|
verification_type=verification_type,
|
||||||
stdout=stdout,
|
stdout=stdout,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue