[PATCH 2/2] test: test_trace.py: test "trace clear" command
Ilias Apalodimas
ilias.apalodimas at linaro.org
Fri Dec 13 13:17:23 CET 2024
On Mon, 9 Dec 2024 at 17:32, Jerome Forissier
<jerome.forissier at linaro.org> wrote:
>
> Also test the newly added command 'trace clear'.
>
> Signed-off-by: Jerome Forissier <jerome.forissier at linaro.org>
> ---
> test/py/tests/test_trace.py | 30 ++++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/test/py/tests/test_trace.py b/test/py/tests/test_trace.py
> index ec1e624722c..29c115275da 100644
> --- a/test/py/tests/test_trace.py
> +++ b/test/py/tests/test_trace.py
> @@ -70,6 +70,32 @@ def collect_trace(cons):
> return fname, int(dm_f_time[0])
>
>
> +def clear_and_collect_trace(cons):
> + """Pause and clear traces, return the number of calls (should be zero)
> +
> + Args:
> + cons (ConsoleBase): U-Boot console
> +
> + Returns:
> + int: the number of traced function calls reported by 'trace stats'
> + """
> + cons.run_command('trace pause')
> + cons.run_command('trace clear')
> + out = cons.run_command('trace stats')
> +
> + # The output is something like this:
> + # 117,221 function sites
> + # 0 function calls
> + # 0 untracked function calls
> + # 0 traced function calls
> +
> + # Get a dict of values from the output
> + lines = [line.split(maxsplit=1) for line in out.splitlines() if line]
> + vals = {key: val.replace(',', '') for val, key in lines}
> +
> + return int(vals['traced function calls'])
> +
> +
> def check_function(cons, fname, proftool, map_fname, trace_dat):
> """Check that the 'function' output works
>
> @@ -304,3 +330,7 @@ def test_trace(u_boot_console):
> # This allows for CI being slow to run
> diff = abs(fg_time - dm_f_time)
> assert diff / dm_f_time < 0.3
> +
> + # Check that the trace buffer can be cleared
> + numcalls = clear_and_collect_trace(cons)
> + assert numcalls == 0
> --
> 2.43.0
>
Acked-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
More information about the U-Boot
mailing list