From: Trevor Woerner <twoerner@gmail.com>
To: yocto-patches@lists.yoctoproject.org
Subject: [wic][PATCH 0/5] ksparser: four argparse-type fixes plus unit coverage
Date: Wed, 15 Jul 2026 18:32:21 -0400 [thread overview]
Message-ID: <20260715223226.3371498-1-twoerner@gmail.com> (raw)
This series continues the standalone unit-test work, this time over the
custom argparse types in ksparser.py: sizetype(), overheadtype(), and
systemidtype(). It keeps the shape the suite settled on: each source fix
is its own standalone commit, and the green test module lands last, so
the suite passes at every commit.
Four fixes come first, each independent of the others:
- sizetype() accepted a leading minus, so "-1M" returned -1024 and
"-5" returned -5120. A negative size is meaningless for every
consumer (--size, --fixed-size, --offset, --extra-*-space, the empty
source plugin's size=/bs=); reject it.
- overheadtype()'s below-1.0 error path did "...message..." % arg with
no %-placeholder, so every out-of-range value crashed with an opaque
TypeError instead of the intended ArgumentTypeError. Add the missing
placeholder.
- overheadtype() let float('nan') and float('inf') slip past the < 1.0
guard, which then multiplied the rootfs size by nan/inf downstream.
Reject any non-finite factor up front.
- systemidtype() converted with int(arg, 16), which also accepts a
bare "82" (hex 130) and a signed "+0x82", contradicting its
documented "hex between 0x1 and 0xFF" contract. Require an explicit
0x prefix.
The final commit adds tests/unit/test_ksparser_types.py, covering the
three types' accepted forms, boundaries, and rejected inputs, and
locking in the four fixes. Backing any fix out turns the matching test
red. The suite is green at every commit and ruff-clean.
Trevor Woerner (5):
ksparser: reject negative sizes in sizetype()
ksparser: fix crash on out-of-range overhead factor
ksparser: reject non-finite overhead factors
ksparser: require an explicit 0x prefix for --system-id
tests/unit/test_ksparser_types: cover ksparser's argparse types
src/wic/ksparser.py | 15 +-
tests/unit/test_ksparser_types.py | 226 ++++++++++++++++++++++++++++++
2 files changed, 236 insertions(+), 5 deletions(-)
create mode 100644 tests/unit/test_ksparser_types.py
--
2.50.0.173.g8b6f19ccfc3a
next reply other threads:[~2026-07-15 22:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-15 22:32 Trevor Woerner [this message]
2026-07-15 22:32 ` [wic][PATCH 1/5] ksparser: reject negative sizes in sizetype() Trevor Woerner
2026-07-15 22:32 ` [wic][PATCH 2/5] ksparser: fix crash on out-of-range overhead factor Trevor Woerner
2026-07-15 22:32 ` [wic][PATCH 3/5] ksparser: reject non-finite overhead factors Trevor Woerner
2026-07-15 22:32 ` [wic][PATCH 4/5] ksparser: require an explicit 0x prefix for --system-id Trevor Woerner
2026-07-15 22:32 ` [wic][PATCH 5/5] tests/unit/test_ksparser_types: cover ksparser's argparse types Trevor Woerner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260715223226.3371498-1-twoerner@gmail.com \
--to=twoerner@gmail.com \
--cc=yocto-patches@lists.yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.