xref: /llvm-project/llvm/test/tools/llvm-objcopy/ELF/no-strip-all.test (revision 7f7dac712694ed661b2e774573b9ee1f99208882)
1e4a89a1bSJames Henderson## --no-strip-all disables the --strip-all llvm-strip switch.
2e4a89a1bSJames Henderson## It also disables the default --strip-all behaviour.
3e4a89a1bSJames Henderson
4e4a89a1bSJames Henderson# RUN: yaml2obj %s -o %t.o
5e4a89a1bSJames Henderson
6*7f7dac71SZarko Todorovski## Base case: no switches, should strip. Used as a basic correctness check for later test cases.
7e4a89a1bSJames Henderson# RUN: llvm-strip %t.o -o %t1.o
8e4a89a1bSJames Henderson# RUN: llvm-readobj --file-headers --sections %t1.o | FileCheck %s --check-prefix=ALL
9e4a89a1bSJames Henderson
10e4a89a1bSJames Henderson## --no-strip-all alone disables stripping.
11e4a89a1bSJames Henderson# RUN: llvm-strip --no-strip-all %t.o -o %t2.o
12e4a89a1bSJames Henderson# RUN: llvm-readobj --file-headers --sections %t2.o | FileCheck %s --check-prefix=NO-STRIP
13e4a89a1bSJames Henderson
14e4a89a1bSJames Henderson## --no-strip-all wins if last.
15e4a89a1bSJames Henderson# RUN: llvm-strip --strip-all --no-strip-all %t.o -o %t3.o
16e4a89a1bSJames Henderson# RUN: cmp %t2.o %t3.o
17e4a89a1bSJames Henderson
18e4a89a1bSJames Henderson## --strip-all wins if last.
19e4a89a1bSJames Henderson# RUN: llvm-strip --no-strip-all --strip-all %t.o -o %t4.o
20e4a89a1bSJames Henderson# RUN: cmp %t1.o %t4.o
21e4a89a1bSJames Henderson
22e4a89a1bSJames Henderson## The last instance of --no-strip-all is used in the comparison.
23e4a89a1bSJames Henderson# RUN: llvm-strip --no-strip-all --strip-all --no-strip-all %t.o -o %t5.o
24e4a89a1bSJames Henderson# RUN: cmp %t2.o %t5.o
25e4a89a1bSJames Henderson
26e4a89a1bSJames Henderson## The last instance of --strip-all is used in the comparison.
27e4a89a1bSJames Henderson# RUN: llvm-strip --strip-all --no-strip-all --strip-all %t.o -o %t6.o
28e4a89a1bSJames Henderson# RUN: cmp %t1.o %t6.o
29e4a89a1bSJames Henderson
30e4a89a1bSJames Henderson--- !ELF
31e4a89a1bSJames HendersonFileHeader:
32e4a89a1bSJames Henderson  Class:   ELFCLASS64
33e4a89a1bSJames Henderson  Data:    ELFDATA2LSB
34e4a89a1bSJames Henderson  Type:    ET_REL
35e4a89a1bSJames Henderson  Machine: EM_X86_64
36e4a89a1bSJames HendersonSections:
37e4a89a1bSJames Henderson  - Name:  .alloc
38e4a89a1bSJames Henderson    Type:  SHT_PROGBITS
39e4a89a1bSJames Henderson    Flags: [ SHF_ALLOC ]
402779987dSGeorge RimarSymbols: []
41e4a89a1bSJames Henderson
42e4a89a1bSJames Henderson# ALL: SectionHeaderCount: 3
43e4a89a1bSJames Henderson# ALL: Name: .alloc
44e4a89a1bSJames Henderson# ALL: Name: .shstrtab
45e4a89a1bSJames Henderson
46e4a89a1bSJames Henderson# NO-STRIP: SectionHeaderCount: 5
47e4a89a1bSJames Henderson# NO-STRIP: Name: .alloc
48e4a89a1bSJames Henderson# NO-STRIP: Name: .symtab
49e4a89a1bSJames Henderson# NO-STRIP: Name: .strtab
50e4a89a1bSJames Henderson# NO-STRIP: Name: .shstrtab
51