summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CMakeLists.txt1
-rw-r--r--llvm/test/tools/llvm-elfabi/binary-read-arch.test15
-rw-r--r--llvm/test/tools/llvm-elfabi/fail-file-open.test5
-rw-r--r--llvm/test/tools/llvm-elfabi/read-unsupported-file.test7
-rw-r--r--llvm/test/tools/llvm-elfabi/replace-soname-tbe.test16
-rw-r--r--llvm/test/tools/llvm-elfabi/tbe-emits-current-version.test13
-rw-r--r--llvm/test/tools/llvm-elfabi/tbe-read-basic.test25
7 files changed, 82 insertions, 0 deletions
diff --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt
index b39086a4e9d..d2b2b8d1164 100644
--- a/llvm/test/CMakeLists.txt
+++ b/llvm/test/CMakeLists.txt
@@ -61,6 +61,7 @@ set(LLVM_TEST_DEPENDS
dsymutil
llvm-dwarfdump
llvm-dwp
+ llvm-elfabi
llvm-exegesis
llvm-extract
llvm-isel-fuzzer
diff --git a/llvm/test/tools/llvm-elfabi/binary-read-arch.test b/llvm/test/tools/llvm-elfabi/binary-read-arch.test
new file mode 100644
index 00000000000..ecb2fb81446
--- /dev/null
+++ b/llvm/test/tools/llvm-elfabi/binary-read-arch.test
@@ -0,0 +1,15 @@
+# RUN: yaml2obj %s > %t
+# RUN: llvm-elfabi %t --emit-tbe=- | FileCheck %s
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_DYN
+ Machine: EM_X86_64
+
+# CHECK: --- !tapi-tbe
+# CHECK-NEXT: TbeVersion: {{[1-9]\d*\.(0|([1-9]\d*))}}
+# CHECK-NEXT: Arch: x86_64
+# CHECK-NEXT: Symbols: {}
+# CHECK-NEXT: ...
diff --git a/llvm/test/tools/llvm-elfabi/fail-file-open.test b/llvm/test/tools/llvm-elfabi/fail-file-open.test
new file mode 100644
index 00000000000..b4019af9feb
--- /dev/null
+++ b/llvm/test/tools/llvm-elfabi/fail-file-open.test
@@ -0,0 +1,5 @@
+# RUN: not llvm-elfabi %s.NotAFileInTestingDir --emit-tbe=%t 2>&1 | FileCheck %s
+
+This file will not be read. An invalid file path is fed to llvm-elfabi.
+
+# CHECK: error: Could not open `{{.*}}.NotAFileInTestingDir`
diff --git a/llvm/test/tools/llvm-elfabi/read-unsupported-file.test b/llvm/test/tools/llvm-elfabi/read-unsupported-file.test
new file mode 100644
index 00000000000..4ebe1bcc6d4
--- /dev/null
+++ b/llvm/test/tools/llvm-elfabi/read-unsupported-file.test
@@ -0,0 +1,7 @@
+# RUN: not llvm-elfabi %s --emit-tbe=%t 2>&1 | FileCheck %s
+
+This is just some text that cannot be read by llvm-elfabi.
+
+# CHECK: The file was not recognized as a valid object file
+# CHECK: YAML failed reading as TBE
+# CHECK: No file readers succeeded reading `{{.*}}` (unsupported/malformed file?)
diff --git a/llvm/test/tools/llvm-elfabi/replace-soname-tbe.test b/llvm/test/tools/llvm-elfabi/replace-soname-tbe.test
new file mode 100644
index 00000000000..71d50a83b83
--- /dev/null
+++ b/llvm/test/tools/llvm-elfabi/replace-soname-tbe.test
@@ -0,0 +1,16 @@
+# RUN: yaml2obj %s > %t
+# RUN: llvm-elfabi %t --emit-tbe=- --soname=best.so | FileCheck %s
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_DYN
+ Machine: EM_AARCH64
+
+# CHECK: --- !tapi-tbe
+# CHECK-NEXT: TbeVersion: {{[1-9]\d*\.(0|([1-9]\d*))}}
+# CHECK-NEXT: SoName: best.so
+# CHECK-NEXT: Arch: AArch64
+# CHECK-NEXT: Symbols: {}
+# CHECK-NEXT: ...
diff --git a/llvm/test/tools/llvm-elfabi/tbe-emits-current-version.test b/llvm/test/tools/llvm-elfabi/tbe-emits-current-version.test
new file mode 100644
index 00000000000..12a5476175a
--- /dev/null
+++ b/llvm/test/tools/llvm-elfabi/tbe-emits-current-version.test
@@ -0,0 +1,13 @@
+# RUN: llvm-elfabi %s --emit-tbe=- | FileCheck %s
+
+--- !tapi-tbe
+TbeVersion: 1.0
+Arch: AArch64
+Symbols: {}
+...
+
+# As the tbe reader/writer is updated, update this check to ensure --emit-tbe
+# uses the latest tbe writer by default.
+
+# CHECK: --- !tapi-tbe
+# CHECK-NEXT: TbeVersion: 1.0
diff --git a/llvm/test/tools/llvm-elfabi/tbe-read-basic.test b/llvm/test/tools/llvm-elfabi/tbe-read-basic.test
new file mode 100644
index 00000000000..1599f5a891e
--- /dev/null
+++ b/llvm/test/tools/llvm-elfabi/tbe-read-basic.test
@@ -0,0 +1,25 @@
+# RUN: llvm-elfabi %s --emit-tbe=- | FileCheck %s
+
+--- !tapi-tbe
+SoName: somelib.so
+TbeVersion: 1.0
+Arch: x86_64
+Symbols:
+ foo: { Type: Func }
+ bar: { Type: Object, Size: 42 }
+ baz: { Type: Object, Size: 8 }
+ not: { Type: Object, Undefined: true, Size: 128 }
+ nor: { Type: Func, Undefined: true }
+...
+
+# CHECK: --- !tapi-tbe
+# CHECK-NEXT: TbeVersion: {{[1-9]\d*\.(0|([1-9]\d*))}}
+# CHECK-NEXT: SoName: somelib.so
+# CHECK-NEXT: Arch: x86_64
+# CHECK-NEXT: Symbols:
+# CHECK-NEXT: bar: { Type: Object, Size: 42 }
+# CHECK-NEXT: baz: { Type: Object, Size: 8 }
+# CHECK-NEXT: foo: { Type: Func }
+# CHECK-NEXT: nor: { Type: Func, Undefined: true }
+# CHECK-NEXT: not: { Type: Object, Size: 128, Undefined: true }
+# CHECK-NEXT: ...
OpenPOWER on IntegriCloud