PowerShell alias calling non-existent command returns 0 exit code #1801
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.
Adds failing test for #1800.
After digging into this there are three important Powershell automatic variables to take note of.
$LASTEXITCODE
$?
$ERROR
The first two,
$LASTEXITCODE
and$?
are used in the code currently.However, after testing the issue in PowerShell directly, it seems that the issue stems from an issue stemming from PowerShell itself.
When using aliases in PowerShell, if the command being called is not found, and error is printed to stderr, but neither the
$LASTEXITCODE
or$?
variables are filled out correct to represent this.For example, in PowerShell I ran:
Then I ran the following that does the same thing but using aliases:
Interestingly, it seems like the
$ERROR
automatic variable, correctly captures the error message in both cases.Not sure what the implications would be of additionally relying on the presence of an error in the
$ERROR
variable, but seems to be something that is slipping through the cracks right now. Perhaps there's a better fix for this?