|
|
|
Linux Ftrace Testcases
|
|
|
|
|
|
|
|
This is a collection of testcases for ftrace tracing feature in the Linux
|
|
|
|
kernel. Since ftrace exports interfaces via the debugfs, we just need
|
|
|
|
shell scripts for testing. Feel free to add new test cases.
|
|
|
|
|
|
|
|
Running the ftrace testcases
|
|
|
|
============================
|
|
|
|
|
|
|
|
At first, you need to be the root user to run this script.
|
|
|
|
To run all testcases:
|
|
|
|
|
|
|
|
$ sudo ./ftracetest
|
|
|
|
|
|
|
|
To run specific testcases:
|
|
|
|
|
|
|
|
# ./ftracetest test.d/basic3.tc
|
|
|
|
|
|
|
|
Or you can also run testcases under given directory:
|
|
|
|
|
|
|
|
# ./ftracetest test.d/kprobe/
|
|
|
|
|
|
|
|
Contributing new testcases
|
|
|
|
==========================
|
|
|
|
|
|
|
|
Copy test.d/template to your testcase (whose filename must have *.tc
|
|
|
|
extension) and rewrite the test description line.
|
|
|
|
|
|
|
|
* The working directory of the script is <debugfs>/tracing/.
|
|
|
|
|
|
|
|
* Take care with side effects as the tests are run with root privilege.
|
|
|
|
|
|
|
|
* The tests should not run for a long period of time (more than 1 min.)
|
|
|
|
These are to be unit tests.
|
|
|
|
|
|
|
|
* You can add a directory for your testcases under test.d/ if needed.
|
|
|
|
|
|
|
|
* The test cases should run on dash (busybox shell) for testing on
|
|
|
|
minimal cross-build environments.
|
|
|
|
|
|
|
|
* Note that the tests are run with "set -e" (errexit) option. If any
|
|
|
|
command fails, the test will be terminated immediately.
|
|
|
|
|
|
|
|
* The tests can return some result codes instead of pass or fail by
|
|
|
|
using exit_unresolved, exit_untested, exit_unsupported and exit_xfail.
|
|
|
|
|
|
|
|
Result code
|
|
|
|
===========
|
|
|
|
|
|
|
|
Ftracetest supports following result codes.
|
|
|
|
|
|
|
|
* PASS: The test succeeded as expected. The test which exits with 0 is
|
|
|
|
counted as passed test.
|
|
|
|
|
|
|
|
* FAIL: The test failed, but was expected to succeed. The test which exits
|
|
|
|
with !0 is counted as failed test.
|
|
|
|
|
|
|
|
* UNRESOLVED: The test produced unclear or intermidiate results.
|
|
|
|
for example, the test was interrupted
|
|
|
|
or the test depends on a previous test, which failed.
|
|
|
|
or the test was set up incorrectly
|
|
|
|
The test which is in above situation, must call exit_unresolved.
|
|
|
|
|
|
|
|
* UNTESTED: The test was not run, currently just a placeholder.
|
|
|
|
In this case, the test must call exit_untested.
|
|
|
|
|
|
|
|
* UNSUPPORTED: The test failed because of lack of feature.
|
|
|
|
In this case, the test must call exit_unsupported.
|
|
|
|
|
|
|
|
* XFAIL: The test failed, and was expected to fail.
|
|
|
|
To return XFAIL, call exit_xfail from the test.
|
|
|
|
|
|
|
|
There are some sample test scripts for result code under samples/.
|
|
|
|
You can also run samples as below:
|
|
|
|
|
|
|
|
# ./ftracetest samples/
|
|
|
|
|
|
|
|
TODO
|
|
|
|
====
|
|
|
|
|
|
|
|
* Fancy colored output :)
|
|
|
|
|