[PATCH v1] perf tests: Add perf script test

Ian Rogers posted 1 patch 2 years ago
tools/perf/tests/shell/script.sh | 66 ++++++++++++++++++++++++++++++++
1 file changed, 66 insertions(+)
create mode 100755 tools/perf/tests/shell/script.sh
[PATCH v1] perf tests: Add perf script test
Posted by Ian Rogers 2 years ago
Start a new set of shell tests for testing perf script. The initial
contribution is checking that some perf db-export functionality works
as reported in this regression by Ben Gainey <ben.gainey@arm.com>:
https://lore.kernel.org/lkml/20231207140911.3240408-1-ben.gainey@arm.com/

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/tests/shell/script.sh | 66 ++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)
 create mode 100755 tools/perf/tests/shell/script.sh

diff --git a/tools/perf/tests/shell/script.sh b/tools/perf/tests/shell/script.sh
new file mode 100755
index 000000000000..5ae7bd0031a8
--- /dev/null
+++ b/tools/perf/tests/shell/script.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+# perf script tests
+# SPDX-License-Identifier: GPL-2.0
+
+set -e
+
+temp_dir=$(mktemp -d /tmp/perf-test-script.XXXXXXXXXX)
+
+perfdatafile="${temp_dir}/perf.data"
+db_test="${temp_dir}/db_test.py"
+
+err=0
+
+cleanup()
+{
+	trap - EXIT TERM INT
+	sane=$(echo "${temp_dir}" | cut -b 1-21)
+	if [ "${sane}" = "/tmp/perf-test-script" ] ; then
+		echo "--- Cleaning up ---"
+		rm -f "${temp_dir}/"*
+		rmdir "${temp_dir}"
+	fi
+}
+
+trap_cleanup()
+{
+	cleanup
+	exit 1
+}
+
+trap trap_cleanup EXIT TERM INT
+
+
+test_db()
+{
+	echo "DB test"
+
+	# Check if python script is supported
+	libpython=$(perf version --build-options | grep python | grep -cv OFF)
+	if [ "${libpython}" != "1" ] ; then
+		echo "SKIP: python scripting is not supported"
+		err=2
+		return
+	fi
+
+	cat << "_end_of_file_" > "${db_test}"
+perf_db_export_mode = True
+perf_db_export_calls = False
+perf_db_export_callchains = True
+
+def sample_table(*args):
+    print(f'sample_table({args})')
+
+def call_path_table(*args):
+    print(f'call_path_table({args}')
+_end_of_file_
+	perf record -g -o "${perfdatafile}" true
+	perf script -i "${perfdatafile}" -s "${db_test}"
+	echo "DB test [Success]"
+}
+
+test_db
+
+cleanup
+
+exit $err
-- 
2.43.0.rc2.451.g8631bc7472-goog
Re: [PATCH v1] perf tests: Add perf script test
Posted by Ben Gainey 2 years ago
On Thu, 2023-12-07 at 09:40 -0800, Ian Rogers wrote:
> Start a new set of shell tests for testing perf script. The initial
> contribution is checking that some perf db-export functionality works
> as reported in this regression by Ben Gainey <ben.gainey@arm.com>:
> https://lore.kernel.org/lkml/20231207140911.3240408-1-ben.gainey@arm.com/
>
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---

Thanks Ian. I've run the test script before and after my patch. Looks
good to me. Please feel free to:

Tested-By: Ben Gainey <ben.gainey@arm.com>
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Re: [PATCH v1] perf tests: Add perf script test
Posted by Arnaldo Carvalho de Melo 1 year, 11 months ago
Em Mon, Dec 11, 2023 at 05:46:20PM +0000, Ben Gainey escreveu:
> On Thu, 2023-12-07 at 09:40 -0800, Ian Rogers wrote:
> > Start a new set of shell tests for testing perf script. The initial
> > contribution is checking that some perf db-export functionality works
> > as reported in this regression by Ben Gainey <ben.gainey@arm.com>:
> > https://lore.kernel.org/lkml/20231207140911.3240408-1-ben.gainey@arm.com/
> >
> > Signed-off-by: Ian Rogers <irogers@google.com>
> > ---
> 
> Thanks Ian. I've run the test script before and after my patch. Looks
> good to me. Please feel free to:
> 
> Tested-By: Ben Gainey <ben.gainey@arm.com>

Thanks, applied this patch, then Ben's and ran 'perf test "perf script
tests"' before/after, with the expected results.

Thanks everybody!

- Arnaldo