header.sh 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/bin/bash
  2. # perf header tests
  3. # SPDX-License-Identifier: GPL-2.0
  4. set -e
  5. err=0
  6. perfdata=$(mktemp /tmp/__perf_test_header.perf.data.XXXXX)
  7. script_output=$(mktemp /tmp/__perf_test_header.perf.data.XXXXX.script)
  8. cleanup() {
  9. rm -f "${perfdata}"
  10. rm -f "${perfdata}".old
  11. rm -f "${script_output}"
  12. trap - EXIT TERM INT
  13. }
  14. trap_cleanup() {
  15. echo "Unexpected signal in ${FUNCNAME[1]}"
  16. cleanup
  17. exit 1
  18. }
  19. trap trap_cleanup EXIT TERM INT
  20. check_header_output() {
  21. declare -a fields=(
  22. "captured"
  23. "hostname"
  24. "os release"
  25. "arch"
  26. "cpuid"
  27. "nrcpus"
  28. "event"
  29. "cmdline"
  30. "perf version"
  31. "sibling (cores|dies|threads)"
  32. "sibling threads"
  33. "total memory"
  34. )
  35. for i in "${fields[@]}"
  36. do
  37. if ! grep -q -E "$i" "${script_output}"
  38. then
  39. echo "Failed to find expected $i in output"
  40. err=1
  41. fi
  42. done
  43. }
  44. test_file() {
  45. echo "Test perf header file"
  46. perf record -o "${perfdata}" -- perf test -w noploop
  47. perf report --header-only -I -i "${perfdata}" > "${script_output}"
  48. check_header_output
  49. echo "Test perf header file [Done]"
  50. }
  51. test_pipe() {
  52. echo "Test perf header pipe"
  53. perf record -o - -- perf test -w noploop | perf report --header-only -I -i - > "${script_output}"
  54. check_header_output
  55. echo "Test perf header pipe [Done]"
  56. }
  57. test_file
  58. test_pipe
  59. cleanup
  60. exit $err