Linux kernel testing skill for KUnit, kselftest, syzkaller, and LTP.

MITAuto-check passedSecurity

Install Kernel Testing

skills CLI
$ npx skills add mohitmishra786/low-level-dev-skills --skill kernel-testing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mohitmishra786/low-level-dev-skills kernel-testing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mohitmishra786/low-level-dev-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/kernel/kernel-testing .claude/skills/kernel-testing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
kernel-testing
GitHub stars
253
Token cost
~1.4k tokens
SKILL.md length
252 words
Files
1
Skills in repo
138
Repo updated
First seen
Licence
MIT

At a glance

Linux kernel testing skill for KUnit, kselftest, syzkaller, and LTP.

  • Works in 8 steps: KUnit — in-kernel unit tests → kselftest harness → syzkaller fuzzing → …
  • Writing KUnit tests
  • SKILL.md covers Purpose, When to Use, Workflow and Common Problems, plus 1 more section
  • Calls make and git; reaches github.com and kernelci.org

What it does

Kernel Testing is an agent skill from mohitmishra786/low-level-dev-skills. Linux kernel testing skill for KUnit, kselftest, syzkaller, and LTP. Use when writing KUnit tests, running kselftest harness, configuring syzkaller fuzzing, or integrating KernelCI. Activates on queries about kunittestsuite, kunit.py, kselftest, syzkaller, kcov, or Linux Test Project.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Security, covering Fuzzing, Test generation and Unit testing. It works with Linux. The repository describes itself as: A curated suite of AI agent skills for systems and low-level programming with C/C++, Rust, and Zig toolchains, covering compilers, debuggers, profilers, build systems…. The licence is MIT.

When your agent uses it

  • Writing KUnit tests
  • Running kselftest harness
  • Configuring syzkaller fuzzing
  • Integrating KernelCI

Example prompts

  • “/kernel-testing”

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. KUnit — in-kernel unit tests
  2. kselftest harness
  3. syzkaller fuzzing
  4. kcov — kernel coverage
  5. Linux Test Project (LTP)
  6. KernelCI
  7. Testing decision tree
  8. Debug-friendly test kernel config

What it can do on your machine

Read from SKILL.md and the folder at commit bdc5847. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • make
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • kernelci.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Kernel Testing loads about 1.4k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 252 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~76
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mohitmishra786/low-level-dev-skills at commit bdc5847, republished under its MIT licence (© mohitmishra786). 252 words, ~1,414 tokens.

