* [PATCH 1/3] ftracetest: Use logfile name supported by busybox's mktemp
@ 2014-11-06 2:04 Namhyung Kim
2014-11-06 2:04 ` [PATCH 2/3] ftracetest: Clear trace buffer after running kprobe testcases Namhyung Kim
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Namhyung Kim @ 2014-11-06 2:04 UTC (permalink / raw)
To: Steven Rostedt
Cc: LKML, Namhyung Kim, Namhyung Kim, Masami Hiramatsu, Andrew Morton
When I run the ftracetest in a busybox docker container, I saw
following error. Make the logfile template to comply with busybox's
mktemp. It also keep the logfiles under the logs directory.
# /linux/tools/testing/selftests/ftrace/ftracetest
=== Ftrace unit tests ===
mktemp: unrecognized option `--tmpdir=/linux/tools/testing/selftests/ftrace/logs/20141106-003624/'
BusyBox v1.22.1 (2014-05-22 23:22:11 UTC) multi-call binary.
Usage: mktemp [-dt] [-p DIR] [TEMPLATE]
Create a temporary file with name based on TEMPLATE and print its name.
TEMPLATE must end with XXXXXX (e.g. [/dir/]nameXXXXXX).
Without TEMPLATE, -t tmp.XXXXXX is assumed.
-d Make directory, not file
-q Fail silently on errors
-t Prepend base directory name to TEMPLATE
-p DIR Use DIR as a base directory (implies -t)
-u Do not create anything; print a name
Base directory is: -p DIR, else $TMPDIR, else /tmp
[1] Basic trace file check/linux/tools/testing/selftests/ftrace/ftracetest: line 244: can't create : nonexistent directory
/linux/tools/testing/selftests/ftrace/ftracetest: line 244: can't create : nonexistent directory
[FAIL]
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/testing/selftests/ftrace/ftracetest | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
index 8cc01c14262f..93b1bf5eadb5 100755
--- a/tools/testing/selftests/ftrace/ftracetest
+++ b/tools/testing/selftests/ftrace/ftracetest
@@ -218,7 +218,7 @@ trap 'SIG_RESULT=$XFAIL' $SIG_XFAIL
# Run one test case
run_test() { # testfile
local testname=`basename $1`
- local testlog=`mktemp --tmpdir=$LOG_DIR ${testname}-XXXXXX.log`
+ local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
testcase $1
echo "execute: "$1 > $testlog
SIG_RESULT=0
--
2.1.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] ftracetest: Clear trace buffer after running kprobe testcases
2014-11-06 2:04 [PATCH 1/3] ftracetest: Use logfile name supported by busybox's mktemp Namhyung Kim
@ 2014-11-06 2:04 ` Namhyung Kim
2014-11-06 3:12 ` Masami Hiramatsu
2014-11-06 2:04 ` [PATCH 3/3] ftracetest: Add basic event tracing test cases Namhyung Kim
2014-11-06 3:12 ` [PATCH 1/3] ftracetest: Use logfile name supported by busybox's mktemp Masami Hiramatsu
2 siblings, 1 reply; 7+ messages in thread
From: Namhyung Kim @ 2014-11-06 2:04 UTC (permalink / raw)
To: Steven Rostedt
Cc: LKML, Namhyung Kim, Namhyung Kim, Masami Hiramatsu, Andrew Morton
The kprobe testcases create, use and delete dynamic events during the
test but didn't clear the trace buffer so it'll leave the result after
it finishes.
# ./ftracetest
...
# cat trace
# tracer: nop
#
# entries-in-buffer/entries-written: 2/2 #P:12
#
# _-----=> irqs-off
# / _----=> need-resched
# | / _---=> hardirq/softirq
# || / _--=> preempt-depth
# ||| / delay
# TASK-PID CPU# |||| TIMESTAMP FUNCTION
# | | | |||| | |
ftracetest-26474 [009] d..1 79417.143782: Unknown type 1099
ftracetest-26498 [009] d..1 79417.208034: Unknown type 1101
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc | 1 +
tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc | 1 +
tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc | 1 +
tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc | 1 +
4 files changed, 4 insertions(+)
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc b/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc
index 1b8b665ab2b3..a5a426211129 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc
@@ -9,3 +9,4 @@ echo p:myevent do_fork > kprobe_events
grep myevent kprobe_events
test -d events/kprobes/myevent
echo > kprobe_events
+clear_trace
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc b/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc
index b55c84003587..d8c7bb6581fe 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc
@@ -11,3 +11,4 @@ echo 1 > events/kprobes/myevent/enable
echo > kprobe_events && exit 1 # this must fail
echo 0 > events/kprobes/myevent/enable
echo > kprobe_events # this must succeed
+clear_trace
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
index a603d3f8db7b..c45ee2761354 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
@@ -12,5 +12,6 @@ echo 1 > events/kprobes/testprobe/enable
( echo "forked")
echo 0 > events/kprobes/testprobe/enable
echo "-:testprobe" >> kprobe_events
+clear_trace
test -d events/kprobes/testprobe && exit 1 || exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
index 283c29e7f7c4..31717985acc7 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
@@ -12,4 +12,5 @@ echo 1 > events/kprobes/testprobe2/enable
( echo "forked")
echo 0 > events/kprobes/testprobe2/enable
echo '-:testprobe2' >> kprobe_events
+clear_trace
test -d events/kprobes/testprobe2 && exit 1 || exit 0
--
2.1.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] ftracetest: Add basic event tracing test cases
2014-11-06 2:04 [PATCH 1/3] ftracetest: Use logfile name supported by busybox's mktemp Namhyung Kim
2014-11-06 2:04 ` [PATCH 2/3] ftracetest: Clear trace buffer after running kprobe testcases Namhyung Kim
@ 2014-11-06 2:04 ` Namhyung Kim
2014-11-06 4:40 ` Masami Hiramatsu
2014-11-06 3:12 ` [PATCH 1/3] ftracetest: Use logfile name supported by busybox's mktemp Masami Hiramatsu
2 siblings, 1 reply; 7+ messages in thread
From: Namhyung Kim @ 2014-11-06 2:04 UTC (permalink / raw)
To: Steven Rostedt
Cc: LKML, Namhyung Kim, Namhyung Kim, Masami Hiramatsu, Andrew Morton
This patch adds basic event tracing tests like enable/disable with
top-level, subsystem-level and individual event files.
# ./ftracetest
=== Ftrace unit tests ===
[1] Basic trace file check [PASS]
[2] Basic trace clock test [PASS]
[3] Basic event tracing check [PASS]
[4] Basic test for tracers [PASS]
[5] event tracing - enable/disable with top level files [PASS]
[6] event tracing - enable/disable with subsystem level files [PASS]
[7] event tracing - enable/disable with event level files [PASS]
[8] ftrace - function graph filters [PASS]
[9] ftrace - function profiler with function tracing [PASS]
[10] ftrace - function graph filters with stack tracer [PASS]
[11] Kretprobe dynamic event with arguments [PASS]
[12] Kprobe dynamic event - busy event check [PASS]
[13] Kprobe dynamic event with arguments [PASS]
[14] Kprobe dynamic event - adding and removing [PASS]
# of passed: 14
# of failed: 0
# of unresolved: 0
# of untested: 0
# of unsupported: 0
# of xfailed: 0
# of undefined(test bug): 0
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
.../selftests/ftrace/test.d/00basic/basic4.tc | 5 ++
.../selftests/ftrace/test.d/event/event-enable.tc | 53 ++++++++++++++++++++++
.../ftrace/test.d/event/subsystem-enable.tc | 53 ++++++++++++++++++++++
.../ftrace/test.d/event/toplevel-enable.tc | 47 +++++++++++++++++++
4 files changed, 158 insertions(+)
create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/basic4.tc
create mode 100644 tools/testing/selftests/ftrace/test.d/event/event-enable.tc
create mode 100644 tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
create mode 100644 tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
diff --git a/tools/testing/selftests/ftrace/test.d/00basic/basic4.tc b/tools/testing/selftests/ftrace/test.d/00basic/basic4.tc
new file mode 100644
index 000000000000..fd9c49a13612
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/00basic/basic4.tc
@@ -0,0 +1,5 @@
+#!/bin/sh
+# description: Basic event tracing check
+test -f available_events -a -f set_event -a -d events
+# check scheduler events are available
+grep -q sched available_events && exit 0 || exit -1
\ No newline at end of file
diff --git a/tools/testing/selftests/ftrace/test.d/event/event-enable.tc b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
new file mode 100644
index 000000000000..668616d9bb03
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
@@ -0,0 +1,53 @@
+#!/bin/sh
+# description: event tracing - enable/disable with event level files
+
+do_reset() {
+ echo > set_event
+ clear_trace
+}
+
+fail() { #msg
+ do_reset
+ echo $1
+ exit -1
+}
+
+if [ ! -f set_event -o ! -d events/sched ]; then
+ echo "event tracing is not supported"
+ exit_unsupported
+fi
+
+reset_tracer
+do_reset
+
+echo 'sched:sched_switch' > set_event
+usleep 1
+
+count=`cat trace | grep sched_switch | wc -l`
+if [ $count -eq 0 ]; then
+ fail "sched_switch events are not recorded"
+fi
+
+do_reset
+
+echo 1 > events/sched/sched_switch/enable
+usleep 1
+
+count=`cat trace | grep sched_switch | wc -l`
+if [ $count -eq 0 ]; then
+ fail "sched_switch events are not recorded"
+fi
+
+do_reset
+
+echo 0 > events/sched/sched_switch/enable
+usleep 1
+
+count=`cat trace | grep sched_switch | wc -l`
+if [ $count -ne 0 ]; then
+ fail "sched_switch events should not be recorded"
+fi
+
+do_reset
+
+exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
new file mode 100644
index 000000000000..655c415b6e7f
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
@@ -0,0 +1,53 @@
+#!/bin/sh
+# description: event tracing - enable/disable with subsystem level files
+
+do_reset() {
+ echo > set_event
+ clear_trace
+}
+
+fail() { #msg
+ do_reset
+ echo $1
+ exit -1
+}
+
+if [ ! -f set_event -o ! -d events/sched ]; then
+ echo "event tracing is not supported"
+ exit_unsupported
+fi
+
+reset_tracer
+do_reset
+
+echo 'sched:*' > set_event
+usleep 1
+
+count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
+if [ $count -lt 3 ]; then
+ fail "at least fork, exec and exit events should be recorded"
+fi
+
+do_reset
+
+echo 1 > events/sched/enable
+usleep 1
+
+count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
+if [ $count -lt 3 ]; then
+ fail "at least fork, exec and exit events should be recorded"
+fi
+
+do_reset
+
+echo 0 > events/sched/enable
+usleep 1
+
+count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
+if [ $count -ne 0 ]; then
+ fail "any of scheduler events should not be recorded"
+fi
+
+do_reset
+
+exit 0
diff --git a/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
new file mode 100644
index 000000000000..480845774007
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
@@ -0,0 +1,47 @@
+#!/bin/sh
+# description: event tracing - enable/disable with top level files
+
+do_reset() {
+ echo > set_event
+ clear_trace
+}
+
+fail() { #msg
+ do_reset
+ echo $1
+ exit -1
+}
+
+if [ ! -f available_events -o ! -f set_event -o ! -d events ]; then
+ echo "event tracing is not supported"
+ exit_unsupported
+fi
+
+reset_tracer
+do_reset
+
+echo '*:*' > set_event
+count=`cat trace | grep -v ^# | wc -l`
+if [ $count -eq 0 ]; then
+ fail "none of events are recorded"
+fi
+
+do_reset
+
+echo 1 > events/enable
+count=`cat trace | grep -v ^# | wc -l`
+if [ $count -eq 0 ]; then
+ fail "none of events are recorded"
+fi
+
+do_reset
+
+echo 0 > events/enable
+count=`cat trace | grep -v ^# | wc -l`
+if [ $count -ne 0 ]; then
+ fail "any of events should not be recorded"
+fi
+
+do_reset
+
+exit 0
--
2.1.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] ftracetest: Use logfile name supported by busybox's mktemp
2014-11-06 2:04 [PATCH 1/3] ftracetest: Use logfile name supported by busybox's mktemp Namhyung Kim
2014-11-06 2:04 ` [PATCH 2/3] ftracetest: Clear trace buffer after running kprobe testcases Namhyung Kim
2014-11-06 2:04 ` [PATCH 3/3] ftracetest: Add basic event tracing test cases Namhyung Kim
@ 2014-11-06 3:12 ` Masami Hiramatsu
2014-11-06 13:41 ` Steven Rostedt
2 siblings, 1 reply; 7+ messages in thread
From: Masami Hiramatsu @ 2014-11-06 3:12 UTC (permalink / raw)
To: Namhyung Kim; +Cc: Steven Rostedt, LKML, Namhyung Kim, Andrew Morton
(2014/11/06 11:04), Namhyung Kim wrote:
> When I run the ftracetest in a busybox docker container, I saw
> following error. Make the logfile template to comply with busybox's
> mktemp. It also keep the logfiles under the logs directory.
>
> # /linux/tools/testing/selftests/ftrace/ftracetest
> === Ftrace unit tests ===
> mktemp: unrecognized option `--tmpdir=/linux/tools/testing/selftests/ftrace/logs/20141106-003624/'
> BusyBox v1.22.1 (2014-05-22 23:22:11 UTC) multi-call binary.
>
> Usage: mktemp [-dt] [-p DIR] [TEMPLATE]
>
> Create a temporary file with name based on TEMPLATE and print its name.
> TEMPLATE must end with XXXXXX (e.g. [/dir/]nameXXXXXX).
> Without TEMPLATE, -t tmp.XXXXXX is assumed.
>
> -d Make directory, not file
> -q Fail silently on errors
> -t Prepend base directory name to TEMPLATE
> -p DIR Use DIR as a base directory (implies -t)
> -u Do not create anything; print a name
>
> Base directory is: -p DIR, else $TMPDIR, else /tmp
Oops! good catch :)
>
> [1] Basic trace file check/linux/tools/testing/selftests/ftrace/ftracetest: line 244: can't create : nonexistent directory
> /linux/tools/testing/selftests/ftrace/ftracetest: line 244: can't create : nonexistent directory
> [FAIL]
>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Thank you,
> ---
> tools/testing/selftests/ftrace/ftracetest | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
> index 8cc01c14262f..93b1bf5eadb5 100755
> --- a/tools/testing/selftests/ftrace/ftracetest
> +++ b/tools/testing/selftests/ftrace/ftracetest
> @@ -218,7 +218,7 @@ trap 'SIG_RESULT=$XFAIL' $SIG_XFAIL
> # Run one test case
> run_test() { # testfile
> local testname=`basename $1`
> - local testlog=`mktemp --tmpdir=$LOG_DIR ${testname}-XXXXXX.log`
> + local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
> testcase $1
> echo "execute: "$1 > $testlog
> SIG_RESULT=0
>
--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] ftracetest: Clear trace buffer after running kprobe testcases
2014-11-06 2:04 ` [PATCH 2/3] ftracetest: Clear trace buffer after running kprobe testcases Namhyung Kim
@ 2014-11-06 3:12 ` Masami Hiramatsu
0 siblings, 0 replies; 7+ messages in thread
From: Masami Hiramatsu @ 2014-11-06 3:12 UTC (permalink / raw)
To: Namhyung Kim; +Cc: Steven Rostedt, LKML, Namhyung Kim, Andrew Morton
(2014/11/06 11:04), Namhyung Kim wrote:
> The kprobe testcases create, use and delete dynamic events during the
> test but didn't clear the trace buffer so it'll leave the result after
> it finishes.
>
> # ./ftracetest
> ...
>
> # cat trace
> # tracer: nop
> #
> # entries-in-buffer/entries-written: 2/2 #P:12
> #
> # _-----=> irqs-off
> # / _----=> need-resched
> # | / _---=> hardirq/softirq
> # || / _--=> preempt-depth
> # ||| / delay
> # TASK-PID CPU# |||| TIMESTAMP FUNCTION
> # | | | |||| | |
> ftracetest-26474 [009] d..1 79417.143782: Unknown type 1099
> ftracetest-26498 [009] d..1 79417.208034: Unknown type 1101
>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Thank you!
> ---
> tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc | 1 +
> tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc | 1 +
> tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc | 1 +
> tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc | 1 +
> 4 files changed, 4 insertions(+)
>
> diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc b/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc
> index 1b8b665ab2b3..a5a426211129 100644
> --- a/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc
> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc
> @@ -9,3 +9,4 @@ echo p:myevent do_fork > kprobe_events
> grep myevent kprobe_events
> test -d events/kprobes/myevent
> echo > kprobe_events
> +clear_trace
> diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc b/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc
> index b55c84003587..d8c7bb6581fe 100644
> --- a/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc
> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc
> @@ -11,3 +11,4 @@ echo 1 > events/kprobes/myevent/enable
> echo > kprobe_events && exit 1 # this must fail
> echo 0 > events/kprobes/myevent/enable
> echo > kprobe_events # this must succeed
> +clear_trace
> diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
> index a603d3f8db7b..c45ee2761354 100644
> --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
> @@ -12,5 +12,6 @@ echo 1 > events/kprobes/testprobe/enable
> ( echo "forked")
> echo 0 > events/kprobes/testprobe/enable
> echo "-:testprobe" >> kprobe_events
> +clear_trace
> test -d events/kprobes/testprobe && exit 1 || exit 0
>
> diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
> index 283c29e7f7c4..31717985acc7 100644
> --- a/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
> +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
> @@ -12,4 +12,5 @@ echo 1 > events/kprobes/testprobe2/enable
> ( echo "forked")
> echo 0 > events/kprobes/testprobe2/enable
> echo '-:testprobe2' >> kprobe_events
> +clear_trace
> test -d events/kprobes/testprobe2 && exit 1 || exit 0
>
--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] ftracetest: Add basic event tracing test cases
2014-11-06 2:04 ` [PATCH 3/3] ftracetest: Add basic event tracing test cases Namhyung Kim
@ 2014-11-06 4:40 ` Masami Hiramatsu
0 siblings, 0 replies; 7+ messages in thread
From: Masami Hiramatsu @ 2014-11-06 4:40 UTC (permalink / raw)
To: Namhyung Kim; +Cc: Steven Rostedt, LKML, Namhyung Kim, Andrew Morton
(2014/11/06 11:04), Namhyung Kim wrote:
> This patch adds basic event tracing tests like enable/disable with
> top-level, subsystem-level and individual event files.
>
> # ./ftracetest
> === Ftrace unit tests ===
> [1] Basic trace file check [PASS]
> [2] Basic trace clock test [PASS]
> [3] Basic event tracing check [PASS]
> [4] Basic test for tracers [PASS]
> [5] event tracing - enable/disable with top level files [PASS]
> [6] event tracing - enable/disable with subsystem level files [PASS]
> [7] event tracing - enable/disable with event level files [PASS]
> [8] ftrace - function graph filters [PASS]
> [9] ftrace - function profiler with function tracing [PASS]
> [10] ftrace - function graph filters with stack tracer [PASS]
> [11] Kretprobe dynamic event with arguments [PASS]
> [12] Kprobe dynamic event - busy event check [PASS]
> [13] Kprobe dynamic event with arguments [PASS]
> [14] Kprobe dynamic event - adding and removing [PASS]
>
> # of passed: 14
> # of failed: 0
> # of unresolved: 0
> # of untested: 0
> # of unsupported: 0
> # of xfailed: 0
> # of undefined(test bug): 0
Nice :)
>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Thank you,
> ---
> .../selftests/ftrace/test.d/00basic/basic4.tc | 5 ++
> .../selftests/ftrace/test.d/event/event-enable.tc | 53 ++++++++++++++++++++++
> .../ftrace/test.d/event/subsystem-enable.tc | 53 ++++++++++++++++++++++
> .../ftrace/test.d/event/toplevel-enable.tc | 47 +++++++++++++++++++
> 4 files changed, 158 insertions(+)
> create mode 100644 tools/testing/selftests/ftrace/test.d/00basic/basic4.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/event/event-enable.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
>
> diff --git a/tools/testing/selftests/ftrace/test.d/00basic/basic4.tc b/tools/testing/selftests/ftrace/test.d/00basic/basic4.tc
> new file mode 100644
> index 000000000000..fd9c49a13612
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/00basic/basic4.tc
> @@ -0,0 +1,5 @@
> +#!/bin/sh
> +# description: Basic event tracing check
> +test -f available_events -a -f set_event -a -d events
> +# check scheduler events are available
> +grep -q sched available_events && exit 0 || exit -1
> \ No newline at end of file
> diff --git a/tools/testing/selftests/ftrace/test.d/event/event-enable.tc b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
> new file mode 100644
> index 000000000000..668616d9bb03
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/event/event-enable.tc
> @@ -0,0 +1,53 @@
> +#!/bin/sh
> +# description: event tracing - enable/disable with event level files
> +
> +do_reset() {
> + echo > set_event
> + clear_trace
> +}
> +
> +fail() { #msg
> + do_reset
> + echo $1
> + exit -1
> +}
> +
> +if [ ! -f set_event -o ! -d events/sched ]; then
> + echo "event tracing is not supported"
> + exit_unsupported
> +fi
> +
> +reset_tracer
> +do_reset
> +
> +echo 'sched:sched_switch' > set_event
> +usleep 1
> +
> +count=`cat trace | grep sched_switch | wc -l`
> +if [ $count -eq 0 ]; then
> + fail "sched_switch events are not recorded"
> +fi
> +
> +do_reset
> +
> +echo 1 > events/sched/sched_switch/enable
> +usleep 1
> +
> +count=`cat trace | grep sched_switch | wc -l`
> +if [ $count -eq 0 ]; then
> + fail "sched_switch events are not recorded"
> +fi
> +
> +do_reset
> +
> +echo 0 > events/sched/sched_switch/enable
> +usleep 1
> +
> +count=`cat trace | grep sched_switch | wc -l`
> +if [ $count -ne 0 ]; then
> + fail "sched_switch events should not be recorded"
> +fi
> +
> +do_reset
> +
> +exit 0
> diff --git a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
> new file mode 100644
> index 000000000000..655c415b6e7f
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc
> @@ -0,0 +1,53 @@
> +#!/bin/sh
> +# description: event tracing - enable/disable with subsystem level files
> +
> +do_reset() {
> + echo > set_event
> + clear_trace
> +}
> +
> +fail() { #msg
> + do_reset
> + echo $1
> + exit -1
> +}
> +
> +if [ ! -f set_event -o ! -d events/sched ]; then
> + echo "event tracing is not supported"
> + exit_unsupported
> +fi
> +
> +reset_tracer
> +do_reset
> +
> +echo 'sched:*' > set_event
> +usleep 1
> +
> +count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
> +if [ $count -lt 3 ]; then
> + fail "at least fork, exec and exit events should be recorded"
> +fi
> +
> +do_reset
> +
> +echo 1 > events/sched/enable
> +usleep 1
> +
> +count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
> +if [ $count -lt 3 ]; then
> + fail "at least fork, exec and exit events should be recorded"
> +fi
> +
> +do_reset
> +
> +echo 0 > events/sched/enable
> +usleep 1
> +
> +count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
> +if [ $count -ne 0 ]; then
> + fail "any of scheduler events should not be recorded"
> +fi
> +
> +do_reset
> +
> +exit 0
> diff --git a/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
> new file mode 100644
> index 000000000000..480845774007
> --- /dev/null
> +++ b/tools/testing/selftests/ftrace/test.d/event/toplevel-enable.tc
> @@ -0,0 +1,47 @@
> +#!/bin/sh
> +# description: event tracing - enable/disable with top level files
> +
> +do_reset() {
> + echo > set_event
> + clear_trace
> +}
> +
> +fail() { #msg
> + do_reset
> + echo $1
> + exit -1
> +}
> +
> +if [ ! -f available_events -o ! -f set_event -o ! -d events ]; then
> + echo "event tracing is not supported"
> + exit_unsupported
> +fi
> +
> +reset_tracer
> +do_reset
> +
> +echo '*:*' > set_event
> +count=`cat trace | grep -v ^# | wc -l`
> +if [ $count -eq 0 ]; then
> + fail "none of events are recorded"
> +fi
> +
> +do_reset
> +
> +echo 1 > events/enable
> +count=`cat trace | grep -v ^# | wc -l`
> +if [ $count -eq 0 ]; then
> + fail "none of events are recorded"
> +fi
> +
> +do_reset
> +
> +echo 0 > events/enable
> +count=`cat trace | grep -v ^# | wc -l`
> +if [ $count -ne 0 ]; then
> + fail "any of events should not be recorded"
> +fi
> +
> +do_reset
> +
> +exit 0
>
--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] ftracetest: Use logfile name supported by busybox's mktemp
2014-11-06 3:12 ` [PATCH 1/3] ftracetest: Use logfile name supported by busybox's mktemp Masami Hiramatsu
@ 2014-11-06 13:41 ` Steven Rostedt
0 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2014-11-06 13:41 UTC (permalink / raw)
To: Masami Hiramatsu; +Cc: Namhyung Kim, LKML, Namhyung Kim, Andrew Morton
On Thu, 06 Nov 2014 12:12:22 +0900
> >
> > [1] Basic trace file check/linux/tools/testing/selftests/ftrace/ftracetest: line 244: can't create : nonexistent directory
> > /linux/tools/testing/selftests/ftrace/ftracetest: line 244: can't create : nonexistent directory
> > [FAIL]
> >
> > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
>
> Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
I pulled all three in.
Thanks Namhyung!
-- Steve
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-11-06 13:42 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-06 2:04 [PATCH 1/3] ftracetest: Use logfile name supported by busybox's mktemp Namhyung Kim
2014-11-06 2:04 ` [PATCH 2/3] ftracetest: Clear trace buffer after running kprobe testcases Namhyung Kim
2014-11-06 3:12 ` Masami Hiramatsu
2014-11-06 2:04 ` [PATCH 3/3] ftracetest: Add basic event tracing test cases Namhyung Kim
2014-11-06 4:40 ` Masami Hiramatsu
2014-11-06 3:12 ` [PATCH 1/3] ftracetest: Use logfile name supported by busybox's mktemp Masami Hiramatsu
2014-11-06 13:41 ` Steven Rostedt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).