1b2c44de9SDerek Schuff## Test --add-section. This test dumps and removes the section first and checks 2b2c44de9SDerek Schuff## that adding it back doesn't change the result. 3b2c44de9SDerek Schuff# RUN: yaml2obj %s -o %t 4b2c44de9SDerek Schuff# RUN: llvm-objcopy --dump-section=producers=%t.sec --remove-section=producers %t %t2 5b2c44de9SDerek Schuff# RUN: llvm-objcopy --add-section=producers=%t.sec %t2 %t3 6b2c44de9SDerek Schuff# RUN: obj2yaml %t3 | FileCheck %s 7b2c44de9SDerek Schuff 8b2c44de9SDerek Schuff## Check that the producers section has been added back unchanged. 9b2c44de9SDerek Schuff# CHECK: Name: producers 10b2c44de9SDerek Schuff# CHECK-NEXT: Tools: 11b2c44de9SDerek Schuff# CHECK-NEXT: - Name: clang 12b2c44de9SDerek Schuff# CHECK-NEXT: Version: 9.0.0 13b2c44de9SDerek Schuff 14b2c44de9SDerek Schuff# Check that the section is replaced with new content in one invocation. 15b2c44de9SDerek Schuff# RUN: echo "123" > %t4 16b2c44de9SDerek Schuff# RUN: llvm-objcopy --remove-section=foo --add-section=foo=%t4 %t %t5 17b2c44de9SDerek Schuff# RUN: obj2yaml %t5 | FileCheck %s --check-prefix=REPLACE 18b2c44de9SDerek Schuff 19b2c44de9SDerek Schuff# REPLACE: - Type: CUSTOM 20b2c44de9SDerek Schuff# REPLACE: Name: foo 21b2c44de9SDerek Schuff# REPLACE: Payload: 3132330A 22b2c44de9SDerek Schuff 23*91d06183SGuilhem## Check that raw data bytes can be imported and exported unchanged especially the ones containing empty bytes. 24*91d06183SGuilhem# RUN: echo -e -n "\x02\x01\x00\x01\x02" > %t6 25*91d06183SGuilhem# RUN: llvm-objcopy --add-section=bar=%t6 %t %t7 26*91d06183SGuilhem# RUN: llvm-objcopy --dump-section=bar=%t8 %t7 27*91d06183SGuilhem# RUN: diff %t8 %t6 28*91d06183SGuilhem# RUN: obj2yaml %t7 | FileCheck %s --check-prefix=RAW-DATA 29*91d06183SGuilhem 30*91d06183SGuilhem## Check that raw data is well formated in the file as well. 31*91d06183SGuilhem# RAW-DATA: Name: bar 32*91d06183SGuilhem# RAW-DATA-NEXT: Payload: '0201000102' 33*91d06183SGuilhem 34b2c44de9SDerek Schuff--- !WASM 35b2c44de9SDerek SchuffFileHeader: 36b2c44de9SDerek Schuff Version: 0x00000001 37b2c44de9SDerek SchuffSections: 38b2c44de9SDerek Schuff - Type: TYPE 39b2c44de9SDerek Schuff Signatures: 40b2c44de9SDerek Schuff - Index: 0 41b2c44de9SDerek Schuff ParamTypes: 42b2c44de9SDerek Schuff - I32 43b2c44de9SDerek Schuff ReturnTypes: 44b2c44de9SDerek Schuff - F32 45b2c44de9SDerek Schuff - Index: 1 46b2c44de9SDerek Schuff ParamTypes: 47b2c44de9SDerek Schuff - I32 48b2c44de9SDerek Schuff - I64 49b2c44de9SDerek Schuff ReturnTypes: [] 50b2c44de9SDerek Schuff - Type: FUNCTION 51b2c44de9SDerek Schuff FunctionTypes: 52b2c44de9SDerek Schuff - 0 53b2c44de9SDerek Schuff - 1 54b2c44de9SDerek Schuff - Type: CODE 55b2c44de9SDerek Schuff Relocations: 56b2c44de9SDerek Schuff - Type: R_WASM_TABLE_INDEX_SLEB 57b2c44de9SDerek Schuff Index: 0 58b2c44de9SDerek Schuff Offset: 0x00000000 59b2c44de9SDerek Schuff - Type: R_WASM_FUNCTION_INDEX_LEB 60b2c44de9SDerek Schuff Index: 1 61b2c44de9SDerek Schuff Offset: 0x0000000 62b2c44de9SDerek Schuff Functions: 63b2c44de9SDerek Schuff - Index: 0 64b2c44de9SDerek Schuff Locals: 65b2c44de9SDerek Schuff - Type: I32 66b2c44de9SDerek Schuff Count: 3 67b2c44de9SDerek Schuff Body: 010101010B 68b2c44de9SDerek Schuff - Index: 1 69b2c44de9SDerek Schuff Locals: 70b2c44de9SDerek Schuff - Type: I32 71b2c44de9SDerek Schuff Count: 1 72b2c44de9SDerek Schuff Body: 010101010B 73b2c44de9SDerek Schuff - Type: CUSTOM 74b2c44de9SDerek Schuff Name: linking 75b2c44de9SDerek Schuff Version: 2 76b2c44de9SDerek Schuff SymbolTable: 77b2c44de9SDerek Schuff - Index: 0 78b2c44de9SDerek Schuff Kind: FUNCTION 79b2c44de9SDerek Schuff Name: func1 80b2c44de9SDerek Schuff Flags: [ ] 81b2c44de9SDerek Schuff Function: 0 82b2c44de9SDerek Schuff - Index: 1 83b2c44de9SDerek Schuff Kind: FUNCTION 84b2c44de9SDerek Schuff Name: func2 85b2c44de9SDerek Schuff Flags: [ ] 86b2c44de9SDerek Schuff Function: 1 87b2c44de9SDerek Schuff - Type: CUSTOM 88b2c44de9SDerek Schuff Name: producers 89b2c44de9SDerek Schuff Tools: 90b2c44de9SDerek Schuff - Name: clang 91b2c44de9SDerek Schuff Version: 9.0.0 92b2c44de9SDerek Schuff - Type: CUSTOM 93b2c44de9SDerek Schuff Name: foo 94b2c44de9SDerek Schuff Payload: ABC123 95