summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj/wasm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/tools/llvm-readobj/wasm')
-rw-r--r--llvm/test/tools/llvm-readobj/wasm/hex-dump.test8
-rw-r--r--llvm/test/tools/llvm-readobj/wasm/relocations.test30
-rw-r--r--llvm/test/tools/llvm-readobj/wasm/sections.test50
-rw-r--r--llvm/test/tools/llvm-readobj/wasm/symbols.test51
4 files changed, 139 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/wasm/hex-dump.test b/llvm/test/tools/llvm-readobj/wasm/hex-dump.test
new file mode 100644
index 00000000000..7a47b65e7a7
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/wasm/hex-dump.test
@@ -0,0 +1,8 @@
+## Test that --hex-dump/-x can be used to display the contents
+## of the indicated section as hexadecimal bytes.
+
+# RUN: llvm-readobj -x 1 %p/Inputs/trivial.obj.wasm | FileCheck %s
+# RUN: llvm-readobj --hex-dump 1 %p/Inputs/trivial.obj.wasm | FileCheck %s
+
+# CHECK: 0x00000000 04600001 7f60017f 017f6000 0060017f .`...`....`..`..
+# CHECK: 0x00000010 00 .
diff --git a/llvm/test/tools/llvm-readobj/wasm/relocations.test b/llvm/test/tools/llvm-readobj/wasm/relocations.test
new file mode 100644
index 00000000000..b2455938b34
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/wasm/relocations.test
@@ -0,0 +1,30 @@
+## Check how we print relocations.
+
+# RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.wasm \
+# RUN: | FileCheck %s --check-prefix WASM
+
+# WASM: Relocations [
+# WASM-NEXT: Section (4) CODE {
+# WASM-NEXT: Relocation {
+# WASM-NEXT: Type: R_WASM_MEMORY_ADDR_SLEB (4)
+# WASM-NEXT: Offset: 0x4
+# WASM-NEXT: Symbol: .L.str
+# WASM-NEXT: Addend: 0
+# WASM-NEXT: }
+# WASM-NEXT: Relocation {
+# WASM-NEXT: Type: R_WASM_FUNCTION_INDEX_LEB (0)
+# WASM-NEXT: Offset: 0xA
+# WASM-NEXT: Symbol: puts
+# WASM-NEXT: }
+# WASM-NEXT: Relocation {
+# WASM-NEXT: Type: R_WASM_FUNCTION_INDEX_LEB (0)
+# WASM-NEXT: Offset: 0x11
+# WASM-NEXT: Symbol: .LSomeOtherFunction_bitcast
+# WASM-NEXT: }
+# WASM-NEXT: Relocation {
+# WASM-NEXT: Type: R_WASM_FUNCTION_INDEX_LEB (0)
+# WASM-NEXT: Offset: 0x1E
+# WASM-NEXT: Symbol: SomeOtherFunction
+# WASM-NEXT: }
+# WASM-NEXT: }
+# WASM-NEXT: ]
diff --git a/llvm/test/tools/llvm-readobj/wasm/sections.test b/llvm/test/tools/llvm-readobj/wasm/sections.test
new file mode 100644
index 00000000000..8b8a526295e
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/wasm/sections.test
@@ -0,0 +1,50 @@
+## Check how we print sections.
+
+# RUN: llvm-readobj --sections %p/Inputs/trivial.obj.wasm | FileCheck %s
+
+# CHECK: Sections [
+# CHECK-NEXT: Section {
+# CHECK-NEXT: Type: TYPE (0x1)
+# CHECK-NEXT: Size: 17
+# CHECK-NEXT: Offset: 8
+# CHECK-NEXT: }
+# CHECK-NEXT: Section {
+# CHECK-NEXT: Type: IMPORT (0x2)
+# CHECK-NEXT: Size: 93
+# CHECK-NEXT: Offset: 31
+# CHECK-NEXT: }
+# CHECK-NEXT: Section {
+# CHECK-NEXT: Type: FUNCTION (0x3)
+# CHECK-NEXT: Size: 3
+# CHECK-NEXT: Offset: 130
+# CHECK-NEXT: }
+# CHECK-NEXT: Section {
+# CHECK-NEXT: Type: CODE (0xA)
+# CHECK-NEXT: Size: 36
+# CHECK-NEXT: Offset: 139
+# CHECK-NEXT: }
+# CHECK-NEXT: Section {
+# CHECK-NEXT: Type: DATA (0xB)
+# CHECK-NEXT: Size: 19
+# CHECK-NEXT: Offset: 181
+# CHECK-NEXT: Segments [
+# CHECK-NEXT: Segment {
+# CHECK-NEXT: Name: .rodata..L.str
+# CHECK-NEXT: Size: 13
+# CHECK-NEXT: Offset: 0
+# CHECK-NEXT: }
+# CHECK-NEXT: ]
+# CHECK-NEXT: }
+# CHECK-NEXT: Section {
+# CHECK-NEXT: Type: CUSTOM (0x0)
+# CHECK-NEXT: Size: 89
+# CHECK-NEXT: Offset: 206
+# CHECK-NEXT: Name: linking
+# CHECK-NEXT: }
+# CHECK-NEXT: Section {
+# CHECK-NEXT: Type: CUSTOM (0x0)
+# CHECK-NEXT: Size: 15
+# CHECK-NEXT: Offset: 309
+# CHECK-NEXT: Name: reloc.CODE
+# CHECK-NEXT: }
+# CHECK-NEXT: ]
diff --git a/llvm/test/tools/llvm-readobj/wasm/symbols.test b/llvm/test/tools/llvm-readobj/wasm/symbols.test
new file mode 100644
index 00000000000..c55285344db
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/wasm/symbols.test
@@ -0,0 +1,51 @@
+## This is the test for the --symbols option and its aliases.
+
+# RUN: llvm-readobj --symbols %p/Inputs/trivial.obj.wasm | FileCheck %s
+
+# CHECK: Symbols [
+# CHECK-NEXT: Symbol {
+# CHECK-NEXT: Name: main
+# CHECK-NEXT: Type: FUNCTION (0x0)
+# CHECK-NEXT: Flags [ (0x0)
+# CHECK-NEXT: ]
+# CHECK-NEXT: ElementIndex: 0x2
+# CHECK-NEXT: }
+# CHECK-NEXT: Symbol {
+# CHECK-NEXT: Name: .L.str
+# CHECK-NEXT: Type: DATA (0x1)
+# CHECK-NEXT: Flags [ (0x2)
+# CHECK-NEXT: BINDING_LOCAL (0x2)
+# CHECK-NEXT: ]
+# CHECK-NEXT: Offset: 0x0
+# CHECK-NEXT: Segment: 0x0
+# CHECK-NEXT: Size: 0xD
+# CHECK-NEXT: }
+# CHECK-NEXT: Symbol {
+# CHECK-NEXT: Name: puts
+# CHECK-NEXT: Type: FUNCTION (0x0)
+# CHECK-NEXT: Flags [ (0x10)
+# CHECK-NEXT: UNDEFINED (0x10)
+# CHECK-NEXT: ]
+# CHECK-NEXT: ImportName: puts
+# CHECK-NEXT: ImportModule: env
+# CHECK-NEXT: ElementIndex: 0x0
+# CHECK-NEXT: }
+# CHECK-NEXT: Symbol {
+# CHECK-NEXT: Name: .LSomeOtherFunction_bitcast
+# CHECK-NEXT: Type: FUNCTION (0x0)
+# CHECK-NEXT: Flags [ (0x2)
+# CHECK-NEXT: BINDING_LOCAL (0x2)
+# CHECK-NEXT: ]
+# CHECK-NEXT: ElementIndex: 0x3
+# CHECK-NEXT: }
+# CHECK-NEXT: Symbol {
+# CHECK-NEXT: Name: SomeOtherFunction
+# CHECK-NEXT: Type: FUNCTION (0x0)
+# CHECK-NEXT: Flags [ (0x10)
+# CHECK-NEXT: UNDEFINED (0x10)
+# CHECK-NEXT: ]
+# CHECK-NEXT: ImportName: SomeOtherFunction
+# CHECK-NEXT: ImportModule: env
+# CHECK-NEXT: ElementIndex: 0x1
+# CHECK-NEXT: }
+# CHECK-NEXT: ]
OpenPOWER on IntegriCloud