[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87ldmwjqeb.fsf@gmail.com>
Date: Tue, 02 Sep 2025 18:56:38 -0600
From: Abhinav Saxena <xandfury@...il.com>
To: Jiri Slaby <jirislaby@...nel.org>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Nathan Chancellor
<nathan@...nel.org>, Nick Desaulniers <nick.desaulniers+lkml@...il.com>,
Bill Wendling <morbo@...gle.com>, Justin Stitt <justinstitt@...gle.com>,
Kees Cook <kees@...nel.org>, linux-kernel@...r.kernel.org,
linux-serial@...r.kernel.org, llvm@...ts.linux.dev,
linux-hardening@...r.kernel.org
Subject: Re: [RFC PATCH 0/5] tty: Add KUnit test framework for TTY drivers
Hi!
Jiri Slaby <jirislaby@...nel.org> writes:
> On 27. 08. 25, 0:51, Abhinav Saxena wrote:
>> This patch series introduces a KUnit testing framework for the TTY
>> subsystem, enabling deterministic, automated testing of TTY drivers and
>> core functionality without requiring hardware or userspace interaction.
>> On an x86_64 build with CONFIG_GCOV enabled, these tests increased
>> TTY subsystem coverage to approximately 10.6% line coverage and
>> 14.7% function coverage [1].
>> Problem Statement
>> —————–
>> Testing TTY drivers today requires:
>> - User-space interaction through device nodes
>> - Complex setup with ptys or real hardware
>> - Limited ability to test error paths reliably and deterministically
>> This series solves these issues by providing in-kernel KUnit tests
>> that
>> exercise real TTY core paths under controlled, deterministic conditions.
>> What This Series Provides
>> ————————-
>> 1. Reusable test helpers (`tty_test_helpers.h`):
>> - Minimal (~150 LOC) infrastructure that any TTY driver should be
>> able to use
>> - Automatic resource management
>> - Integrated into core files under KUnit guard, with
>> `EXPORT_SYMBOL_IF_KUNIT()` to keep the production symbol table
>> clean
>> 2. Mock TTY driver:
>> - Demonstrates how drivers can leverage the helpers
>> - Enables deterministic scenarios without hardware
>> 3. Core TTY tests:
>> - Validate open/close/read/write/termios paths
>> - Exercise hangup, resize, and error handling
>> - Ensure real kernel paths are tested, not mocked stubs
>> 4. ttynull driver tests:
>> - Validate data sink behavior of the null driver
>> - Provide a minimal driver contract baseline
>> 5. Optional coverage support:
>> - GCOV integration for test coverage analysis
>> Future Work
>> ———–
>> With this foundation merged, follow-up work can:
>> - Add more coverage of TTY core functions
>> - Enable each TTY driver to maintain its own KUnit suite
>> - Introduce stress tests and race detection
>> - Extend to include more tests for other tty drivers:
>> - UART drivers: test interrupt handling without hardware
>> - USB serial: validate disconnect and reconnect sequences
>> - PTY drivers: test resize, flow control, and hangups
>> - Virtual consoles: test Unicode and input handling
>> Testing
>> ——-
>> - All patches pass `checkpatch.pl`
>> - Verified on x86_64 with:
>> ./tools/testing/kunit/kunit.py run \
>> –kunitconfig=.kunit/ \
>> –kunitconfig=drivers/tty/tests/.kunitconfig \
>> –arch=x86_64
>> - All tests pass (working around tty_read wrapper in progress)
>> Feedback welcome! :)
>
> Wow, looks good. Has it found something yet :)?
>
Not yet. But I am kinda excited about having fixture based tests which
can be applied to different tty drivers and test things like
race conditions, CVE-class vulnerabilities, edge cases among other things.
One step at a time, I guess :)
>
> FWIW
> Reviewed-by: Jiri Slaby <jirislaby@...nel.org>
>
> thanks,
Thanks for the review!
-Abhinav
Powered by blists - more mailing lists