Skip to content

fix: make stderr filter test locale-independent (GH #303)#354

Open
toddr-bot wants to merge 1 commit intoabw:masterfrom
toddr-bot:koan.toddr.bot/fix-locale-filter-tests
Open

fix: make stderr filter test locale-independent (GH #303)#354
toddr-bot wants to merge 1 commit intoabw:masterfrom
toddr-bot:koan.toddr.bot/fix-locale-filter-tests

Conversation

@toddr-bot
Copy link
Copy Markdown
Contributor

What

The stderr filter test in t/filter.t no longer fails on systems with locale warnings.

Why

On Windows with locales like Japanese_Japan.932, Perl emits a warning to STDERR
during startup/processing. The test tied STDERR to a variable and accumulated
everything — including these warnings — then compared against the expected
filter output. The accumulated warnings caused a mismatch. Fixes #303.

How

Changed the stderr template variable from a simple getter to a read-and-clear
accessor. Each [% stderr %] call now drains the buffer, so assertions see
only what was written since the last read — not accumulated noise from earlier
tests or Perl internals.

Testing

All 164 filter tests pass. The change is backward-compatible since no test
reads [% stderr %] more than once per test block.

🤖 Generated with Claude Code

The stderr template variable accumulated ALL STDERR output since the
tie started. On systems with locale warnings (e.g., Japanese_Japan.932
on Windows), Perl emits warnings that pollute the captured STDERR,
causing the test to fail.

Change the stderr accessor to read-and-clear so each test assertion
sees only what was written since the last read, not accumulated noise.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@atoomic atoomic marked this pull request as ready for review March 27, 2026 01:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Template-Toolkit-3.101: t/filter.t seems to contain locale-dependent tests.

2 participants