## Test that obj2yaml output includes the section header size encoding length ## only when the length isn't padded to 5 bytes. # RUN: yaml2obj --docnum=1 %s | obj2yaml | FileCheck %s --- !WASM FileHeader: Version: 0x1 Sections: - Type: TYPE HeaderSecSizeEncodingLen: 3 Signatures: - Index: 0 ParamTypes: - I32 - I32 ReturnTypes: - I32 - Type: FUNCTION HeaderSecSizeEncodingLen: 4 FunctionTypes: [ 0 ] - Type: MEMORY HeaderSecSizeEncodingLen: 1 Memories: - Flags: [ HAS_MAX ] Minimum: 0x100 Maximum: 0x100 - Type: EXPORT HeaderSecSizeEncodingLen: 5 Exports: - Name: add Kind: FUNCTION Index: 0 - Type: CODE HeaderSecSizeEncodingLen: 2 Functions: - Index: 0 Locals: [] Body: 200020016A0B ... # CHECK: --- !WASM # CHECK-NEXT: FileHeader: # CHECK-NEXT: Version: 0x1 # CHECK-NEXT: Sections: # CHECK-NEXT: - Type: TYPE # CHECK-NEXT: HeaderSecSizeEncodingLen: 3 # CHECK-NEXT: Signatures: # CHECK-NEXT: - Index: 0 # CHECK-NEXT: ParamTypes: # CHECK-NEXT: - I32 # CHECK-NEXT: - I32 # CHECK-NEXT: ReturnTypes: # CHECK-NEXT: - I32 # CHECK-NEXT: - Type: FUNCTION # CHECK-NEXT: HeaderSecSizeEncodingLen: 4 # CHECK-NEXT: FunctionTypes: [ 0 ] # CHECK-NEXT: - Type: MEMORY # CHECK-NEXT: Memories: # CHECK-NEXT: - Flags: [ HAS_MAX ] # CHECK-NEXT: Minimum: 0x100 # CHECK-NEXT: Maximum: 0x100 # CHECK-NEXT: - Type: EXPORT # CHECK-NEXT: Exports: # CHECK-NEXT: - Name: add # CHECK-NEXT: Kind: FUNCTION # CHECK-NEXT: Index: 0 # CHECK-NEXT: - Type: CODE # CHECK-NEXT: HeaderSecSizeEncodingLen: 2 # CHECK-NEXT: Functions: # CHECK-NEXT: - Index: 0 # CHECK-NEXT: Locals: [] # CHECK-NEXT: Body: 200020016A0B ## Test if we correctly error out if the provided section header size is less ## than the size required. # RUN: not yaml2obj --docnum=2 %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=INVALID # INVALID: yaml2obj: error: section header length can't be encoded in a LEB of size 0 --- !WASM FileHeader: Version: 0x1 Sections: - Type: TYPE HeaderSecSizeEncodingLen: 0 Signatures: - Index: 0 ParamTypes: - I32 - I32 ReturnTypes: - I32 ...