Fix ScheduleRunCommandTest failure on Windows by using OS-specific success command #57621
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.
The test
test_command_with_no_explicit_return_does_not_trigger_eventintests/Integration/Console/Scheduling/ScheduleRunCommandTest.phpfails on Windows environments. This is because the shell command'true'is not natively available 9955 on Windows (it's a Unix-specific command that always exits with code 0). When executed on Windows, it results in a non-zero exit code, unexpectedly triggering theScheduledTaskFailedevent, which causes the assertionEvent::assertNotDispatched(ScheduledTaskFailed::class)to fail.This leads to the following error:
Proposed Fix:
This PR introduces an OS-specific check using
PHP_OS_FAMILYto select the appropriate success command:'cmd /c exit 0'(which reliably exits with code 0).'true'.This ensures the test behaves consistently across platforms without triggering the failure event on Windows.
Testing:
ScheduledTaskFailedevent.Related Issue:
This fix improves cross-platform compatibility for the test suite. Let me know if any adjustments are needed!