File: regular.yaml

package info (click to toggle)
llvm-toolchain-15 1%3A15.0.6-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,554,644 kB
  • sloc: cpp: 5,922,452; ansic: 1,012,136; asm: 674,362; python: 191,568; objc: 73,855; f90: 42,327; lisp: 31,913; pascal: 11,973; javascript: 10,144; sh: 9,421; perl: 7,447; ml: 5,527; awk: 3,523; makefile: 2,520; xml: 885; cs: 573; fortran: 567
file content (136 lines) | stat: -rw-r--r-- 5,066 bytes parent folder | download | duplicates (19)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
## 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:
  - {}
  - {}