## Check how yaml2obj creates archives.

## Check we create an empty archive when neither "Members" nor "Content" are specified.

# RUN: yaml2obj --docnum=1 %s -o %t.empty.a
# RUN: llvm-ar t %t.empty.a | FileCheck %s --allow-empty --implicit-check-not={{.}}
# RUN: wc -c < %t.empty.a | FileCheck %s --check-prefix=EMPTY-SIZE
# RUN: od -t x1 -v %t.empty.a | FileCheck %s --ignore-case --check-prefix=EMPTY-DATA

# EMPTY-SIZE: 8{{$}}
# EMPTY-DATA: 21 3c 61 72 63 68 3e 0a

--- !Arch
Magic:   "[[MAGIC=!<arch>\n]]"
Content: [[CONTENT=<none>]]
Members: [[MEMBERS=<none>]]

## Check we report an error when both "Content" and "Members" keys are used together.

# RUN: not yaml2obj --docnum=1 -DMEMBERS="[]" -DCONTENT="00" %s 2>&1 | FileCheck %s --check-prefix=BOTH

## BOTH: error: "Content" and "Members" cannot be used together

## Check we can use the "Content" key alone.

# RUN: yaml2obj --docnum=1 -DCONTENT="12" %s -o %t.content.a
# RUN: wc -c < %t.content.a | FileCheck %s --check-prefix=CONTENT-SIZE
# RUN: od -t x1 -v %t.content.a | FileCheck %s --ignore-case --check-prefix=CONTENT

# CONTENT-SIZE: 9{{$}}
#      CONTENT: 21 3c 61 72 63 68 3e 0a 12

## Check we can specify magic bytes of size greater than the normal size (size of "!<arch>\n").

# RUN: yaml2obj --docnum=1 -DMAGIC="123456789" %s -o %t.magic2.a
# RUN: wc -c < %t.magic2.a | FileCheck %s --check-prefix=MAGIC-SIZE-GR
# RUN: od -t x1 -v %t.magic2.a | FileCheck %s --ignore-case --check-prefix=MAGIC-DATA-GR

# MAGIC-SIZE-GR: 9{{$}}
# MAGIC-DATA-GR: 31 32 33 34 35 36 37 38 39

## Check we can specify magic bytes of size less than the normal size (size of "!<arch>\n").

# RUN: yaml2obj --docnum=1 -DMAGIC="1234567" %s -o %t.magic3.a
# RUN: wc -c < %t.magic3.a | FileCheck %s --check-prefix=MAGIC-SIZE-LESS
# RUN: od -t x1 -v %t.magic3.a | FileCheck %s --ignore-case --check-prefix=MAGIC-DATA-LESS

# MAGIC-SIZE-LESS: 7{{$}}
# MAGIC-DATA-LESS: 31 32 33 34 35 36 37

## Check we can produce a valid archive with multiple members.
## Check we are able to omit the "Magic" key and this defaults to "!<arch>\n".

# RUN: yaml2obj --docnum=2 %s -o %t.two.a
# RUN: llvm-ar -t %t.two.a | FileCheck %s --check-prefix=TWO
# RUN: FileCheck --input-file=%t.two.a %s \
# RUN:   --match-full-lines --strict-whitespace --check-prefix=TWO-DATA

# TWO:      {{^}}bbbbbbbbbbbbbbb{{$}}
# TWO-NEXT: {{^}}a{{$}}
# TWO-NOT:  {{.}}

#      TWO-DATA:!<arch>
# TWO-DATA-NEXT:bbbbbbbbbbbbbbb/1234567890abqwertyasdfgh876543217         `
# TWO-DATA-NEXT: cccc {{$}}
# TWO-DATA-NEXT:za/              1           2     3     456     6         `
# TWO-DATA-NEXT: aaa {{$}}
#  TWO-DATA-NOT:{{.}}

--- !Arch
Members:
## An arbitrary entry where each of fields has maximum allowed length.
  - Name:         'bbbbbbbbbbbbbbb/'
    LastModified: '1234567890ab'
    UID:          'qwerty'
    GID:          'asdfgh'
    AccessMode:   '87654321'
    Size:         '7'
    Terminator:   "`\n"
    Content:      "2063636363200A"
    PaddingByte:  0x7a ## 'z'
## An arbitrary entry to demonstrate that we use the 0x20 byte (space character)
## to fill gaps between field values.
  - Name:         'a/'
    LastModified: '1'
    UID:          '2'
    GID:          '3'
    AccessMode:   '456'
    Size:         '6'
    Terminator:   "`\n"
    Content:      "20616161200A"

## Check how we validate maximum sizes of fields.

# RUN: not yaml2obj --docnum=3 -DNAME="123456789ABCDEF01" %s 2>&1 | \
# RUN:   FileCheck %s --check-prefix=ERROR -DFIELD="Name" -DVAL=16
# RUN: not yaml2obj --docnum=3 -DLAST="123456789ABCD" %s 2>&1 | \
# RUN:   FileCheck %s --check-prefix=ERROR -DFIELD="LastModified" -DVAL=12
# RUN: not yaml2obj --docnum=3 -DUID="1234567" %s 2>&1 | \
# RUN:   FileCheck %s --check-prefix=ERROR -DFIELD="UID" -DVAL=6
# RUN: not yaml2obj --docnum=3 -DGID="1234567" %s 2>&1 | \
# RUN:   FileCheck %s --check-prefix=ERROR -DFIELD="GID" -DVAL=6
# RUN: not yaml2obj --docnum=3 -DACCESSMODE="123456789" %s 2>&1 | \
# RUN:   FileCheck %s --check-prefix=ERROR -DFIELD="AccessMode" -DVAL=8
# RUN: not yaml2obj --docnum=3 -DSIZE="123456789AB" %s 2>&1 | \
# RUN:   FileCheck %s --check-prefix=ERROR -DFIELD="Size" -DVAL=10
# RUN: not yaml2obj --docnum=3 -DTERMINATOR="123" %s 2>&1 | \
# RUN:   FileCheck %s --check-prefix=ERROR -DFIELD="Terminator" -DVAL=2

# ERROR: error: the maximum length of "[[FIELD]]" field is [[VAL]]

--- !Arch
Members:
  - Name:         '[[NAME=""]]'
    LastModified: '[[LAST=""]]'
    UID:          '[[UID=""]]'
    GID:          '[[GID=""]]'
    AccessMode:   '[[ACCESSMODE=""]]'
    Size:         '[[SIZE=""]]'
    Terminator:   '[[TERMINATOR=""]]'

## Check that all keys are optional for members.

# RUN: yaml2obj --docnum=4 %s -o %t.all.defaults.a
# RUN: FileCheck --input-file=%t.all.defaults.a %s \
# RUN:   --match-full-lines --strict-whitespace --check-prefix=DEFAULTS

#      DEFAULTS:!<arch>
# DEFAULTS-NEXT:                0           0     0     0       0         `
# DEFAULTS-NEXT:                0           0     0     0       0         `
#  DEFAULTS-NOT:{{.}}

--- !Arch
Members:
  - {}
  - {}
