Re: [PATCH v1 2/2] perf test: Add test that command line period overrides sysfs/json values
From: Ian Rogers
Date: Tue Nov 04 2025 - 00:22:24 EST
On Mon, Nov 3, 2025 at 7:37 PM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
>
> On Wed, Oct 29, 2025 at 03:26:38PM -0700, Ian Rogers wrote:
> > The behavior of weak terms is subtle, add a test that they aren't
> > accidentally broken.
> >
> > Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
> > ---
> > tools/perf/tests/shell/record_weak_term.sh | 25 ++++++++++++++++++++++
> > 1 file changed, 25 insertions(+)
> > create mode 100755 tools/perf/tests/shell/record_weak_term.sh
> >
> > diff --git a/tools/perf/tests/shell/record_weak_term.sh b/tools/perf/tests/shell/record_weak_term.sh
> > new file mode 100755
> > index 000000000000..7b747b383796
> > --- /dev/null
> > +++ b/tools/perf/tests/shell/record_weak_term.sh
> > @@ -0,0 +1,25 @@
> > +#!/bin/bash
> > +# record weak terms
> > +# SPDX-License-Identifier: GPL-2.0
> > +# Test that command line options override weak terms from sysfs or inbuilt json.
> > +set -e
> > +
> > +shelldir=$(dirname "$0")
> > +# shellcheck source=lib/setup_python.sh
> > +. "${shelldir}"/lib/setup_python.sh
> > +
> > +
> > +event=$(perf list --json | $PYTHON -c "import json,sys; next((print(e['EventName']) for e in json.load(sys.stdin) if e.get('Encoding') and 'period=' in e.get('Encoding')))")
>
> This line is too long
Is there a good way to split such a line?
> and needs some explanation like what's like the original text and what it does.
I thought that was covered in the "if" below:
> > +if [[ "$?" != "0" ]]
> > +then
> > + echo "No sysfs/json events with inbuilt period."
> > + exit 2
> > +fi
Thanks,
Ian
> > +
> > +if ! perf record -c 1000 -vv -e "$event" -o /dev/null true 2>&1 | \
> > + grep -q -F '{ sample_period, sample_freq } 1000'
> > +then
> > + echo "Unexpected verbose output and sample period"
> > + exit 1
> > +fi
> > +exit 0
> > --
> > 2.51.1.851.g4ebd6896fd-goog
> >