c2c.sh 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/bin/bash
  2. # perf c2c tests
  3. # SPDX-License-Identifier: GPL-2.0
  4. set -e
  5. err=0
  6. perfdata=$(mktemp /tmp/__perf_c2c_test.perf.data.XXXXX)
  7. cleanup() {
  8. rm -f "${perfdata}"
  9. rm -f "${perfdata}".old
  10. trap - EXIT TERM INT
  11. }
  12. trap_cleanup() {
  13. echo "Unexpected signal in ${FUNCNAME[1]}"
  14. cleanup
  15. exit 1
  16. }
  17. trap trap_cleanup EXIT TERM INT
  18. check_c2c_support() {
  19. # Check if perf c2c record works.
  20. if ! perf c2c record -o "${perfdata}" -- true > /dev/null 2>&1 ; then
  21. return 1
  22. fi
  23. return 0
  24. }
  25. test_c2c_record_report() {
  26. echo "c2c record and report test"
  27. if ! check_c2c_support ; then
  28. echo "c2c record and report test [Skipped: perf c2c record failed (possibly missing hardware support)]"
  29. err=2
  30. return
  31. fi
  32. # Run a workload that does some memory operations.
  33. if ! perf c2c record -o "${perfdata}" -- perf test -w datasym 1 > /dev/null 2>&1 ; then
  34. echo "c2c record and report test [Skipped: perf c2c record failed during workload]"
  35. return
  36. fi
  37. if ! perf c2c report -i "${perfdata}" --stdio > /dev/null 2>&1 ; then
  38. echo "c2c record and report test [Failed: report failed]"
  39. err=1
  40. return
  41. fi
  42. if ! perf c2c report -i "${perfdata}" -N > /dev/null 2>&1 ; then
  43. echo "c2c record and report test [Failed: report -N failed]"
  44. err=1
  45. return
  46. fi
  47. echo "c2c record and report test [Success]"
  48. }
  49. test_c2c_record_report
  50. cleanup
  51. exit $err