lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 4 Dec 2023 08:00:35 -0800
From:   Ian Rogers <irogers@...gle.com>
To:     Peter Zijlstra <peterz@...radead.org>,
        Ingo Molnar <mingo@...hat.com>,
        Arnaldo Carvalho de Melo <acme@...nel.org>,
        Mark Rutland <mark.rutland@....com>,
        Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
        Jiri Olsa <jolsa@...nel.org>,
        Namhyung Kim <namhyung@...nel.org>,
        Adrian Hunter <adrian.hunter@...el.com>,
        linux-kernel@...r.kernel.org, linux-perf-users@...r.kernel.org,
        atrajeev@...ux.vnet.ibm.com
Subject: Re: [PATCH v1] perf test: Add basic perf diff test

On Mon, Nov 20, 2023 at 11:04 AM Ian Rogers <irogers@...gle.com> wrote:
>
> There are some old bug reports on perf diff crashing:
> https://rhaas.blogspot.com/2012/06/perf-good-bad-ugly.html
>
> Happening across them I was prompted to add two very basic tests that
> will give some perf diff coverage.
>
> Signed-off-by: Ian Rogers <irogers@...gle.com>

Ping.

Thanks,
Ian

> ---
>  tools/perf/tests/shell/diff.sh | 101 +++++++++++++++++++++++++++++++++
>  1 file changed, 101 insertions(+)
>  create mode 100755 tools/perf/tests/shell/diff.sh
>
> diff --git a/tools/perf/tests/shell/diff.sh b/tools/perf/tests/shell/diff.sh
> new file mode 100755
> index 000000000000..213185763688
> --- /dev/null
> +++ b/tools/perf/tests/shell/diff.sh
> @@ -0,0 +1,101 @@
> +#!/bin/sh
> +# perf diff tests
> +# SPDX-License-Identifier: GPL-2.0
> +
> +set -e
> +
> +err=0
> +perfdata1=$(mktemp /tmp/__perf_test.perf.data.XXXXX)
> +perfdata2=$(mktemp /tmp/__perf_test.perf.data.XXXXX)
> +perfdata3=$(mktemp /tmp/__perf_test.perf.data.XXXXX)
> +testprog="perf test -w thloop"
> +testsym="test_loop"
> +
> +cleanup() {
> +  rm -rf "${perfdata1}"
> +  rm -rf "${perfdata1}".old
> +  rm -rf "${perfdata2}"
> +  rm -rf "${perfdata2}".old
> +  rm -rf "${perfdata3}"
> +  rm -rf "${perfdata3}".old
> +
> +  trap - EXIT TERM INT
> +}
> +
> +trap_cleanup() {
> +  cleanup
> +  exit 1
> +}
> +trap trap_cleanup EXIT TERM INT
> +
> +make_data() {
> +  file="$1"
> +  if ! perf record -o "${file}" ${testprog} 2> /dev/null
> +  then
> +    echo "Workload record [Failed record]"
> +    echo 1
> +    return
> +  fi
> +  if ! perf report -i "${file}" -q | grep -q "${testsym}"
> +  then
> +    echo "Workload record [Failed missing output]"
> +    echo 1
> +    return
> +  fi
> +  echo 0
> +}
> +
> +test_two_files() {
> +  echo "Basic two file diff test"
> +  err=$(make_data "${perfdata1}")
> +  if [ $err != 0 ]
> +  then
> +    return
> +  fi
> +  err=$(make_data "${perfdata2}")
> +  if [ $err != 0 ]
> +  then
> +    return
> +  fi
> +
> +  if ! perf diff "${perfdata1}" "${perfdata2}" | grep -q "${testsym}"
> +  then
> +    echo "Basic two file diff test [Failed diff]"
> +    err=1
> +    return
> +  fi
> +  echo "Basic two file diff test [Success]"
> +}
> +
> +test_three_files() {
> +  echo "Basic three file diff test"
> +  err=$(make_data "${perfdata1}")
> +  if [ $err != 0 ]
> +  then
> +    return
> +  fi
> +  err=$(make_data "${perfdata2}")
> +  if [ $err != 0 ]
> +  then
> +    return
> +  fi
> +  err=$(make_data "${perfdata3}")
> +  if [ $err != 0 ]
> +  then
> +    return
> +  fi
> +
> +  if ! perf diff "${perfdata1}" "${perfdata2}" "${perfdata3}" | grep -q "${testsym}"
> +  then
> +    echo "Basic three file diff test [Failed diff]"
> +    err=1
> +    return
> +  fi
> +  echo "Basic three file diff test [Success]"
> +}
> +
> +test_two_files
> +test_three_files
> +
> +cleanup
> +exit $err
> --
> 2.43.0.rc1.413.gea7ed67945-goog
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