Skip to content

Commit 12d4c89

Browse files
authored
[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: #105454
1 parent 04ebae9 commit 12d4c89

File tree

2 files changed

+36
-26
lines changed

2 files changed

+36
-26
lines changed

lld/test/ELF/error-handling-script-linux.test

100755100644
+33-23
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,56 @@
1-
#!/bin/sh
21
# REQUIRES: x86
32
# UNSUPPORTED: system-windows
43

5-
# RUN: llvm-mc -filetype=obj -triple=x86_64 /dev/null -o %t0.o
6-
# RUN: not ld.lld -o /dev/null -lidontexist --error-handling-script=%s %t0.o 2>&1 |\
7-
# RUN: FileCheck --check-prefix=CHECK-LIB %s
8-
# RUN: not ld.lld -o /dev/null -lidontexist --error-handling-script=%s.nope %t0.o 2>&1 |\
9-
# RUN: FileCheck --check-prefix=CHECK-SCRIPT-DOES-NOT-EXIST -DFILE=%s.nope %s
4+
# RUN: rm -rf %t && split-file %s %t && cd %t
5+
# RUN: chmod +x a.sh
6+
# RUN: llvm-mc -filetype=obj -triple=x86_64 /dev/null -o 0.o
7+
# RUN: not ld.lld -lidontexist --error-handling-script=%t/a.sh 0.o 2>&1 |\
8+
# RUN: FileCheck --check-prefix=CHECK-LIB %s --match-full-lines --strict-whitespace
9+
# RUN: not ld.lld -lidontexist --error-handling-script=./notexist 0.o 2>&1 |\
10+
# RUN: FileCheck --check-prefix=CHECK-SCRIPT-DOES-NOT-EXIST %s
1011

11-
# RUN: echo 'bar: movl a(%rip), %eax' | llvm-mc -filetype=obj -triple=x86_64 - -o %t1.o
12-
# RUN: not ld.lld -o /dev/null --error-handling-script=%s %t1.o 2>&1 |\
12+
# RUN: llvm-mc -filetype=obj -triple=x86_64 1.s -o 1.o
13+
# RUN: not ld.lld --error-handling-script=./a.sh 1.o 2>&1 |\
1314
# RUN: FileCheck --check-prefix=CHECK-SYM-C %s
1415

15-
# RUN: echo 'bar: movl _Z1av(%rip), %eax' | llvm-mc -filetype=obj -triple=x86_64 - -o %t2.o
16-
# RUN: not ld.lld -o /dev/null --demangle --error-handling-script=%s %t2.o 2>&1 |\
16+
# RUN: llvm-mc -filetype=obj -triple=x86_64 2.s -o 2.o
17+
# RUN: not ld.lld --demangle --error-handling-script=./a.sh 2.o 2>&1 |\
1718
# RUN: FileCheck --check-prefix=CHECK-SYM-CXX-DEMANGLE %s
18-
# RUN: not ld.lld -o /dev/null --no-demangle --error-handling-script=%s %t2.o 2>&1 |\
19+
# RUN: not ld.lld --no-demangle --error-handling-script=./a.sh 2.o 2>&1 |\
1920
# RUN: FileCheck --check-prefix=CHECK-SYM-CXX-NO-DEMANGLE %s
2021

21-
# RUN: { echo 'a_: ret'; echo 'bar: movl a(%rip), %eax' ; } | llvm-mc -filetype=obj -triple=x86_64 - -o %t3.o
22-
# RUN: not ld.lld -o /dev/null --error-handling-script=%s %t3.o 2>&1 |\
23-
# RUN: FileCheck --check-prefix=CHECK-SYM-C-CORRECTION -DOBJ=%t3.o %s
22+
# RUN: llvm-mc -filetype=obj -triple=x86_64 3.s -o 3.o
23+
# RUN: not ld.lld --error-handling-script=%t/a.sh 3.o 2>&1 |\
24+
# RUN: FileCheck --check-prefix=CHECK-SYM-C-CORRECTION %s
2425

25-
# CHECK-LIB: script: info: called with missing-lib idontexist
26-
# CHECK-LIB-NEXT: ld.lld: error: unable to find library -lidontexist
26+
# CHECK-LIB:script: info: called with missing-lib idontexist
27+
# CHECK-LIB-NEXT:{{.*}}error: unable to find library -lidontexist
2728

28-
# CHECK-SCRIPT-DOES-NOT-EXIST: ld.lld: error: unable to find library -lidontexist
29-
# CHECK-SCRIPT-DOES-NOT-EXIST-NEXT: ld.lld: error: error handling script '[[FILE]]' failed to execute
29+
# CHECK-SCRIPT-DOES-NOT-EXIST: error: unable to find library -lidontexist
30+
# CHECK-SCRIPT-DOES-NOT-EXIST-NEXT: error: error handling script './notexist' failed to execute
3031

3132
# CHECK-SYM-C: script: info: called with undefined-symbol a
32-
# CHECK-SYM-C-NEXT: ld.lld: error: undefined symbol: a
33+
# CHECK-SYM-C-NEXT: error: undefined symbol: a
3334

3435
# CHECK-SYM-CXX-DEMANGLE: script: info: called with undefined-symbol _Z1av
35-
# CHECK-SYM-CXX-DEMANGLE-NEXT: ld.lld: error: undefined symbol: a()
36+
# CHECK-SYM-CXX-DEMANGLE-NEXT: error: undefined symbol: a()
3637

3738
# CHECK-SYM-CXX-NO-DEMANGLE: script: info: called with undefined-symbol _Z1av
38-
# CHECK-SYM-CXX-NO-DEMANGLE-NEXT: ld.lld: error: undefined symbol: _Z1av
39+
# CHECK-SYM-CXX-NO-DEMANGLE-NEXT: error: undefined symbol: _Z1av
3940

4041
# CHECK-SYM-C-CORRECTION: script: info: called with undefined-symbol a
41-
# CHECK-SYM-C-CORRECTION-NEXT: ld.lld: error: undefined symbol: a
42-
# CHECK-SYM-C-CORRECTION-NEXT: >>> referenced by [[OBJ]]:
42+
# CHECK-SYM-C-CORRECTION-NEXT: error: undefined symbol: a
43+
# CHECK-SYM-C-CORRECTION-NEXT: >>> referenced by 3.o:
4344
# CHECK-SYM-C-CORRECTION-NEXT: >>> did you mean: a_
4445

46+
#--- 1.s
47+
movl a(%rip), %eax
48+
#--- 2.s
49+
movl _Z1av(%rip), %eax
50+
#--- 3.s
51+
a_: ret
52+
movl a(%rip), %eax
4553

54+
#--- a.sh
55+
#!/bin/sh
4656
echo "script: info: called with $*"

lld/test/ELF/error-handling-script-windows.bat

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
:: RUN: FileCheck --check-prefix=CHECK-SCRIPT-DOES-NOT-EXIST -DFILE=%s.nope %s
77
::
88
:: CHECK-LIB: script: info: called with missing-lib idontexist
9-
:: CHECK-LIB-NEXT: ld.lld: error: unable to find library -lidontexist
9+
:: CHECK-LIB-NEXT: error: unable to find library -lidontexist
1010

11-
:: CHECK-SCRIPT-DOES-NOT-EXIST: ld.lld: error: unable to find library -lidontexist
12-
:: CHECK-SCRIPT-DOES-NOT-EXIST-NEXT: ld.lld: error: error handling script '[[FILE]]' failed to execute
11+
:: CHECK-SCRIPT-DOES-NOT-EXIST: error: unable to find library -lidontexist
12+
:: CHECK-SCRIPT-DOES-NOT-EXIST-NEXT: error: error handling script '[[FILE]]' failed to execute
1313

1414
@echo off
1515
echo "script: info: called with %*"

0 commit comments

Comments
 (0)