<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/tools/testing/selftests/net/lib/py/ksft.py, branch master</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=master</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2026-01-14T01:54:00Z</updated>
<entry>
<title>selftests: net: py: teach ksft_pr() multi-line safety</title>
<updated>2026-01-14T01:54:00Z</updated>
<author>
<name>Jakub Kicinski</name>
</author>
<published>2026-01-13T00:07:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b324192e36ecea472077f9c9e32bcac8bbafeed6'/>
<id>urn:sha1:b324192e36ecea472077f9c9e32bcac8bbafeed6</id>
<content type='text'>
Make printing multi-line logs easier by automatically prefixing
each line in ksft_pr(). Make use of this when formatting exceptions.

Reviewed-by: Petr Machata &lt;petrm@nvidia.com&gt;
Link: https://patch.msgid.link/20260113000740.255360-2-kuba@kernel.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>selftests: net: py: ensure defer() is only used within a test case</title>
<updated>2026-01-10T23:11:59Z</updated>
<author>
<name>Jakub Kicinski</name>
</author>
<published>2026-01-08T22:52:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7a1ff3545adeec5dc65c3063c2f084500d6f7014'/>
<id>urn:sha1:7a1ff3545adeec5dc65c3063c2f084500d6f7014</id>
<content type='text'>
I wasted a couple of hours recently after accidentally adding
a defer() from within a function which itself was called as
part of defer(). This leads to an infinite loop of defer().
Make sure this cannot happen and raise a helpful exception.

I understand that the pair of _ksft_defer_arm() calls may
not be the most Pythonic way to implement this, but it's
easy enough to understand.

Reviewed-by: Petr Machata &lt;petrm@nvidia.com&gt;
Link: https://patch.msgid.link/20260108225257.2684238-2-kuba@kernel.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>selftests: net: py: capitalize defer queue and improve import</title>
<updated>2026-01-10T23:11:59Z</updated>
<author>
<name>Jakub Kicinski</name>
</author>
<published>2026-01-08T22:52:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=799a4912eea74c667da1c8167f93bf2d1508a89e'/>
<id>urn:sha1:799a4912eea74c667da1c8167f93bf2d1508a89e</id>
<content type='text'>
Import utils and refer to the global defer queue that way instead
of importing the queue. This will make it possible to assign value
to the global variable. While at it capitalize the name, to comply
with the Python coding style.

Reviewed-by: Petr Machata &lt;petrm@nvidia.com&gt;
Link: https://patch.msgid.link/20260108225257.2684238-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>selftests: net: py: handle interrupt during cleanup</title>
<updated>2025-12-01T20:01:29Z</updated>
<author>
<name>Jakub Kicinski</name>
</author>
<published>2025-11-28T00:48:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4b1639cac04cbc0d19321fc26476ea4f89ff4c8a'/>
<id>urn:sha1:4b1639cac04cbc0d19321fc26476ea4f89ff4c8a</id>
<content type='text'>
Following up on the old discussion [1]. Let the BaseExceptions out of
defer()'ed cleanup. And handle it in the main loop. This allows us to
exit the tests if user hit Ctrl-C during defer().

Link: https://lore.kernel.org/20251119063228.3adfd743@kernel.org # [1]
Reviewed-by: Simon Horman &lt;horms@kernel.org&gt;
Reviewed-by: Petr Machata &lt;petrm@nvidia.com&gt;
Link: https://patch.msgid.link/20251128004846.2602687-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>selftests: net: py: add test variants</title>
<updated>2025-11-21T02:19:29Z</updated>
<author>
<name>Jakub Kicinski</name>
</author>
<published>2025-11-20T02:10:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6ae67f115986734bc24dfed5cee1daafb5351623'/>
<id>urn:sha1:6ae67f115986734bc24dfed5cee1daafb5351623</id>
<content type='text'>
There's a lot of cases where we try to re-run the same code with
different parameters. We currently need to either use a generator
method or create a "main" case implementation which then gets called
by trivial case functions:

  def _test(x, y, z):
     ...

  def case_int():
     _test(1, 2, 3)

  def case_str():
     _test('a', 'b', 'c')

Add support for variants, similar to kselftests_harness.h and
a lot of other frameworks. Variants can be added as decorator
to test functions:

  @ksft_variants([(1, 2, 3), ('a', 'b', 'c')])
  def case(x, y, z):
     ...

ksft_run() will auto-generate case names:
  case.1_2_3
  case.a_b_c

Because the names may not always be pretty (and to avoid forcing
classes to implement case-friendly __str__()) add a wrapper class
KsftNamedVariant which lets the user specify the name for the variant.

