Re: [PATCH 1/9] perf tools: Add build id shell test

From: Jiri Olsa
Date: Thu Oct 01 2020 - 06:25:32 EST


On Thu, Oct 01, 2020 at 11:25:34AM +0200, Jiri Olsa wrote:
> On Wed, Sep 30, 2020 at 07:00:05PM -0700, Ian Rogers wrote:
> > On Wed, Sep 30, 2020 at 10:15 AM Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
> > >
> > > Adding test for build id cache that adds binary
> > > with sha1 and md5 build ids and verifies it's
> > > added properly.
> > >
> > > The test updates build id cache with perf record
> > > and perf buildid-cache -a.
> > >
> > > Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
> >
> > Acked-by: Ian Rogers <irogers@xxxxxxxxxx>
> >
> > This is great! If I build perf and test from the build directory the
> > test gets run. If I build using O=/tmp/perf and run from that
> > directory then ./tests/shell isn't found and the test doesn't run.
> > Similarly the install directory doesn't contain the executables and so
> > the test is skipped. Is there any way to get the test running in these
> > other scenarios?
>
> ok, if there's already some way to get the build path I did not see that
> I'll check and add something if it's missing

would the patch below work for you?

thanks,
jirka


---
diff --git a/tools/perf/tests/shell/buildid.sh b/tools/perf/tests/shell/buildid.sh
index 57fcd28bc4bd..dd9f9c306c34 100755
--- a/tools/perf/tests/shell/buildid.sh
+++ b/tools/perf/tests/shell/buildid.sh
@@ -2,12 +2,23 @@
# build id cache operations
# SPDX-License-Identifier: GPL-2.0

+ex_md5=buildid-ex-md5
+ex_sha1=buildid-ex-sha1
+
# skip if there are no test binaries
if [ ! -x buildid-ex-sha1 -a ! -x buildid-ex-md5 ]; then
- echo "failed: no test binaries"
- exit 2
+ ex_dir=$(dirname `which perf`)
+ ex_md5=${ex_dir}/buildid-ex-md5
+ ex_sha1=${ex_dir}/buildid-ex-sha1
+
+ if [ ! -x ${ex_sha1} -a ! -x ${ex_md5} ]; then
+ echo "failed: no test binaries"
+ exit 2
+ fi
fi

+echo "test binaries: ${ex_sha1} ${ex_md5}"
+
# skip if there's no readelf
if [ ! -x `which readelf` ]; then
echo "failed: no readelf, install binutils"
@@ -80,11 +91,11 @@ test_record()
}

# add binaries manual via perf buildid-cache -a
-test_add buildid-ex-sha1
-test_add buildid-ex-md5
+test_add ${ex_sha1}
+test_add ${ex_md5}

# add binaries via perf record post processing
-test_record buildid-ex-sha1
-test_record buildid-ex-md5
+test_record ${ex_sha1}
+test_record ${ex_md5}

exit ${err}