| From a4a4385ab34314d8dd667f4a65190d83e51a5f6a Mon Sep 17 00:00:00 2001 |
| From: Sandipan Das <sandipan@linux.ibm.com> |
| Date: Thu, 26 Jul 2018 22:47:33 +0530 |
| Subject: perf tests: Fix indexing when invoking subtests |
| |
| [ Upstream commit aa90f9f9554616d5738f7bedb4a8f0e5e14d1bc6 ] |
| |
| Recently, the subtest numbering was changed to start from 1. While it |
| is fine for displaying results, this should not be the case when the |
| subtests are actually invoked. |
| |
| Typically, the subtests are stored in zero-indexed arrays and invoked |
| based on the index passed to the main test function. Since the index |
| now starts from 1, the second subtest in the array (index 1) gets |
| invoked instead of the first (index 0). This applies to all of the |
| following subtests but for the last one, the subtest always fails |
| because it does not meet the boundary condition of the subtest index |
| being lesser than the number of subtests. |
| |
| This can be observed on powerpc64 and x86_64 systems running Fedora 28 |
| as shown below. |
| |
| Before: |
| |
| # perf test "builtin clang support" |
| 55: builtin clang support : |
| 55.1: builtin clang compile C source to IR : Ok |
| 55.2: builtin clang compile C source to ELF object : FAILED! |
| |
| # perf test "LLVM search and compile" |
| 38: LLVM search and compile : |
| 38.1: Basic BPF llvm compile : Ok |
| 38.2: kbuild searching : Ok |
| 38.3: Compile source for BPF prologue generation : Ok |
| 38.4: Compile source for BPF relocation : FAILED! |
| |
| # perf test "BPF filter" |
| 40: BPF filter : |
| 40.1: Basic BPF filtering : Ok |
| 40.2: BPF pinning : Ok |
| 40.3: BPF prologue generation : Ok |
| 40.4: BPF relocation checker : FAILED! |
| |
| After: |
| |
| # perf test "builtin clang support" |
| 55: builtin clang support : |
| 55.1: builtin clang compile C source to IR : Ok |
| 55.2: builtin clang compile C source to ELF object : Ok |
| |
| # perf test "LLVM search and compile" |
| 38: LLVM search and compile : |
| 38.1: Basic BPF llvm compile : Ok |
| 38.2: kbuild searching : Ok |
| 38.3: Compile source for BPF prologue generation : Ok |
| 38.4: Compile source for BPF relocation : Ok |
| |
| # perf test "BPF filter" |
| 40: BPF filter : |
| 40.1: Basic BPF filtering : Ok |
| 40.2: BPF pinning : Ok |
| 40.3: BPF prologue generation : Ok |
| 40.4: BPF relocation checker : Ok |
| |
| Signed-off-by: Sandipan Das <sandipan@linux.ibm.com> |
| Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Cc: Heiko Carstens <heiko.carstens@de.ibm.com> |
| Cc: Hendrik Brueckner <brueckner@linux.ibm.com> |
| Cc: Jiri Olsa <jolsa@redhat.com> |
| Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> |
| Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> |
| Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com> |
| Cc: Thomas Richter <tmricht@linux.ibm.com> |
| Fixes: 9ef0112442bd ("perf test: Fix subtest number when showing results") |
| Link: http://lkml.kernel.org/r/20180726171733.33208-1-sandipan@linux.ibm.com |
| Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| tools/perf/tests/builtin-test.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c |
| index ade7213943ad..03239956987f 100644 |
| --- a/tools/perf/tests/builtin-test.c |
| +++ b/tools/perf/tests/builtin-test.c |
| @@ -335,7 +335,7 @@ static int test_and_print(struct test *t, bool force_skip, int subtest) |
| if (!t->subtest.get_nr) |
| pr_debug("%s:", t->desc); |
| else |
| - pr_debug("%s subtest %d:", t->desc, subtest); |
| + pr_debug("%s subtest %d:", t->desc, subtest + 1); |
| |
| switch (err) { |
| case TEST_OK: |
| @@ -413,7 +413,7 @@ static int __cmd_test(int argc, const char *argv[], struct intlist *skiplist) |
| for (subi = 0; subi < subn; subi++) { |
| pr_info("%2d.%1d: %-*s:", i, subi + 1, subw, |
| t->subtest.get_desc(subi)); |
| - err = test_and_print(t, skip, subi + 1); |
| + err = test_and_print(t, skip, subi); |
| if (err != TEST_OK && t->subtest.skip_if_fail) |
| skip = true; |
| } |
| -- |
| 2.17.1 |
| |