Skip to content
  • Sandipan Das's avatar
    perf tests: Fix indexing when invoking subtests · 2fc0fb03
    Sandipan Das authored
    
    
    [ 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: default avatarSandipan Das <sandipan@linux.ibm.com>
    Reported-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Tested-by: default avatarArnaldo 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: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    2fc0fb03