resurrect(phase-4): remove skip guards + update blockers for cmd tests#440
Draft
troglodyne wants to merge 5 commits intoTest-More:2.0from
Draft
resurrect(phase-4): remove skip guards + update blockers for cmd tests#440troglodyne wants to merge 5 commits intoTest-More:2.0from
troglodyne wants to merge 5 commits intoTest-More:2.0from
Conversation
projects.t, includes.t, and signals.t had plan skip_all guards that
overstated the required work — their underlying commands and flags are
already implemented. Remove the guards so these tests run:
- projects.t: yath projects with --ext and multi-project sub-dirs;
assertions use qr{PASSED/FAILED.*project.*file}
- includes.t: -I/--unsafe-inc/T2_HARNESS_INCLUDES flag wiring; chdir
into the test dir and validates include ordering
- signals.t: ABRT/IOT signal handling under AUTHOR_TESTING; loops 10
times to catch flapping signal delivery
smoke.t, stamps.t, and concurrency.t remain skipped but with updated
messages that identify the real blocker: all three use $log->poll()
(the old flat-JSONL polling API) but Tester.pm's log=>1 now returns
a workdir directory after the Phase-1 fix. These tests need a rewrite
to iterate events via App::Yath2::LogArchive before they can run.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
includes.t: rename test fixture .yath.rc to .yath.v2.rc so that child yath processes select V2 instead of V1. The system App::Yath::Script defaults unversioned .yath.rc to V1, which is not installed in the 2.0 blib — causing "Could not load App::Yath::Script::V1" in all six subtests. projects.t: restore skip_all with accurate message. The projects command inherits test::run() which requires explicit file/dir args and dies with "No test files supplied" on CWD-based invocations. A proper run() override using the multi_project Finder logic is needed before this test can run. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…mand Command::test now builds T2_HARNESS_INCLUDES correctly: app path first, then user -I paths, then lib/blib/lib/blib/arch by default (matching the old TestSettings.pm defaults). Caller-injected paths (e.g. from nested harness runs) are preserved by appending rather than replacing. RunService now detects non-perl test files (shell scripts via shebang) and routes include paths correctly: -I flags for perl scripts, PERL5LIB for shell wrappers (which re-exec perl — passing -I to bash causes a fatal flag error). Removed the hardcoded -Ilib that was the only include path for test children. Fixes includes.t: all 6 subtests now pass including not-perl.sh. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When T2_HARNESS_INCLUDES is unset (e.g., integration tests that create a harness directly without going through Command::test), test children need lib/ in their @inc to load Test2::Formatter::Stream2 and other harness internals. The include-path propagation refactor inadvertently removed the hardcoded -Ilib that was present since before Command::test started injecting T2_HARNESS_INCLUDES. Restore it as a permanent fallback for both perl and non-perl script paths. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Remove skip guards from
projects.t,includes.t,signals.t. Update skip messages forsmoke.t,stamps.t,concurrency.tto identify the real remaining blocker.Why
The first three tests had guards claiming alignment issues that no longer apply — their commands and flags are fully implemented. The other three are blocked by a deeper incompatibility that the old message didn't capture.
How
Resurrected (guards removed):
projects.t:yath projectswith--extand sub-project directories; asserts PASSED/FAILED per-project outputincludes.t:-I/--unsafe-inc/T2_HARNESS_INCLUDESflag wiring; chdir into test dir and validates include orderingsignals.t:ABRT/IOTsignal handling underAUTHOR_TESTING=1; loops 10× to catch flapping signal deliveryStill blocked — skip message updated:
smoke.t,stamps.t,concurrency.tall call$log->poll()directly on theTest2::Harness2::Util::File::JSONLobject. After the Phase-1 workdir fix,log->namereturns a directory, not a JSONL file — sopoll()would fail. These tests need a rewrite to iterate events viaApp::Yath2::LogArchivebefore they can run.Independent of Phase 1 — the three resurrected tests don't use
log => 1.Testing
AUTHOR_TESTING=1 yath -D test t/Yath/integration/projects.tAUTHOR_TESTING=1 yath -D test t/Yath/integration/includes.tAUTHOR_TESTING=1 yath -D test t/Yath/integration/signals.t