Regression Test Framework and Kernel Execution Coverage
We have developed a Linux kernel regression test framework ("crackerjack") and a branch coverage test tool (hereinafter "btrax") to capture kernel regression. Crackerjack is a harness program and a set of test programs. It runs test programs, records the results, and then compares the expected results. Therefore, if a particular system call failed in a release and was then fixed in a later release, crackerjack records this as non-favorable because of incompatibility. The btrax is an integrated component of crackerjack and is a tool to assess test programs' effectiveness. It uses Intel processor's branch trace capability and records how much code was traced by a test program. Crackerjack is initially designed for Linux kernel system call testing, but care has been taken to allow future expansion to other types of software.