Add a simple sub-test to the "Miscellaneous Intel PT testing" test to check pause / resume.
Unified · Split
| @@ -644,6 +644,33 @@ test_pipe() · 643 unmodified lines | |||
| 644 | return 0 | 644 | return 0 |
| 645 | } | 645 | } |
| 646 | 646 | ||
| 647 | test_pause_resume() | ||
| 648 | { | ||
| 649 | echo "--- Test with pause / resume ---" | ||
| 650 | if ! perf_record_no_decode -o "${perfdatafile}" -e intel_pt/aux-action=start-paused/u uname ; then | ||
| 651 | echo "SKIP: pause / resume is not supported" | ||
| 652 | return 2 | ||
| 653 | fi | ||
| 654 | if ! perf_record_no_bpf -o "${perfdatafile}" \ | ||
| 655 | -e intel_pt/aux-action=start-paused/u \ | ||
| 656 | -e instructions/period=50000,aux-action=resume,name=Resume/u \ | ||
| 657 | -e instructions/period=100000,aux-action=pause,name=Pause/u uname ; then | ||
| 658 | echo "perf record with pause / resume failed" | ||
| 659 | return 1 | ||
| 660 | fi | ||
| 661 | if ! perf script -i "${perfdatafile}" --itrace=b -Fperiod,event | \ | ||
| 662 | awk 'BEGIN {paused=1;branches=0} | ||
| 663 | /Resume/ {paused=0} | ||
| 664 | /branches/ {if (paused) exit 1;branches=1} | ||
| 665 | /Pause/ {paused=1} | ||
| 666 | END {if (!branches) exit 1}' ; then | ||
| 667 | echo "perf record with pause / resume failed" | ||
| 668 | return 1 | ||
| 669 | fi | ||
| 670 | echo OK | ||
| 671 | return 0 | ||
| 672 | } | ||
| 673 | |||
| 647 | count_result() | 674 | count_result() |
| 648 | { | 675 | { |
| 649 | if [ "$1" -eq 2 ] ; then | 676 | if [ "$1" -eq 2 ] ; then |
| @@ -672,6 +699,7 @@ test_power_event || ret=$? ; count_result $ret ; ret=0 · 22 unmodified lines | |||
| 672 | test_no_tnt || ret=$? ; count_result $ret ; ret=0 | 699 | test_no_tnt || ret=$? ; count_result $ret ; ret=0 |
| 673 | test_event_trace || ret=$? ; count_result $ret ; ret=0 | 700 | test_event_trace || ret=$? ; count_result $ret ; ret=0 |
| 674 | test_pipe || ret=$? ; count_result $ret ; ret=0 | 701 | test_pipe || ret=$? ; count_result $ret ; ret=0 |
| 702 | test_pause_resume || ret=$? ; count_result $ret ; ret=0 | ||
| 675 | 703 | ||
| 676 | cleanup | 704 | cleanup |
| 677 | 705 | ||