Author: Fangrui Song Date: 2024-07-29T10:06:37+02:00 New Revision: 28e2baaeed86fd330d1e0fcacefaf6221685be23
URL: https://github.com/llvm/llvm-project/commit/28e2baaeed86fd330d1e0fcacefaf6221685be23 DIFF: https://github.com/llvm/llvm-project/commit/28e2baaeed86fd330d1e0fcacefaf6221685be23.diff LOG: [ELF,test] Improve negative linker script tests (cherry picked from commit 8644a2aa0f3540c69464f56b3d538e888b6cbdcb) Added: lld/test/ELF/linkerscript/diag.test lld/test/ELF/linkerscript/invalid.test lld/test/ELF/linkerscript/unquoted.test Modified: Removed: lld/test/ELF/invalid-linkerscript.test lld/test/ELF/linkerscript/diag1.test lld/test/ELF/linkerscript/diag2.test lld/test/ELF/linkerscript/diag3.test lld/test/ELF/linkerscript/diag4.test lld/test/ELF/linkerscript/diag5.test lld/test/ELF/linkerscript/diag6.test ################################################################################ diff --git a/lld/test/ELF/linkerscript/diag.test b/lld/test/ELF/linkerscript/diag.test new file mode 100644 index 0000000000000..fbc24659a5311 --- /dev/null +++ b/lld/test/ELF/linkerscript/diag.test @@ -0,0 +1,49 @@ +# REQUIRES: x86 +# RUN: rm -rf %t && split-file %s %t && cd %t +# RUN: llvm-mc -filetype=obj -triple=x86_64 /dev/null -o 0.o + +#--- 1.lds +SECTIONS { + .text + { *(.text) } + .keep : { *(.keep) } /* + comment line 1 + comment line 2 */ + .temp : { *(.temp) } +} + +# RUN: not ld.lld -shared 0.o -T 1.lds 2>&1 | FileCheck %s --check-prefix=CHECK1 --match-full-lines --strict-whitespace +# CHECK1:{{.*}}:2: malformed number: + +# CHECK1-NEXT:>>> .text + { *(.text) } +# CHECK1-NEXT:>>> ^ + +#--- 2.lds + +UNKNOWN_TAG { + .text : { *(.text) } + .keep : { *(.keep) } + .temp : { *(.temp) } +} + +# RUN: not ld.lld -shared 0.o -T 2.lds 2>&1 | FileCheck %s --check-prefix=CHECK2 --match-full-lines --strict-whitespace +# CHECK2:{{.*}}:2: unknown directive: UNKNOWN_TAG +# CHECK2-NEXT:>>> UNKNOWN_TAG { +# CHECK2-NEXT:>>> ^ + +#--- 3.lds +SECTIONS { + .text : { *(.text) } + .keep : { *(.keep) } + boom ^temp : { *(.temp) } +} +#--- 3a.lds +INCLUDE "3.lds" +#--- 3b.lds +foo = 3; +INCLUDE "3a.lds" + +# RUN: not ld.lld -shared 0.o -T 3.lds 2>&1 | FileCheck %s --check-prefix=CHECK3 --match-full-lines --strict-whitespace +# RUN: not ld.lld -shared 0.o -T 3a.lds 2>&1 | FileCheck %s --check-prefix=CHECK3 --match-full-lines --strict-whitespace +# RUN: not ld.lld -shared 0.o -T 3b.lds 2>&1 | FileCheck %s --check-prefix=CHECK3 --match-full-lines --strict-whitespace +# CHECK3:{{.*}}3.lds:4: malformed number: ^ +# CHECK3-NEXT:>>> boom ^temp : { *(.temp) } +# CHECK3-NEXT:>>> ^ diff --git a/lld/test/ELF/linkerscript/diag1.test b/lld/test/ELF/linkerscript/diag1.test deleted file mode 100644 index 829bc5a1bffaf..0000000000000 --- a/lld/test/ELF/linkerscript/diag1.test +++ /dev/null @@ -1,15 +0,0 @@ -# REQUIRES: x86 -# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o -# RUN: not ld.lld -shared %t.o -o /dev/null --script %s 2>&1 | FileCheck -strict-whitespace %s - -SECTIONS { - .text + { *(.text) } - .keep : { *(.keep) } /* - comment line 1 - comment line 2 */ - .temp : { *(.temp) } -} - -CHECK: 6: malformed number: + -CHECK-NEXT: >>> .text + { *(.text) } -CHECK-NEXT: >>> ^ diff --git a/lld/test/ELF/linkerscript/diag2.test b/lld/test/ELF/linkerscript/diag2.test deleted file mode 100644 index aeb623dbb7f4b..0000000000000 --- a/lld/test/ELF/linkerscript/diag2.test +++ /dev/null @@ -1,13 +0,0 @@ -# REQUIRES: x86 -# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o -# RUN: not ld.lld -shared %t.o -o /dev/null --script %s 2>&1 | FileCheck -strict-whitespace %s - -UNKNOWN_TAG { - .text : { *(.text) } - .keep : { *(.keep) } - .temp : { *(.temp) } -} - -CHECK: 5: unknown directive: UNKNOWN_TAG -CHECK-NEXT: >>> UNKNOWN_TAG { -CHECK-NEXT: >>> ^ diff --git a/lld/test/ELF/linkerscript/diag3.test b/lld/test/ELF/linkerscript/diag3.test deleted file mode 100644 index 1df8d601db016..0000000000000 --- a/lld/test/ELF/linkerscript/diag3.test +++ /dev/null @@ -1,13 +0,0 @@ -# REQUIRES: x86 -# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o -# RUN: not ld.lld -shared %t.o -o /dev/null --script %s 2>&1 | FileCheck -strict-whitespace %s - -SECTIONS { - .text : { *(.text) } - .keep : { *(.keep) } - boom ^temp : { *(.temp) } -} - -# CHECK: 8: malformed number: ^ -# CHECK-NEXT: >>> boom ^temp : { *(.temp) } -# CHECK-NEXT: >>> ^ diff --git a/lld/test/ELF/linkerscript/diag4.test b/lld/test/ELF/linkerscript/diag4.test deleted file mode 100644 index d93a69a95c61d..0000000000000 --- a/lld/test/ELF/linkerscript/diag4.test +++ /dev/null @@ -1,14 +0,0 @@ -# REQUIRES: x86 -# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o -# RUN: echo "INCLUDE \"%s\"" > %t.script -# RUN: not ld.lld -shared %t.o -o /dev/null --script %t.script 2>&1 | FileCheck -strict-whitespace %s - -SECTIONS { - .text : { *(.text) } - .keep : { *(.keep) } - boom ^temp : { *(.temp) } -} - -# CHECK: 9: malformed number: ^{{$}} -# CHECK-NEXT: >>> boom ^temp : { *(.temp) } -# CHECK-NEXT: >>> ^ diff --git a/lld/test/ELF/linkerscript/diag5.test b/lld/test/ELF/linkerscript/diag5.test deleted file mode 100644 index 9a2304baa4413..0000000000000 --- a/lld/test/ELF/linkerscript/diag5.test +++ /dev/null @@ -1,14 +0,0 @@ -# REQUIRES: x86 -# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o -# RUN: echo "INCLUDE \"%s\"" > %t.script -# RUN: not ld.lld -shared %t.o -o /dev/null --script %t.script 2>&1 | FileCheck -strict-whitespace %s - -SECTIONS { - .text : { *(.text) } - .keep : { *(.keep) } - boom ^temp : { *(.temp) } -} - -# CHECK: 9: malformed number: ^ -# CHECK-NEXT: >>> boom ^temp : { *(.temp) } -# CHECK-NEXT: >>> ^ diff --git a/lld/test/ELF/linkerscript/diag6.test b/lld/test/ELF/linkerscript/diag6.test deleted file mode 100644 index 0ec0400040b54..0000000000000 --- a/lld/test/ELF/linkerscript/diag6.test +++ /dev/null @@ -1,7 +0,0 @@ -# REQUIRES: x86 -# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux /dev/null -o %t.o -# RUN: not ld.lld -shared %t.o -o /dev/null --script %s 2>&1 | FileCheck %s - -SECTIONS /* - -CHECK: error: {{.*}}diag6.test:1: unclosed comment in a linker script diff --git a/lld/test/ELF/invalid-linkerscript.test b/lld/test/ELF/linkerscript/invalid.test similarity index 100% rename from lld/test/ELF/invalid-linkerscript.test rename to lld/test/ELF/linkerscript/invalid.test diff --git a/lld/test/ELF/linkerscript/unquoted.test b/lld/test/ELF/linkerscript/unquoted.test new file mode 100644 index 0000000000000..7dca75fe09ab1 --- /dev/null +++ b/lld/test/ELF/linkerscript/unquoted.test @@ -0,0 +1,26 @@ +# REQUIRES: x86 +# RUN: rm -rf %t && split-file %s %t && cd %t +# RUN: llvm-mc -filetype=obj -triple=x86_64 /dev/null -o 0.o + +#--- empty.lds +#--- 1.lds + +SECTIONS /* +#--- 1a.lds +foo = 3; +INCLUDE "empty.lds" +INCLUDE "1.lds" + +# RUN: not ld.lld -shared 0.o -T 1.lds 2>&1 | FileCheck %s --check-prefix=CHECK1 --match-full-lines --strict-whitespace +# RUN: not ld.lld -shared 0.o -T 1a.lds 2>&1 | FileCheck %s --check-prefix=CHECK1A --match-full-lines --strict-whitespace +# CHECK1:{{.*}}error: 1.lds:1: unclosed comment in a linker script +# CHECK1A:{{.*}}error: 1a.lds:3: unclosed comment in a linker script +#CHECK1A-NEXT:>>> INCLUDE "1.lds" +#CHECK1A-NEXT:>>> ^ + +#--- 2.lds +INCLUDE "empty.lds" +" +# RUN: not ld.lld -shared 0.o -T 2.lds 2>&1 | FileCheck %s --check-prefix=CHECK2 --match-full-lines --strict-whitespace +# CHECK2:{{.*}}error: 2.lds:2: unclosed quote +# CHECK2-NOT:{{.}} _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits