1#!/bin/sh
2# description: Kretprobe dynamic event with maxactive
3
4[ -f kprobe_events ] || exit_unsupported # this is configurable
5grep -q 'r\[maxactive\]' README || exit_unsupported # this is older version
6
7echo > kprobe_events
8
9# Test if we successfully reject unknown messages
10if echo 'a:myprobeaccept inet_csk_accept' > kprobe_events; then false; else true; fi
11
12# Test if we successfully reject too big maxactive
13if echo 'r1000000:myprobeaccept inet_csk_accept' > kprobe_events; then false; else true; fi
14
15# Test if we successfully reject unparsable numbers for maxactive
16if echo 'r10fuzz:myprobeaccept inet_csk_accept' > kprobe_events; then false; else true; fi
17
18# Test for kretprobe with event name without maxactive
19echo 'r:myprobeaccept inet_csk_accept' > kprobe_events
20grep myprobeaccept kprobe_events
21test -d events/kprobes/myprobeaccept
22echo '-:myprobeaccept' >> kprobe_events
23
24# Test for kretprobe with event name with a small maxactive
25echo 'r10:myprobeaccept inet_csk_accept' > kprobe_events
26grep myprobeaccept kprobe_events
27test -d events/kprobes/myprobeaccept
28echo '-:myprobeaccept' >> kprobe_events
29
30# Test for kretprobe without event name without maxactive
31echo 'r inet_csk_accept' > kprobe_events
32grep inet_csk_accept kprobe_events
33echo > kprobe_events
34
35# Test for kretprobe without event name with a small maxactive
36echo 'r10 inet_csk_accept' > kprobe_events
37grep inet_csk_accept kprobe_events
38echo > kprobe_events
39
40clear_trace
41