llvm-project/lld/test/ELF/error-handling-script-linux.test
Fangrui Song 12d4c89e88
[ELF,test] Improve error-handling-script-linux.test
* Use split-file
* Remove -o /dev/null
* Avoid `{ list; }` compound command not supported by the lit internal shell (#102382)
* Don't test "ld.lld" before "error:" as per convention

Pull Request: https://github.com/llvm/llvm-project/pull/105454
2024-08-20 19:21:13 -07:00

57 lines
2.2 KiB
Plaintext

# REQUIRES: x86
# UNSUPPORTED: system-windows
# RUN: rm -rf %t && split-file %s %t && cd %t
# RUN: chmod +x a.sh
# RUN: llvm-mc -filetype=obj -triple=x86_64 /dev/null -o 0.o
# RUN: not ld.lld -lidontexist --error-handling-script=%t/a.sh 0.o 2>&1 |\
# RUN: FileCheck --check-prefix=CHECK-LIB %s --match-full-lines --strict-whitespace
# RUN: not ld.lld -lidontexist --error-handling-script=./notexist 0.o 2>&1 |\
# RUN: FileCheck --check-prefix=CHECK-SCRIPT-DOES-NOT-EXIST %s
# RUN: llvm-mc -filetype=obj -triple=x86_64 1.s -o 1.o
# RUN: not ld.lld --error-handling-script=./a.sh 1.o 2>&1 |\
# RUN: FileCheck --check-prefix=CHECK-SYM-C %s
# RUN: llvm-mc -filetype=obj -triple=x86_64 2.s -o 2.o
# RUN: not ld.lld --demangle --error-handling-script=./a.sh 2.o 2>&1 |\
# RUN: FileCheck --check-prefix=CHECK-SYM-CXX-DEMANGLE %s
# RUN: not ld.lld --no-demangle --error-handling-script=./a.sh 2.o 2>&1 |\
# RUN: FileCheck --check-prefix=CHECK-SYM-CXX-NO-DEMANGLE %s
# RUN: llvm-mc -filetype=obj -triple=x86_64 3.s -o 3.o
# RUN: not ld.lld --error-handling-script=%t/a.sh 3.o 2>&1 |\
# RUN: FileCheck --check-prefix=CHECK-SYM-C-CORRECTION %s
# CHECK-LIB:script: info: called with missing-lib idontexist
# CHECK-LIB-NEXT:{{.*}}error: unable to find library -lidontexist
# CHECK-SCRIPT-DOES-NOT-EXIST: error: unable to find library -lidontexist
# CHECK-SCRIPT-DOES-NOT-EXIST-NEXT: error: error handling script './notexist' failed to execute
# CHECK-SYM-C: script: info: called with undefined-symbol a
# CHECK-SYM-C-NEXT: error: undefined symbol: a
# CHECK-SYM-CXX-DEMANGLE: script: info: called with undefined-symbol _Z1av
# CHECK-SYM-CXX-DEMANGLE-NEXT: error: undefined symbol: a()
# CHECK-SYM-CXX-NO-DEMANGLE: script: info: called with undefined-symbol _Z1av
# CHECK-SYM-CXX-NO-DEMANGLE-NEXT: error: undefined symbol: _Z1av
# CHECK-SYM-C-CORRECTION: script: info: called with undefined-symbol a
# CHECK-SYM-C-CORRECTION-NEXT: error: undefined symbol: a
# CHECK-SYM-C-CORRECTION-NEXT: >>> referenced by 3.o:
# CHECK-SYM-C-CORRECTION-NEXT: >>> did you mean: a_
#--- 1.s
movl a(%rip), %eax
#--- 2.s
movl _Z1av(%rip), %eax
#--- 3.s
a_: ret
movl a(%rip), %eax
#--- a.sh
#!/bin/sh
echo "script: info: called with $*"