llvm / llvm/llvm-project

[llvm-lit] Internal shell `env` `PATH` overrides should disable builtins

Open
#183,857 2 comments 0 reactions 0 assignees View on GitHub
tools:llvm-lit
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

https://github.com/llvm/llvm-project/pull/181258 included tests that caused breakages whenever the internal shell was disabled. This is due to the pattern `RUN: env PATH="" not <...>`. Using the actual binaries the internal shell is intended to replace, emptying `PATH` would cause `not` to become inaccessible. Thus, so long as we intend to preserve PASS/FAIL agreement between internal and external shells, `env` would need to inhibit builtin activation for its contents whenever `PATH` is set. Or, perhaps something cleverer than that; I'm not familiar with how the internal shell is implemented.

CC: @ilovepi @boomanaiden154

Contributor guide

Open the contributing guide

Research direction

Inspect the llvm-lit internal-shell implementation and the tests added by PR 181258; reproduce the env PATH="" not <...> cases with internal and external shells. Done means those cases no longer break when the internal shell is disabled and their PASS/FAIL results agree.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
compilers, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.