Re: [RFC PATCH v10 8/8] perf test: Add test for Intel TPEBS counting mode

From: Namhyung Kim
Date: Sun Jun 02 2024 - 19:20:58 EST


From: namhyung@xxxxxxxxxx

On Wed, 29 May 2024 02:43:24 -0400 weilin.wang@xxxxxxxxx wrote:

> From: Weilin Wang <weilin.wang@xxxxxxxxx>
>
> Intel TPEBS sampling mode is supported through perf record. The counting mode
> code uses perf record to capture retire_latency value and use it in metric
> calculation. This test checks the counting mode code.
>
> Signed-off-by: Weilin Wang <weilin.wang@xxxxxxxxx>
> ---
> .../perf/tests/shell/test_stat_intel_tpebs.sh | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
> create mode 100755 tools/perf/tests/shell/test_stat_intel_tpebs.sh
>
> diff --git a/tools/perf/tests/shell/test_stat_intel_tpebs.sh b/tools/perf/tests/shell/test_stat_intel_tpebs.sh
> new file mode 100755
> index 000000000000..43f75055fee4
> --- /dev/null
> +++ b/tools/perf/tests/shell/test_stat_intel_tpebs.sh
> @@ -0,0 +1,19 @@
> +#!/bin/bash
> +# test Intel TPEBS counting mode
> +# SPDX-License-Identifier: GPL-2.0
> +
> +set e
> +err=0
> +
> +# Use this event for testing because it should exist in all platforms
> +e=cache-misses:R
> +
> +# Without this cmd option, default value or zero is returned
> +echo "Testing without --enable-tpebs-recording"
> +result=$(perf stat -e "$e" true 2>&1)
> +[[ "$result" =~ "$e" ]] || exit 1
> +
> +# In platforms that do not support TPEBS, it should execute without error.
> +echo "Testing with --enable-tpebs-recording"
> +result=$(perf stat -e "$e" --enable-tpebs-recording -a sleep 0.01 2>&1)
> +[[ "$result" =~ "perf record" && "$result" =~ "$e" ]] || exit 1

I got these build errors:

Thanks,
Namhyung

---

TEST tests/shell/test_stat_intel_tpebs.sh.shellcheck_log

In tests/shell/test_stat_intel_tpebs.sh line 6:
err=0
^-^ SC2034 (warning): err appears unused. Verify use (or export if used externally).


In tests/shell/test_stat_intel_tpebs.sh line 14:
[[ "$result" =~ "$e" ]] || exit 1
^--^ SC2076 (warning): Remove quotes from right-hand side of =~ to match as a regex rather than literally.


In tests/shell/test_stat_intel_tpebs.sh line 19:
[[ "$result" =~ "perf record" && "$result" =~ "$e" ]] || exit 1
^--^ SC2076 (warning): Remove quotes from right-hand side of =~ to match as a regex rather than literally.

For more information:
https://www.shellcheck.net/wiki/SC2034 -- err appears unused. Verify use (o...
https://www.shellcheck.net/wiki/SC2076 -- Remove quotes from right-hand sid...
make[4]: *** [tests/Build:91: tests/shell/test_stat_intel_tpebs.sh.shellcheck_log] Error 1