Linux Kernel Selftests

Kernel selftests are run in userspace for testing kernel functions. They may be useful for regression testing of new kernels. Since they are run in userspace, the corresponding kernel has to be running for tests.

Kernel Setup

Keep the previously built kernel config file

Get into kernel source directory:

cp previous_config .config
make olddefconfig
make kselftest-merge
make menuconfig # setup if and as you want
make -j 2
make modules modules_install install

Do necessary things for booting the new kernel. Reboot with new kernel.

Required software setup for selftests

Debian instructions for setup:

sudo apt-get install libmount-dev libcap-ng-dev libcap-dev libelf-dev libfuse-dev libpopt-dev

Note: Install libcap-dev if libcap-ng-dev is not available
Note: Install for subset net selftests follow next section

Net selftests

Debian instructions for setup: Install necessary softwares for kselftest:

sudo apt-get install libnuma-dev traceroute net-tools

Get into previously built kernel source directory and run:

make summary=1 TARGETS=net kselftest |& tee /tmp/kselftest_summary_net.log
make TARGETS=net kselftest |& tee /tmp/kselftest_net.log

You may see the above log files for later need.

The kselftest target builds "nettest" executable binary. Copy it to PATH or make a symlink.

cp tools/testing/selftests/net/nettest /usr/local/bin

Rerun the selftest to pass some failing tests because of previously non-existant nettest binary.

KernelNewbies: OutreachyKernelSelftest_draft (last edited 2020-04-07 14:43:49 by veera)