Commit Graph
15 Commits
Author SHA1 Message Date
J. Nick Koston b718ca079f Name the unreadable report's file, tighten the number and region checks
The corrupt-report arm names its file with wording distinct from the
backstop, so tests can tell them apart (and now do, plus the non-UTF-8
half). _is_number rejects bool and non-finite floats, and the RAM
region selects by key presence, so a falsy-but-present DRAM value is
malformed rather than absent -- the size report is the one input
nothing upstream validates, so these stay hardened. The not-app_size
comment carries the zero case it also swallows.
2026-08-23 16:17:05 -05:00
J. Nick Koston 5447239258 Name the missing-table state for the backstop
Still the backstop's business, but a clean message beats a bare
FileNotFoundError for the one impossible state most likely to appear
in a report.
2026-08-23 16:11:32 -05:00
J. Nick Koston b8f736ac86 Let the backstop own the impossible table states
A build cannot succeed with a missing or unreadable partition table
(gen_esp32part consumes it first), so the is_file check and the OSError
arm also defended dead paths; the reachable contract keeps its named
handling (None from the caller, no qualifying row) and everything else
is the backstop's business.
2026-08-23 16:09:22 -05:00
J. Nick Koston f4651dcc57 Remove the partition-table arms gen_esp32part makes unreachable
A malformed table cannot reach a successful build: IDF's own parser
rejects blank/junk/zero size cells and validates the layout before rc
is 0, so the blank-cell raise, the row-context re-raise, the broken-
table warning arm, and the size-0 backstop defended dead paths. Only
the read race (OSError) stays named; anything else is the backstop's
business. Their tests go with them; a decimal size cell keeps the
plain-int parse covered.
2026-08-23 16:05:31 -05:00
J. Nick Koston 7595baebd2 Warn only on corrupt reports, carry the traceback, name the file
Structural corruption at any level (containers or non-numeric leaves)
warns as malformed; a well-shaped report simply lacking DRAM/DIRAM is a
variant difference and stays at debug, so healthy builds on other
targets cannot train users to ignore the warning channel. The backstop
warning carries exc_info so a field report is actionable without -v,
and the image_size warning names its file. Tests pin each message
distinctly.
2026-08-23 15:49:41 -05:00
J. Nick Koston aa200c1051 Name malformed shapes distinctly, widen the broken-table net, pin the quiet path
A structurally corrupt memory_types warns as malformed instead of
posing as a variant without the region; csv.Error joins the
broken-table warning arm; the blanket's visible record carries the
exception type. The malformed-cell test parametrizes over blank and
non-blank junk, the missing-report test pins its warning, and the
quiet path asserts its debug record exists with no warning records.
2026-08-23 15:31:34 -05:00
J. Nick Koston 0e9a08c7c1 Let the Flash-line helper own both sides of its bar
_flash_line validates image_size and returns the formatted line, so
nothing after a print can raise and the line buffer, the image_size
double-lookup, and the blanket's one known trigger all dissolve; the
blanket keeps its charter (a test now drives it with a patched raise).
_find_app_partition_size returns None for legitimate absence and
reserves raises for a present-but-broken table, dissolving the
_MalformedPartitionRow subclass and the except-ordering it relied on;
run_compile passes the table path unconditionally so the module owns
the whole policy. The is_file pre-check folds into the OSError arm,
the dead or-{} is gone, and the tests share _dram_size_data and
_write_partitions instead of repeating payload literals.
2026-08-23 15:24:13 -05:00
J. Nick Koston 2f86ab222a Cover the suffix parse, quiet-skip arms, and corrupt size report 2026-08-23 15:17:32 -05:00
J. Nick Koston c43003d0c1 Warn on the build's own broken artifacts, buffer the report, pin the blank-cell path
Skips caused by the build's own outputs (missing/unparsable/misshapen
size report, absent RAM region, broken-but-present partition table via
a typed _MalformedPartitionRow) log at warning; only the legitimately
quiet cases (no table given, no qualifying partition) stay at debug.
The report is buffered so a late failure prints nothing instead of half
a report. The blank-cell test now asserts the logged row and path, so
reverting the ValueError fails it (mutation-checked), and the nested-
shape tests assert the named guard fired rather than the blanket.
2026-08-23 15:12:59 -05:00
J. Nick Koston 2982d75fd2 Warn when the summary is skipped, name the file and row, pin the blanket test on output
The blanket backstop and the zero-partition skip log at warning naming
their input, so a regression or broken table is visible where the
missing line is observed, with the traceback at debug. The blank-cell
ValueError carries the partition and csv path, and the blanket test
asserts no half-formed bar prints instead of a vacuous Traceback check.
2026-08-23 14:04:42 -05:00
J. Nick Koston 6a5a45dd73 Trim comments and docstrings 2026-08-22 23:57:02 -05:00
J. Nick Koston dca2e6dafd Blanket the summary against nested shapes, reject blank size cells by name, correct the CI-effect comment 2026-08-22 23:41:19 -05:00
J. Nick Koston b27a0227a1 Exercise the OSError arm deterministically; annotate the fixtures 2026-08-22 23:33:22 -05:00
J. Nick Koston 6193a39358 [esp-idf] Never let the size summary fail a linked build 2026-08-22 23:26:34 -05:00
Jonathan Swoboda 1d0ddfac5d [espidf] Print RAM summary on ESP32-S3 / unified-DIRAM variants (#16494) 2026-05-19 12:57:18 -04:00