Context to readers who are unfamiliar (I was in this category before I read some code of lit to try reviewing some patches):
- By default, Windows use lit’s internal shell and non-Windows platforms use their external shells. The internal shell uses
$as a command prompt (underCommand Output) while external shells may use+ LIT_USE_INTERNAL_SHELL=1 path/to/llvm-lit ...uses the internal shell. Another way islit.formats.ShTest(execute_external=False)REQUIRES: shelldisables tests that use the internal shell. https://github.com/llvm/llvm-project/blob/0f8bab8d590ed0cb5402f72009b32cbad115f013/llvm/utils/lit/lit/llvm/config.py#L57
% rg 'REQUIRES:.*shell' -l | wc -l
165
I am in favor of the the formatting change (⚙ D156954 [lit] Improve test output from lit's internal shell), even if it is specific to the internal shell.
I am also in favor of ⚙ D154984 [lit] Drop "Script:", make -v and -a imply -vv , as path/to/llvm-lit -v a.test now tells the failed command. Previously I always use -vv to tell the failed command (Script: output lists all commands; when there are many, it’s unclear which one failed).