Note that ksft_run's args are still supported. ksft_run splices args
and variant params together.

Reviewed-by: Willem de Bruijn &lt;willemb@google.com&gt;
Reviewed-by: Petr Machata &lt;petrm@nvidia.com&gt;
Link: https://patch.msgid.link/20251120021024.2944527-4-kuba@kernel.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>selftests: net: py: extract the case generation logic</title>
<updated>2025-11-21T02:19:29Z</updated>
<author>
<name>Jakub Kicinski</name>
</author>
<published>2025-11-20T02:10:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=80970e0fc07ecb1fbaefeb2c912aa2b0c04ed557'/>
<id>urn:sha1:80970e0fc07ecb1fbaefeb2c912aa2b0c04ed557</id>
<content type='text'>
In preparation for adding test variants move the test case
collection logic to a dedicated function. New helper returns

 (function, args, name, )

tuples. The main test loop can simply run them, not much
logic or discernment needed.

Reviewed-by: Petr Machata &lt;petrm@nvidia.com&gt;
Reviewed-by: Willem de Bruijn &lt;willemb@google.com&gt;
Link: https://patch.msgid.link/20251120021024.2944527-3-kuba@kernel.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>selftests: net: py: coding style improvements</title>
<updated>2025-11-21T02:19:28Z</updated>
<author>
<name>Jakub Kicinski</name>
</author>
<published>2025-11-20T02:10:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5cb7b71b76f1235ee2064c30922864f24e31a076'/>
<id>urn:sha1:5cb7b71b76f1235ee2064c30922864f24e31a076</id>
<content type='text'>
We're about to add more features here and finding new issues with old
ones in place is hard. Address ruff checks:
 - bare exceptions
 - f-string with no params
 - unused import

We need to use BaseException when handling defer(), as Petr points out.
This retains the old behavior of ignoring SIGTERM while running cleanups.

Reviewed-by: Willem de Bruijn &lt;willemb@google.com&gt;
Reviewed-by: Petr Machata &lt;petrm@nvidia.com&gt;
Link: https://patch.msgid.link/20251120021024.2944527-2-kuba@kernel.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>selftests: drv-net: psp: add tests for destroying devices</title>
<updated>2025-09-30T13:17:22Z</updated>
<author>
<name>Jakub Kicinski</name>
</author>
<published>2025-09-27T22:54:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b3820e0e6c1251689318dcc831b7a07403fd923c'/>
<id>urn:sha1:b3820e0e6c1251689318dcc831b7a07403fd923c</id>
<content type='text'>
Add tests for making sure device can disappear while associations
exist. This is netdevsim-only since destroying real devices is
more tricky.

Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: Daniel Zahka &lt;daniel.zahka@gmail.com&gt;
Link: https://patch.msgid.link/20250927225420.1443468-9-kuba@kernel.org
Reviewed-by: Willem de Bruijn &lt;willemb@google.com&gt;
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
</content>
</entry>
<entry>
<title>selftests: drv-net: psp: add association tests</title>
<updated>2025-09-30T13:17:22Z</updated>
<author>
<name>Jakub Kicinski</name>
</author>
<published>2025-09-27T22:54:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=81b89085319b2b20426d8c9468d8c508dcefdaaf'/>
<id>urn:sha1:81b89085319b2b20426d8c9468d8c508dcefdaaf</id>
<content type='text'>
Add tests for exercising PSP associations for TCP sockets.

Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: Daniel Zahka &lt;daniel.zahka@gmail.com&gt;
Link: https://patch.msgid.link/20250927225420.1443468-6-kuba@kernel.org
Reviewed-by: Willem de Bruijn &lt;willemb@google.com&gt;
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
</content>
</entry>
<entry>
<title>selftests: net: prevent Python from buffering the output</title>
<updated>2025-07-17T23:27:38Z</updated>
<author>
<name>Jakub Kicinski</name>
</author>
<published>2025-07-16T20:57:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=797f080c463d9866ca8a4bcc8cf0f512dec634e6'/>
<id>urn:sha1:797f080c463d9866ca8a4bcc8cf0f512dec634e6</id>
<content type='text'>
Make sure Python doesn't buffer the output, otherwise for some
tests we may see false positive timeouts in NIPA. NIPA thinks that
a machine has hung if the test doesn't print anything for 3min.
This is also nice to heave for running the tests manually,
especially in vng.

Reviewed-by: Petr Machata &lt;petrm@nvidia.com&gt;
Link: https://patch.msgid.link/20250716205712.1787325-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
</feed>
