xref: /llvm-project/llvm/test/tools/llvm-objcopy/wasm/only-keep-debug.test (revision 2a6136e552d24b6bf665c42a6e32efc0b2d88fbf)
17cb25f53SDerek Schuff## Test that only debug sections are kept with --only-keep-debug.
2*2a6136e5SSam Clegg# RUN: yaml2obj %s -o %t.wasm
3*2a6136e5SSam Clegg# RUN: llvm-strip --only-keep-debug %t.wasm -o %t2.wasm
4*2a6136e5SSam Clegg# RUN: obj2yaml %t2.wasm | FileCheck %s -check-prefixes=CHECK,STRIPTYPE,STRIPFOO
57cb25f53SDerek Schuff
67cb25f53SDerek Schuff## Test that keep-section overrides only-keep-debug.
7*2a6136e5SSam Clegg# RUN: llvm-strip --only-keep-debug --keep-section=foo %t.wasm -o %t3.wasm
8*2a6136e5SSam Clegg# RUN: obj2yaml %t3.wasm | FileCheck --implicit-check-not=Name --check-prefixes=CHECK,STRIPTYPE,KEEPFOO %s
97cb25f53SDerek Schuff
10c9dd1cc6SDerek Schuff## Test that keep-section overrides only-keep-debug, even for known sections.
11*2a6136e5SSam Clegg# RUN: llvm-strip --only-keep-debug --keep-section=TYPE %t.wasm -o %t4.wasm
12*2a6136e5SSam Clegg# RUN: obj2yaml %t4.wasm | FileCheck --implicit-check-not=Name --check-prefixes=CHECK,KEEPTYPE,STRIPFOO %s
13c9dd1cc6SDerek Schuff
147cb25f53SDerek Schuff# CHECK:      Sections:
15e07dab8aSDerek Schuff# KEEPTYPE:       - Type: TYPE
16*2a6136e5SSam Clegg# STRIPTYPE-NOT:  - Type: TYPE
17*2a6136e5SSam Clegg# STRIPTYPE:      - Type: CUSTOM
18*2a6136e5SSam Clegg# STRIPTYPE-NEXT:   Name: .objcopy.removed
197cb25f53SDerek Schuff# CHECK:          - Type: CUSTOM
207cb25f53SDerek Schuff# CHECK-NEXT:       Name: .debug_info
217cb25f53SDerek Schuff# CHECK:          - Type: CUSTOM
22*2a6136e5SSam Clegg# CHECK-NEXT:       Name: .objcopy.removed
23*2a6136e5SSam Clegg# CHECK:          - Type: CUSTOM
24*2a6136e5SSam Clegg# CHECK-NEXT:       Name: .objcopy.removed
25*2a6136e5SSam Clegg# CHECK:          - Type: CUSTOM
267cb25f53SDerek Schuff# CHECK-NEXT:       Name: .debug_line
27*2a6136e5SSam Clegg# CHECK:          - Type: CUSTOM
28*2a6136e5SSam Clegg# KEEPFOO-NEXT:     Name: foo
29*2a6136e5SSam Clegg# STRIPFOO-NEXT:    Name: .objcopy.removed
307cb25f53SDerek Schuff
317cb25f53SDerek Schuff## Test that remove-section overrides only-keep-debug.
327cb25f53SDerek Schuff# RUN: yaml2obj %s -o %t
337cb25f53SDerek Schuff# RUN: llvm-strip --only-keep-debug --remove-section=.debug_info %t
347cb25f53SDerek Schuff# RUN: obj2yaml %t | FileCheck %s --check-prefix=NOINFO --implicit-check-not=.debug_info
357cb25f53SDerek Schuff
367cb25f53SDerek Schuff# NOINFO: Name: .debug_line
377cb25f53SDerek Schuff
387cb25f53SDerek Schuff--- !WASM
397cb25f53SDerek SchuffFileHeader:
407cb25f53SDerek Schuff  Version: 0x00000001
417cb25f53SDerek SchuffSections:
427cb25f53SDerek Schuff  - Type: TYPE
437cb25f53SDerek Schuff    Signatures:
447cb25f53SDerek Schuff      - Index: 0
457cb25f53SDerek Schuff        ParamTypes:
467cb25f53SDerek Schuff          - I32
477cb25f53SDerek Schuff        ReturnTypes:
487cb25f53SDerek Schuff          - F32
497cb25f53SDerek Schuff  - Type: CUSTOM
507cb25f53SDerek Schuff    Name: .debug_info
517cb25f53SDerek Schuff    Payload: CAFE1234
527cb25f53SDerek Schuff  - Type: CUSTOM
537cb25f53SDerek Schuff    Name: linking
547cb25f53SDerek Schuff    Version: 2
557cb25f53SDerek Schuff  - Type: CUSTOM
567cb25f53SDerek Schuff    Name: producers
577cb25f53SDerek Schuff    Tools:
587cb25f53SDerek Schuff      - Name:   clang
597cb25f53SDerek Schuff        Version: 9.0.0
607cb25f53SDerek Schuff  - Type: CUSTOM
617cb25f53SDerek Schuff    Name: .debug_line
627cb25f53SDerek Schuff    Payload: DEADBEEF
637cb25f53SDerek Schuff  - Type: CUSTOM
647cb25f53SDerek Schuff    Name: foo
657cb25f53SDerek Schuff    Payload: CAFE
66