summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-objcopy
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/tools/llvm-objcopy')
-rw-r--r--llvm/test/tools/llvm-objcopy/abs-symbol.test36
-rw-r--r--llvm/test/tools/llvm-objcopy/common-symbol.test84
-rw-r--r--llvm/test/tools/llvm-objcopy/section-index-unsupported.test15
3 files changed, 135 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-objcopy/abs-symbol.test b/llvm/test/tools/llvm-objcopy/abs-symbol.test
new file mode 100644
index 00000000000..fb261ce341a
--- /dev/null
+++ b/llvm/test/tools/llvm-objcopy/abs-symbol.test
@@ -0,0 +1,36 @@
+# RUN: yaml2obj %s > %t
+# RUN: llvm-objcopy %t %t2
+# RUN: llvm-readobj -symbols %t2 | FileCheck %s
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_EXEC
+ Machine: EM_X86_64
+Symbols:
+ Global:
+ - Name: test
+ Index: SHN_ABS
+ Value: 0x1234
+
+#CHECK: Symbols [
+#CHECK-NEXT: Symbol {
+#CHECK-NEXT: Name:
+#CHECK-NEXT: Value: 0x0
+#CHECK-NEXT: Size: 0
+#CHECK-NEXT: Binding: Local (0x0)
+#CHECK-NEXT: Type: None (0x0)
+#CHECK-NEXT: Other: 0
+#CHECK-NEXT: Section: Undefined (0x0)
+#CHECK-NEXT: }
+#CHECK-NEXT: Symbol {
+#CHECK-NEXT: Name: test
+#CHECK-NEXT: Value: 0x1234
+#CHECK-NEXT: Size: 0
+#CHECK-NEXT: Binding: Global (0x1)
+#CHECK-NEXT: Type: None (0x0)
+#CHECK-NEXT: Other: 0
+#CHECK-NEXT: Section: Absolute (0xFFF1)
+#CHECK-NEXT: }
+#CHECK-NEXT:]
diff --git a/llvm/test/tools/llvm-objcopy/common-symbol.test b/llvm/test/tools/llvm-objcopy/common-symbol.test
new file mode 100644
index 00000000000..919726d6598
--- /dev/null
+++ b/llvm/test/tools/llvm-objcopy/common-symbol.test
@@ -0,0 +1,84 @@
+# RUN: yaml2obj %s > %t
+# RUN: llvm-objcopy %t %t2
+# RUN: llvm-readobj -symbols %t2 | FileCheck %s
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_EXEC
+ Machine: EM_X86_64
+Symbols:
+ Global:
+ - Name: test
+ Index: SHN_COMMON
+ Value: 0x1234
+ - Name: test2
+ Index: SHN_HEXAGON_SCOMMON
+ Value: 0x1235
+ - Name: test3
+ Index: SHN_HEXAGON_SCOMMON_2
+ Value: 0x1236
+ - Name: test4
+ Index: SHN_HEXAGON_SCOMMON_4
+ Value: 0x1237
+ - Name: test5
+ Index: SHN_HEXAGON_SCOMMON_8
+ Value: 0x1238
+
+#CHECK: Symbols [
+#CHECK-NEXT: Symbol {
+#CHECK-NEXT: Name:
+#CHECK-NEXT: Value: 0x0
+#CHECK-NEXT: Size: 0
+#CHECK-NEXT: Binding: Local (0x0)
+#CHECK-NEXT: Type: None (0x0)
+#CHECK-NEXT: Other: 0
+#CHECK-NEXT: Section: Undefined (0x0)
+#CHECK-NEXT: }
+#CHECK-NEXT: Symbol {
+#CHECK-NEXT: Name: test
+#CHECK-NEXT: Value: 0x1234
+#CHECK-NEXT: Size: 0
+#CHECK-NEXT: Binding: Global (0x1)
+#CHECK-NEXT: Type: None (0x0)
+#CHECK-NEXT: Other: 0
+#CHECK-NEXT: Section: Common (0xFFF2)
+#CHECK-NEXT: }
+#CHECK-NEXT: Symbol {
+#CHECK-NEXT: Name: test2
+#CHECK-NEXT: Value: 0x1235
+#CHECK-NEXT: Size: 0
+#CHECK-NEXT: Binding: Global (0x1)
+#CHECK-NEXT: Type: None (0x0)
+#CHECK-NEXT: Other: 0
+#CHECK-NEXT: Section: Processor Specific (0xFF00)
+#CHECK-NEXT: }
+#CHECK-NEXT: Symbol {
+#CHECK-NEXT: Name: test3
+#CHECK-NEXT: Value: 0x1236
+#CHECK-NEXT: Size: 0
+#CHECK-NEXT: Binding: Global (0x1)
+#CHECK-NEXT: Type: None (0x0)
+#CHECK-NEXT: Other: 0
+#CHECK-NEXT: Section: Processor Specific (0xFF02)
+#CHECK-NEXT: }
+#CHECK-NEXT: Symbol {
+#CHECK-NEXT: Name: test4
+#CHECK-NEXT: Value: 0x1237
+#CHECK-NEXT: Size: 0
+#CHECK-NEXT: Binding: Global (0x1)
+#CHECK-NEXT: Type: None (0x0)
+#CHECK-NEXT: Other: 0
+#CHECK-NEXT: Section: Processor Specific (0xFF03)
+#CHECK-NEXT: }
+#CHECK-NEXT: Symbol {
+#CHECK-NEXT: Name: test5
+#CHECK-NEXT: Value: 0x1238
+#CHECK-NEXT: Size: 0
+#CHECK-NEXT: Binding: Global (0x1)
+#CHECK-NEXT: Type: None (0x0)
+#CHECK-NEXT: Other: 0
+#CHECK-NEXT: Section: Processor Specific (0xFF04)
+#CHECK-NEXT: }
+#CHECK-NEXT:]
diff --git a/llvm/test/tools/llvm-objcopy/section-index-unsupported.test b/llvm/test/tools/llvm-objcopy/section-index-unsupported.test
new file mode 100644
index 00000000000..f2d32b6dd5e
--- /dev/null
+++ b/llvm/test/tools/llvm-objcopy/section-index-unsupported.test
@@ -0,0 +1,15 @@
+# RUN: yaml2obj %s > %t
+# RUN: not llvm-objcopy %t %t2 2>&1 >/dev/null | FileCheck %s
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_EXEC
+ Machine: EM_X86_64
+Symbols:
+ Global:
+ - Name: test
+ Index: 0xff05
+
+# CHECK: [[_:.*]] Symbol 'test' has unsupported value greater than or equal to SHN_LORESERVE: 65285
OpenPOWER on IntegriCloud