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 :) 
 |