• Athira Rajeev's avatar
    perf test build-id: Fix test check for PE file · 3d9c07c4
    Athira Rajeev authored
    Perf test "build id cache operations" fails for PE executable.  Logs
    below from powerpc system.  Same is observed on x86 as well.
    
      <<>>
      Adding 5a0fd882b53084224ba47b624c55a469 ./tests/shell/../pe-file.exe: Ok
      build id: 5a0fd882b53084224ba47b624c55a469
      link: /tmp/perf.debug.w0V/.build-id/5a/0fd882b53084224ba47b624c55a469
      file: /tmp/perf.debug.w0V/.build-id/5a/../../root/<user>/linux/tools/perf/tests/pe-file.exe/5a0fd882b53084224ba47b624c55a469/elf
      failed: file /tmp/perf.debug.w0V/.build-id/5a/../../root/<user>/linux/tools/perf/tests/pe-file.exe/5a0fd882b53084224ba47b624c55a469/elf does not exist
      test child finished with -1
      ---- end ----
      build id cache operations: FAILED!
      <<>>
    
    The test tries to do:
    
      <<>>
      mkdir /tmp/perf.debug.TeY1
      perf --buildid-dir /tmp/perf.debug.TeY1 buildid-cache -v -a ./tests/shell/../pe-file.exe
      <<>>
    
    The option "--buildid-dir" sets the build id cache directory as
    /tmp/perf.debug.TeY1. The option given to buildid-cahe, ie "-a
    ./tests/shell/../pe-file.exe", is to add the pe-file.exe to the cache.
    
    The testcase, sets buildid-dir and adds the file: pe-file.exe to build
    id cache. To check if the command is run successfully, "check" function
    looks for presence of the file in buildid cache directory. But the check
    here expects the added file to be executable. Snippet below:
    
      <<>>
      if [ ! -x $file ]; then
      	echo "failed: file ${file} does not exist"
      	exit 1
      fi
      <<>>
    
    The buildid test is done for sha1 binary, md5 binary and also for PE
    file. The first two binaries are created at runtime by compiling with
    "--build-id" option and hence the check for sha1/md5 test should use [ !
    -x ]. But in case of PE file, the permission for this input file is
    rw-r--r-- Hence the file added to build id cache has same permissoin
    
    Original file:
    
      ls tests/pe-file.exe | xargs stat --printf "%n %A \n"
      tests/pe-file.exe -rw-r--r--
    
    buildid cache file:
    
      ls /tmp/perf.debug.w0V/.build-id/5a/../../root/<user>/linux/tools/perf/tests/pe-file.exe/5a0fd882b53084224ba47b624c55a469/elf | xargs stat --printf "%n %A \n"
      /tmp/perf.debug.w0V/.build-id/5a/../../root/<user>/linux/tools/perf/tests/pe-file.exe/5a0fd882b53084224ba47b624c55a469/elf -rw-r--r--
    
    Fix the test to match with the permission of original file in case of FE
    file. ie if the "tests/pe-file.exe" file is not having exec permission,
    just check for existence of the buildid file using [ ! -e <file> ]
    Signed-off-by: default avatarAthira Jajeev <atrajeev@linux.vnet.ibm.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Disha Goel <disgoel@linux.ibm.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kajol Jain <kjain@linux.ibm.com>
    Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Nageswara R Sastry <rnsastry@linux.ibm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: linuxppc-dev@lists.ozlabs.org
    Link: https://lore.kernel.org/r/20230116050131.17221-2-atrajeev@linux.vnet.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    3d9c07c4
buildid.sh 4.01 KB