Files
Willi Ballenthin 7f606a7924 Record API arguments as a list of objects
An api event now holds one object per argument in args, with name,
type, value and display, in place of the parallel lists args,
arg_names, arg_types and arg_values. A call without a usable signature
has one entry per argument slot without a name.

Bump the report version to 5.0.0.
2026-10-08 20:08:50 +01:00

22 lines
705 B
Python

import pytest
@pytest.mark.parametrize("bin_file", ["argv_test_x86.exe.xz"])
def test_argv_exe(config, load_test_bin, run_test, bin_file):
argv_len = 10
argv = [f"argument_{i + 1}" for i in range(argv_len)]
data = load_test_bin(bin_file)
report = run_test(config, data, argv=argv)
ep = report.entry_points
printfs = []
for evt in ep[0].events or []:
if evt.event == "api" and "__stdio_common_vfprintf" in evt.api_name:
printfs.append(evt)
assert len(printfs) - 2 == argv_len
for i, p in enumerate(printfs[2:]):
i += 1
fmt_str = p.args[2].display
test_str = f"argv[{i}] = argument_{i}\n"
assert test_str == fmt_str