Skip to content

Commit e9b7983

Browse files
authored
[llvm-lit] Fix Unhashable TypeError when using lit's internal shell (#101590)
When using the lit internal shell with the command: ``` LIT_USE_INTERNAL_SHELL=1 ninja check-compiler-rt ``` The follow error is encountered: ``` File "TestRunner.py", line 770, in _executeShCmd inproc_builtin = inproc_builtins.get(args[0], None) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: unhashable type: 'GlobItem' ``` This error is in a compiler-rt file: ``` TestCases/Linux/long-object-path.cpp ``` This error occurs because `args[0]` is of type `GlobItem`, which is not hashable, leading to a `TypeError` when it is passed in `inproc_builtins.get()`. To resolve this issue, I have updated the implementation to ensure that `args[0]` is hashable before it is used in `inproc_builtins`. fixes: #102389 [link to RFC](https://discourse.llvm.org/t/rfc-enabling-the-lit-internal-shell-by-default/80179)
1 parent 4bac8fd commit e9b7983

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

llvm/utils/lit/lit/TestRunner.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -767,6 +767,10 @@ def _executeShCmd(cmd, shenv, results, timeoutHelper):
767767
# echo-appending to a file.
768768
# FIXME: Standardize on the builtin echo implementation. We can use a
769769
# temporary file to sidestep blocking pipe write issues.
770+
771+
# Ensure args[0] is hashable.
772+
args[0] = expand_glob(args[0], cmd_shenv.cwd)[0]
773+
770774
inproc_builtin = inproc_builtins.get(args[0], None)
771775
if inproc_builtin and (args[0] != "echo" or len(cmd.commands) == 1):
772776
# env calling an in-process builtin is useless, so we take the safe

0 commit comments

Comments
 (0)