Download SKILL.mdSave it as .claude/skills/kernel-testing/SKILL.md (or your agent's skills folder).
name
kernel-testing
description
Linux kernel testing skill for KUnit, kselftest, syzkaller, and LTP. Use when writing KUnit tests, running kselftest harness, configuring syzkaller fuzzing, or integrating KernelCI. Activates on queries about kunit_test_suite, kunit.py, kselftest, syzkaller, kcov, or Linux Test Project.

Kernel Testing

Purpose

Guide agents through testing the Linux kernel: KUnit in-kernel unit tests, the kselftest harness, syzkaller fuzzing with kcov coverage, Linux Test Project (LTP) syscall regression, and KernelCI integration for continuous testing.

When to Use

  • Writing unit tests for kernel library code or driver helpers
  • Adding regression tests to tools/testing/selftests/
  • Fuzzing syscalls and ioctl interfaces with syzkaller
  • Measuring kernel code coverage with kcov
  • Running LTP for syscall compatibility validation
  • Setting up CI for kernel patches

Workflow

1. KUnit — in-kernel unit tests
c
// test_example.c
#include <kunit/test.h>

static void example_test(struct kunit *test)
{
    KUNIT_EXPECT_EQ(test, 1 + 1, 2);
    KUNIT_ASSERT_NOT_ERR_OR_NULL(test, kmalloc(16, GFP_KERNEL));
}

static struct kunit_case example_test_cases[] = {
    KUNIT_CASE(example_test),
    {}
};

static struct kunit_suite example_suite = {
    .name = "example",
    .test_cases = example_test_cases,
};
kunit_test_suite(example_suite);

MODULE_LICENSE("GPL");
makefile
# Makefile
obj-$(CONFIG_KUNIT) += test_example.o
bash
# Run KUnit (in-tree)
./tools/testing/kunit/kunit.py run

# Run specific test
./tools/testing/kunit/kunit.py run --filter example

# With cross-compilation
./tools/testing/kunit/kunit.py run --cross_compile aarch64-linux-gnu- \
    --arch arm64

KUnit runs in kernel context (UMH or dedicated kunit kernel). Use kunit_kmalloc for test allocations.

2. kselftest harness
bash
# Build all selftests
cd tools/testing/selftests
make -j$(nproc)

# Run all
make run_tests

# Run specific test
./memfd/memfd_test
./mount/run_unprivileged_remount.sh

Adding a new selftest:

tools/testing/selftests/mytest/
├── Makefile
├── mytest.c
└── config        # optional kconfig requirements
makefile
# tools/testing/selftests/mytest/Makefile
CFLAGS += -Wall
TEST_GEN_FILES := mytest
TEST_PROGS := mytest

include ../lib.mk
bash
# Run from top-level
make -C tools/testing/selftests/mytest run_tests
3. syzkaller fuzzing
bash
# Install syzkaller
git clone https://github.com/google/syzkaller
cd syzkaller && make

# Manager config (manager.cfg)
{
    "target": "linux/amd64",
    "http": "127.0.0.1:56741",
    "workdir": "/tmp/syzkaller",
    "kernel_obj": "/path/to/kernel/build",
    "syzkaller": "/path/to/syzkaller",
    "procs": 8,
    "type": "qemu",
    "vm": {
        "count": 4,
        "kernel": "/path/to/bzImage",
        "cpu": 2,
        "mem": 2048
    }
}
bash
# Start manager
./bin/syz-manager -config manager.cfg

# Reproduce a crash
./bin/syz-repro -config manager.cfg crash-report.txt

Kernel requirements: CONFIG_KCOV, CONFIG_DEBUG_FS, CONFIG_KASAN (recommended).

4. kcov — kernel coverage
bash
# Enable kcov on instrumented kernel
# CONFIG_KCOV=y in kernel config

# syzkaller uses kcov automatically
# Manual coverage via debugfs
ls /sys/kernel/debug/kcov/

Coverage guides syzkaller toward unexplored kernel paths.

5. Linux Test Project (LTP)
bash
# Build LTP
git clone https://github.com/linux-test-project/ltp
cd ltp
make autotools
./configure
make -j$(nproc)
make install

# Run syscall tests
cd /opt/ltp
./runltp -f syscalls

# Run specific test
./runltp -f syscalls -s pipe01

LTP categories: syscalls, FS, network, IPC, controllers, security.

6. KernelCI
bash
# Local kernel build test (simplified workflow)
# KernelCI tests patches against multiple defconfigs

# Submit build to KernelCI (project-specific tokens)
# See https://kernelci.org/docs/

# Check boot and kselftest results in KernelCI dashboard

Typical CI pipeline:

Patch → build (allmodconfig) → boot test (QEMU) → kselftest → LTP subset
7. Testing decision tree
What to test?
├── Pure kernel function logic → KUnit
├── Userspace-visible behavior (syscall, ioctl) → kselftest
├── Security/crash finding → syzkaller + KASAN
├── Regression across distros → LTP
└── Upstream patch CI → KernelCI
8. Debug-friendly test kernel config
CONFIG_KUNIT=y
CONFIG_KCOV=y
CONFIG_KASAN=y
CONFIG_DEBUG_INFO_DWARF5=y
CONFIG_FRAME_POINTER=y
CONFIG_FTRACE=y
bash
make kvm_guest.config   # reasonable test config base
scripts/config --enable KUNIT KCOV KASAN
make olddefconfig

Common Problems

SymptomCauseFix
KUnit tests not foundCONFIG_KUNIT disabledEnable in .config; rebuild
kselftest SKIPMissing kernel featureCheck config file requirements
syzkaller no crashesWrong VM configVerify QEMU boots; check kernel cmdline
kcov zero coverageCONFIG_KCOV offRebuild kernel with kcov
LTP massive failuresWrong environmentRun as root; check prerequisites in README
kunit.py hangsUML vs hardware mismatchSpecify --arch and cross-compile
  • skills/low-level-programming/linux-kernel-modules — modules under test
  • skills/kernel/device-drivers — driver logic to unit test
  • skills/kernel/kernel-debugging — debug failures found by tests
  • skills/runtimes/fuzzing — userspace fuzzing concepts (libFuzzer)
  • skills/runtimes/sanitizers — KASAN/KMSAN for kernel
  • skills/virtualization/qemu-kvm — QEMU for kernel boot testing

© mohitmishra786, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/kernel/kernel-testing of mohitmishra786/low-level-dev-skills.

Open the folder on GitHubat commit bdc5847

Compare with similar skills

Kernel Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Kernel Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Kernel Testing this skillmohitmishra786/low-level-dev-skills253—~1.4kAutomated safety check: PassMIT
Directed Test Input GeneratorArabelaTso/Skills-4-SE253—~3kAutomated safety check: PassApache-2.0
Blue Teamgaasher/Agent-Loop-Skills174—~3.6kAutomated safety check: PassMIT
Vibe Fuzz Parser Inputsash1794/vibe-engineering162—~689Automated safety check: PassMIT
Re Crash Triagedslsdzc/rev-skills117—~1.7kAutomated safety check: NotesApache-2.0
Adk Verify Snippetsgoogle/adk-python22k—~1.4kAutomated safety check: PassApache-2.0

Similar skills

  • Directed Test Input Generator

    ArabelaTso/Skills-4-SE

    Generate targeted test inputs to reach specific code paths and hard-to-reach behaviors in Python code.

    253 GitHub stars~3k tokensUpdated 1 mo ago
    SecurityAuto-check passed
  • Blue Team

    gaasher/Agent-Loop-Skills

    A skill your agent uses when the user has concrete failing cases in code or a guardrail/classifier/filter/prompt/API they own — a red-team failure catalogue OR a CI/CD test-failure report (failing…

    174 GitHub stars~3.6k tokensUpdated 3 mo ago
    Testing & QAAuto-check passed
  • Vibe Fuzz Parser Inputs

    ash1794/vibe-engineering

    Generates fuzz test scaffolding for parsers handling external input (YAML, JSON, config files, user input).

    162 GitHub stars~689 tokensUpdated today
    Testing & QAAuto-check passed
  • Re Crash Triage

    dslsdzc/rev-skills

    崩溃/漏洞样本分析:确定性复现、ASAN/UBSAN 报告解读、输入最小化 (afl-tmin/cmin)、gdb 回溯定位、rr 录制重放、PoC 产出。

    117 GitHub stars~1.7k tokensUpdated 2 days ago
    SecurityAuto-check: notes
  • Adk Verify Snippets

    google/adk-python

    Official

    Checks that every Python code block in a Markdown file actually compiles and runs, by extracting each block to a temporary file, executing it in an isolated subprocess, and writing a pass/fail…

    22k GitHub stars~1.4k tokensUpdated today
    Testing & QAAuto-check passed
  • Hermetic Python Unit Tests

    dimensionalOS/dimos

    Rules for writing, fixing and reviewing pytest unit tests that are hermetic: behavior-focused, deterministic, isolated and cheap to run.

    4.6k GitHub stars~1.4k tokensUpdated today
    Testing & QAAuto-check passed

More from mohitmishra786/low-level-dev-skills

All 138 skills in this repo
  • ARM and AArch64 Assembly

    mohitmishra786/low-level-dev-skills

    Guides reading and writing AArch64 and ARM Thumb assembly: compiler output, inline asm, registers, the AAPCS calling convention and NEON or SVE basics.

    253 GitHub stars~1.9k tokensUpdated 3 mo ago
    Auto-check passed
  • RISC-V Assembly Guide

    mohitmishra786/low-level-dev-skills

    Reference for RISC-V assembly on RV32 and RV64: register names and calling convention, extension naming, GCC and Clang inline asm, and QEMU with GDB debugging.

    253 GitHub stars~1.8k tokensUpdated 3 mo ago
    Auto-check passed
  • x86-64 Assembly Reference

    mohitmishra786/low-level-dev-skills

    Explains x86-64 registers, the System V AMD64 calling convention, and how to read compiler-generated or inline assembly.

    253 GitHub stars~1.5k tokensUpdated 3 mo ago
    Auto-check passed
  • Bazel for C and C++

    mohitmishra786/low-level-dev-skills

    Guides your agent through Bazel for C/C++ projects: BUILD files, Bzlmod dependencies, toolchain registration, remote execution, dependency queries and sandbox debugging.

    253 GitHub stars~1.5k tokensUpdated 3 mo ago
    Auto-check passed
  • Binary Hardening

    mohitmishra786/low-level-dev-skills

    Binary hardening skill for security-hardened C/C++ builds. An agent skill from mohitmishra786/low-level-dev-skills.

    253 GitHub stars~2k tokensUpdated 3 mo ago
    Auto-check passed
  • Binutils

    mohitmishra786/low-level-dev-skills

    GNU binutils skill for binary manipulation and analysis. An agent skill from mohitmishra786/low-level-dev-skills.

    253 GitHub stars~1.2k tokensUpdated 3 mo ago
    Auto-check passed

Works with

Questions about Kernel Testing

What does Kernel Testing do?

Linux kernel testing skill for KUnit, kselftest, syzkaller, and LTP. Kernel Testing is an agent skill from mohitmishra786/low-level-dev-skills. Linux kernel testing skill for KUnit, kselftest, syzkaller, and LTP.

When should I use Kernel Testing?

Kernel Testing fits situations like: writing KUnit tests; running kselftest harness; configuring syzkaller fuzzing; integrating KernelCI.

How do I install Kernel Testing in Claude Code?

Run `npx skills add mohitmishra786/low-level-dev-skills --skill kernel-testing -a claude-code`. Or copy the skill folder (skills/kernel/kernel-testing in mohitmishra786/low-level-dev-skills) into .claude/skills/kernel-testing in your project. Claude Code loads it when a task matches its description.

How do I install Kernel Testing in Codex?

Run `npx skills add mohitmishra786/low-level-dev-skills --skill kernel-testing -a codex`. Or copy the skill folder (skills/kernel/kernel-testing in mohitmishra786/low-level-dev-skills) into .agents/skills/kernel-testing in your project. Codex loads it when a task matches its description.

Can I use Kernel Testing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mohitmishra786/low-level-dev-skills --skill kernel-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kernel-testing, .gemini/skills/kernel-testing, .github/skills/kernel-testing and .opencode/skills/kernel-testing in your project.

What does Kernel Testing need to run?

Going by SKILL.md and its folder, Kernel Testing needs the command-line tools its instructions call (make and git).

Does Kernel Testing access the network?

SKILL.md names 2 domains. In commands or code: github.com and kernelci.org; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Kernel Testing safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Kernel Testing use?

Kernel Testing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Kernel Testing use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Kernel Testing?

Skills that share tags, products or a category with Kernel Testing: Directed Test Input Generator (ArabelaTso/Skills-4-SE, 253 stars), Blue Team (gaasher/Agent-Loop-Skills, 174 stars), Vibe Fuzz Parser Inputs (ash1794/vibe-engineering, 162 stars) and Re Crash Triage (dslsdzc/rev-skills, 117 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Kernel Testing?

mohitmishra786 (a GitHub user) maintains it in mohitmishra786/low-level-dev-skills, which has 253 GitHub stars. The repository holds 138 skills in this directory. The repository was last updated on June 27, 2026.

Source: mohitmishra786/low-level-dev-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.