| ## Test --add-section. This test dumps and removes the section first and checks |
| ## that adding it back doesn't change the result. |
| # RUN: yaml2obj %s -o %t |
| # RUN: llvm-objcopy --dump-section=producers=%t.sec --remove-section=producers %t %t2 |
| # RUN: llvm-objcopy --add-section=producers=%t.sec %t2 %t3 |
| # RUN: obj2yaml %t3 | FileCheck %s |
| |
| ## Check that the producers section has been added back unchanged. |
| # CHECK: Name: producers |
| # CHECK-NEXT: Tools: |
| # CHECK-NEXT: - Name: clang |
| # CHECK-NEXT: Version: 9.0.0 |
| |
| # Check that the section is replaced with new content in one invocation. |
| # RUN: echo "123" > %t4 |
| # RUN: llvm-objcopy --remove-section=foo --add-section=foo=%t4 %t %t5 |
| # RUN: obj2yaml %t5 | FileCheck %s --check-prefix=REPLACE |
| |
| # REPLACE: - Type: CUSTOM |
| # REPLACE: Name: foo |
| # REPLACE: Payload: 3132330A |
| |
| --- !WASM |
| FileHeader: |
| Version: 0x00000001 |
| Sections: |
| - Type: TYPE |
| Signatures: |
| - Index: 0 |
| ParamTypes: |
| - I32 |
| ReturnTypes: |
| - F32 |
| - Index: 1 |
| ParamTypes: |
| - I32 |
| - I64 |
| ReturnTypes: [] |
| - Type: FUNCTION |
| FunctionTypes: |
| - 0 |
| - 1 |
| - Type: CODE |
| Relocations: |
| - Type: R_WASM_TABLE_INDEX_SLEB |
| Index: 0 |
| Offset: 0x00000000 |
| - Type: R_WASM_FUNCTION_INDEX_LEB |
| Index: 1 |
| Offset: 0x0000000 |
| Functions: |
| - Index: 0 |
| Locals: |
| - Type: I32 |
| Count: 3 |
| Body: 010101010B |
| - Index: 1 |
| Locals: |
| - Type: I32 |
| Count: 1 |
| Body: 010101010B |
| - Type: CUSTOM |
| Name: linking |
| Version: 2 |
| SymbolTable: |
| - Index: 0 |
| Kind: FUNCTION |
| Name: func1 |
| Flags: [ ] |
| Function: 0 |
| - Index: 1 |
| Kind: FUNCTION |
| Name: func2 |
| Flags: [ ] |
| Function: 1 |
| - Type: CUSTOM |
| Name: producers |
| Tools: |
| - Name: clang |
| Version: 9.0.0 |
| - Type: CUSTOM |
| Name: foo |
| Payload: ABC123 |