| ## 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 |
| |
| ## Check that raw data bytes can be imported and exported unchanged especially the ones containing empty bytes. |
| # RUN: echo -e -n "\x02\x01\x00\x01\x02" > %t6 |
| # RUN: llvm-objcopy --add-section=bar=%t6 %t %t7 |
| # RUN: llvm-objcopy --dump-section=bar=%t8 %t7 |
| # RUN: diff %t8 %t6 |
| # RUN: obj2yaml %t7 | FileCheck %s --check-prefix=RAW-DATA |
| |
| ## Check that raw data is well formated in the file as well. |
| # RAW-DATA: Name: bar |
| # RAW-DATA-NEXT: Payload: '0201000102' |
| |
| --- !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 |