Skip to content

[ELF,test] Improve error-handling-script-linux.test #105454

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

MaskRay
Copy link
Member

@MaskRay MaskRay commented Aug 21, 2024

Created using spr 1.3.5-bogner
@llvmbot
Copy link
Member

llvmbot commented Aug 21, 2024

@llvm/pr-subscribers-lld

@llvm/pr-subscribers-lld-elf

Author: Fangrui Song (MaskRay)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/105454.diff

1 Files Affected:

  • (modified) lld/test/ELF/error-handling-script-linux.test (+31-21)
diff --git a/lld/test/ELF/error-handling-script-linux.test b/lld/test/ELF/error-handling-script-linux.test
old mode 100755
new mode 100644
index 54e1b29ab236a6..f7a00758dcd30b
--- a/lld/test/ELF/error-handling-script-linux.test
+++ b/lld/test/ELF/error-handling-script-linux.test
@@ -1,46 +1,56 @@
-#!/bin/sh
 # REQUIRES: x86
 # UNSUPPORTED: system-windows
 
-# RUN: llvm-mc -filetype=obj -triple=x86_64 /dev/null -o %t0.o
-# RUN: not ld.lld -o /dev/null -lidontexist --error-handling-script=%s %t0.o 2>&1 |\
+# 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
-# RUN: not ld.lld -o /dev/null -lidontexist --error-handling-script=%s.nope %t0.o 2>&1 |\
-# RUN:   FileCheck --check-prefix=CHECK-SCRIPT-DOES-NOT-EXIST -DFILE=%s.nope %s
+# RUN: not ld.lld -lidontexist --error-handling-script=./notexist 0.o 2>&1 |\
+# RUN:   FileCheck --check-prefix=CHECK-SCRIPT-DOES-NOT-EXIST %s
 
-# RUN: echo 'bar: movl a(%rip), %eax' | llvm-mc -filetype=obj -triple=x86_64 - -o %t1.o
-# RUN: not ld.lld -o /dev/null --error-handling-script=%s %t1.o 2>&1 |\
+# 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: echo 'bar: movl _Z1av(%rip), %eax' | llvm-mc -filetype=obj -triple=x86_64 - -o %t2.o
-# RUN: not ld.lld -o /dev/null --demangle --error-handling-script=%s %t2.o 2>&1 |\
+# 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 -o /dev/null --no-demangle --error-handling-script=%s %t2.o 2>&1 |\
+# 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: { echo 'a_: ret'; echo 'bar: movl a(%rip), %eax' ; } | llvm-mc -filetype=obj -triple=x86_64 - -o %t3.o
-# RUN: not ld.lld -o /dev/null --error-handling-script=%s %t3.o 2>&1 |\
-# RUN:   FileCheck --check-prefix=CHECK-SYM-C-CORRECTION -DOBJ=%t3.o %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: ld.lld: error: unable to find library -lidontexist
+# CHECK-LIB-NEXT: error: unable to find library -lidontexist
 
-# CHECK-SCRIPT-DOES-NOT-EXIST:      ld.lld: error: unable to find library -lidontexist
-# CHECK-SCRIPT-DOES-NOT-EXIST-NEXT: ld.lld: error: error handling script '[[FILE]]' failed to execute
+# 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: ld.lld: error: 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: ld.lld: error: undefined symbol: a()
+# 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: ld.lld: error: 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: ld.lld: error: undefined symbol: a
-# CHECK-SYM-C-CORRECTION-NEXT: >>> referenced by [[OBJ]]:
+# 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
+bar: movl a(%rip), %eax
+#--- 2.s
+bar: movl _Z1av(%rip), %eax
+#--- 3.s
+a_: ret
+bar: movl a(%rip), %eax
 
+#--- a.sh
+#!/bin/sh
 echo "script: info: called with $*"

@MaskRay MaskRay added the skip-precommit-approval PR for CI feedback, not intended for review label Aug 21, 2024
.
Created using spr 1.3.5-bogner
@MaskRay MaskRay merged commit 12d4c89 into main Aug 21, 2024
4 of 6 checks passed
@MaskRay MaskRay deleted the users/MaskRay/spr/elftest-improve-error-handling-script-linuxtest branch August 21, 2024 02:21
cjdb pushed a commit to cjdb/llvm-project that referenced this pull request Aug 23, 2024
* Use split-file
* Remove -o /dev/null
* Avoid `{ list; }` compound command not supported by the lit internal shell (llvm#102382)
* Don't test "ld.lld" before "error:" as per convention

Pull Request: llvm#105454
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lld:ELF lld skip-precommit-approval PR for CI feedback, not intended for review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants