summaryrefslogtreecommitdiff
path: root/llvm/test/tools/llvm-objcopy/ELF/add-note.test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/tools/llvm-objcopy/ELF/add-note.test')
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/add-note.test36
1 files changed, 36 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-objcopy/ELF/add-note.test b/llvm/test/tools/llvm-objcopy/ELF/add-note.test
new file mode 100644
index 00000000000..b4562307846
--- /dev/null
+++ b/llvm/test/tools/llvm-objcopy/ELF/add-note.test
@@ -0,0 +1,36 @@
+# Verify that --add-section can be used to add a note section which is
+# successfully interpreted by tools that read notes.
+
+# Add [namesz, descsz, type, name, desc] for a build id.
+# RUN: echo -e -n "\x04\x00\x00\x00" > %t-note.bin
+# RUN: echo -e -n "\x10\x00\x00\x00" >> %t-note.bin
+# RUN: echo -e -n "\x03\x00\x00\x00" >> %t-note.bin
+# RUN: echo -e -n "GNU\x00" >> %t-note.bin
+# RUN: echo -e -n "\x00\x01\x02\x03" >> %t-note.bin
+# RUN: echo -e -n "\x04\x05\x06\x07" >> %t-note.bin
+# RUN: echo -e -n "\x08\x09\x0a\x0b" >> %t-note.bin
+# RUN: echo -e -n "\x0c\x0d\x0e\x0f" >> %t-note.bin
+
+# RUN: yaml2obj %s > %t.o
+# RUN: llvm-objcopy --add-section=.note.gnu.build-id=%t-note.bin %t.o %t-with-note.o
+# RUN: llvm-readobj --notes %t-with-note.o | FileCheck %s
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+
+# CHECK: Notes [
+# CHECK-NEXT: NoteSection {
+# CHECK-NEXT: Offset:
+# CHECK-NEXT: Size:
+# CHECK-NEXT: Note {
+# CHECK-NEXT: Owner: GNU
+# CHECK-NEXT: Data size: 0x10
+# CHECK-NEXT: Type: NT_GNU_BUILD_ID
+# CHECK-NEXT: Build ID: 000102030405060708090a0b0c0d0e0f
+# CHECK-NEXT: }
+# CHECK-NEXT: }
+# CHECK-NEXT: ]