mirror of
https://github.com/torvalds/linux.git
synced 2026-04-26 02:22:28 -04:00
Pull Kselftest updates from Shuah Khan:
"Several fixes and enhancements to existing tests and a few new tests:
- add new amd-pstate tests and fix and enhance existing ones
- add new watchdog tests and enhance existing ones to improve
coverage
- fixes to ftrace, splice_read, rtc, and efivars tests
- fixes to handle egrep obsolescence in the latest grep release
- miscellaneous spelling and SPDX fixes"
* tag 'linux-kselftest-next-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (24 commits)
selftests/ftrace: Use long for synthetic event probe test
selftests/tpm2: Split async tests call to separate shell script runner
selftests: splice_read: Fix sysfs read cases
selftests: ftrace: Use "grep -E" instead of "egrep"
selftests: gpio: Use "grep -E" instead of "egrep"
selftests: kselftest_deps: Use "grep -E" instead of "egrep"
selftests/efivarfs: Add checking of the test return value
cpufreq: amd-pstate: fix spdxcheck warnings for amd-pstate-ut.c
selftests: rtc: skip when RTC is not present
selftests/ftrace: event_triggers: wait longer for test_event_enable
selftests/vDSO: Add riscv getcpu & gettimeofday test
Documentation: amd-pstate: Add tbench and gitsource test introduction
selftests: amd-pstate: Trigger gitsource benchmark and test cpus
selftests: amd-pstate: Trigger tbench benchmark and test cpus
selftests: amd-pstate: Split basic.sh into run.sh and basic.sh.
selftests: amd-pstate: Rename amd-pstate-ut.sh to basic.sh.
selftests/ftrace: Convert tracer tests to use 'requires' to specify program dependency
selftests/ftrace: Add check for ping command for trigger tests
selftests/watchdog: Fix spelling mistake "Temeprature" -> "Temperature"
selftests/watchdog: add test for WDIOC_GETTEMP
...
54 lines
1.7 KiB
Bash
54 lines
1.7 KiB
Bash
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# description: event trigger - test inter-event histogram trigger eprobe on synthetic event
|
|
# requires: dynamic_events synthetic_events events/syscalls/sys_enter_openat/hist "e[:[<group>/][<event>]] <attached-group>.<attached-event> [<args>]":README
|
|
|
|
echo 0 > events/enable
|
|
|
|
clear_dynamic_events
|
|
|
|
SYSTEM="syscalls"
|
|
START="sys_enter_openat"
|
|
END="sys_exit_openat"
|
|
FIELD="filename"
|
|
SYNTH="synth_open"
|
|
EPROBE="eprobe_open"
|
|
|
|
echo "$SYNTH unsigned long filename; long ret;" > synthetic_events
|
|
echo "hist:keys=common_pid:__arg__1=$FIELD" > events/$SYSTEM/$START/trigger
|
|
echo "hist:keys=common_pid:filename=\$__arg__1,ret=ret:onmatch($SYSTEM.$START).trace($SYNTH,\$filename,\$ret)" > events/$SYSTEM/$END/trigger
|
|
|
|
echo "e:$EPROBE synthetic/$SYNTH file=+0(\$filename):ustring ret=\$ret:s64" >> dynamic_events
|
|
|
|
grep -q "$SYNTH" dynamic_events
|
|
grep -q "$EPROBE" dynamic_events
|
|
test -d events/synthetic/$SYNTH
|
|
test -d events/eprobes/$EPROBE
|
|
|
|
echo 1 > events/eprobes/$EPROBE/enable
|
|
ls
|
|
echo 0 > events/eprobes/$EPROBE/enable
|
|
|
|
content=`grep '^ *ls-' trace | grep 'file='`
|
|
nocontent=`grep '^ *ls-' trace | grep 'file=' | grep -v -e '"/' -e '"."'` || true
|
|
|
|
if [ -z "$content" ]; then
|
|
exit_fail
|
|
fi
|
|
|
|
if [ ! -z "$nocontent" ]; then
|
|
exit_fail
|
|
fi
|
|
|
|
echo "-:$EPROBE" >> dynamic_events
|
|
echo '!'"hist:keys=common_pid:filename=\$__arg__1,ret=ret:onmatch($SYSTEM.$START).trace($SYNTH,\$filename,\$ret)" > events/$SYSTEM/$END/trigger
|
|
echo '!'"hist:keys=common_pid:__arg__1=$FIELD" > events/$SYSTEM/$START/trigger
|
|
echo '!'"$SYNTH u64 filename; s64 ret;" >> synthetic_events
|
|
|
|
! grep -q "$SYNTH" dynamic_events
|
|
! grep -q "$EPROBE" dynamic_events
|
|
! test -d events/synthetic/$SYNTH
|
|
! test -d events/eprobes/$EPROBE
|
|
|
|
clear_trace
|