xref: /aosp_15_r20/external/emboss/testdata/uint_sizes.emb (revision 99e0aae7469b87d12f0ad23e61142c2d74c1ef70)
1*99e0aae7SDavid Rees# Copyright 2019 Google LLC
2*99e0aae7SDavid Rees#
3*99e0aae7SDavid Rees# Licensed under the Apache License, Version 2.0 (the "License");
4*99e0aae7SDavid Rees# you may not use this file except in compliance with the License.
5*99e0aae7SDavid Rees# You may obtain a copy of the License at
6*99e0aae7SDavid Rees#
7*99e0aae7SDavid Rees#     https://www.apache.org/licenses/LICENSE-2.0
8*99e0aae7SDavid Rees#
9*99e0aae7SDavid Rees# Unless required by applicable law or agreed to in writing, software
10*99e0aae7SDavid Rees# distributed under the License is distributed on an "AS IS" BASIS,
11*99e0aae7SDavid Rees# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*99e0aae7SDavid Rees# See the License for the specific language governing permissions and
13*99e0aae7SDavid Rees# limitations under the License.
14*99e0aae7SDavid Rees
15*99e0aae7SDavid Rees-- Test structs for 8, 16, 32, and 64 bit UInts and enums.
16*99e0aae7SDavid Rees
17*99e0aae7SDavid Rees[$default byte_order: "LittleEndian"]
18*99e0aae7SDavid Rees[(cpp) namespace: "emboss::test"]
19*99e0aae7SDavid Rees
20*99e0aae7SDavid Rees
21*99e0aae7SDavid Reesstruct Sizes:
22*99e0aae7SDavid Rees  0  [+1]  UInt  one_byte
23*99e0aae7SDavid Rees  1  [+2]  UInt  two_byte
24*99e0aae7SDavid Rees  3  [+3]  UInt  three_byte
25*99e0aae7SDavid Rees  6  [+4]  UInt  four_byte
26*99e0aae7SDavid Rees  10 [+5]  UInt  five_byte
27*99e0aae7SDavid Rees  15 [+6]  UInt  six_byte
28*99e0aae7SDavid Rees  21 [+7]  UInt  seven_byte
29*99e0aae7SDavid Rees  28 [+8]  UInt  eight_byte
30*99e0aae7SDavid Rees
31*99e0aae7SDavid Rees
32*99e0aae7SDavid Reesstruct BigEndianSizes:
33*99e0aae7SDavid Rees  [$default byte_order: "BigEndian"]
34*99e0aae7SDavid Rees  0  [+1]  UInt  one_byte
35*99e0aae7SDavid Rees  1  [+2]  UInt  two_byte
36*99e0aae7SDavid Rees  3  [+3]  UInt  three_byte
37*99e0aae7SDavid Rees  6  [+4]  UInt  four_byte
38*99e0aae7SDavid Rees  10 [+5]  UInt  five_byte
39*99e0aae7SDavid Rees  15 [+6]  UInt  six_byte
40*99e0aae7SDavid Rees  21 [+7]  UInt  seven_byte
41*99e0aae7SDavid Rees  28 [+8]  UInt  eight_byte
42*99e0aae7SDavid Rees
43*99e0aae7SDavid Rees
44*99e0aae7SDavid Reesstruct AlternatingEndianSizes:
45*99e0aae7SDavid Rees  [$default byte_order: "BigEndian"]
46*99e0aae7SDavid Rees  0  [+1]  UInt  one_byte    [byte_order: "BigEndian"]
47*99e0aae7SDavid Rees  1  [+2]  UInt  two_byte    [byte_order: "LittleEndian"]
48*99e0aae7SDavid Rees  3  [+3]  UInt  three_byte                                # default to "BigEndian"
49*99e0aae7SDavid Rees  6  [+4]  UInt  four_byte   [byte_order: "LittleEndian"]
50*99e0aae7SDavid Rees  10 [+5]  UInt  five_byte                                 # default to "BigEndian"
51*99e0aae7SDavid Rees  15 [+6]  UInt  six_byte    [byte_order: "LittleEndian"]
52*99e0aae7SDavid Rees  21 [+7]  UInt  seven_byte  [byte_order: "BigEndian"]
53*99e0aae7SDavid Rees  28 [+8]  UInt  eight_byte  [byte_order: "LittleEndian"]
54*99e0aae7SDavid Rees
55*99e0aae7SDavid Rees
56*99e0aae7SDavid Reesstruct EnumSizes:
57*99e0aae7SDavid Rees  0  [+1]  Enum  one_byte
58*99e0aae7SDavid Rees  1  [+2]  Enum  two_byte
59*99e0aae7SDavid Rees  3  [+3]  Enum  three_byte
60*99e0aae7SDavid Rees  6  [+4]  Enum  four_byte
61*99e0aae7SDavid Rees  10 [+5]  Enum  five_byte
62*99e0aae7SDavid Rees  15 [+6]  Enum  six_byte
63*99e0aae7SDavid Rees  21 [+7]  Enum  seven_byte
64*99e0aae7SDavid Rees  28 [+8]  Enum  eight_byte
65*99e0aae7SDavid Rees
66*99e0aae7SDavid Rees
67*99e0aae7SDavid Reesstruct ExplicitlySizedEnumSizes:
68*99e0aae7SDavid Rees  0  [+1]    ExplicitlySizedEnum  one_byte
69*99e0aae7SDavid Rees  1  [+2]    ExplicitlySizedEnum  two_byte
70*99e0aae7SDavid Rees  3  [+3]    ExplicitlySizedEnum  three_byte
71*99e0aae7SDavid Rees  6  [+4]    bits:
72*99e0aae7SDavid Rees    0 [+28]  ExplicitlySizedEnum  three_and_a_half_byte
73*99e0aae7SDavid Rees
74*99e0aae7SDavid Rees
75*99e0aae7SDavid Reesenum Enum:
76*99e0aae7SDavid Rees  VALUE1        = 1
77*99e0aae7SDavid Rees  VALUE10       = 10
78*99e0aae7SDavid Rees  VALUE100      = 100
79*99e0aae7SDavid Rees  VALUE1000     = 1000
80*99e0aae7SDavid Rees  VALUE10000    = 10000
81*99e0aae7SDavid Rees  VALUE100000   = 100000
82*99e0aae7SDavid Rees  VALUE1000000  = 1000000
83*99e0aae7SDavid Rees  VALUE10000000 = 10000000
84*99e0aae7SDavid Rees
85*99e0aae7SDavid Rees
86*99e0aae7SDavid Reesenum ExplicitlySizedEnum:
87*99e0aae7SDavid Rees  [maximum_bits: 28]
88*99e0aae7SDavid Rees  VALUE1        = 1
89*99e0aae7SDavid Rees  VALUE10       = 10
90*99e0aae7SDavid Rees  VALUE100      = 100
91*99e0aae7SDavid Rees  VALUE1000     = 1000
92*99e0aae7SDavid Rees  VALUE10000    = 10000
93*99e0aae7SDavid Rees  VALUE100000   = 100000
94*99e0aae7SDavid Rees  VALUE1000000  = 1000000
95*99e0aae7SDavid Rees  VALUE10000000 = 10000000
96*99e0aae7SDavid Rees
97*99e0aae7SDavid Rees
98*99e0aae7SDavid Reesstruct ArraySizes:
99*99e0aae7SDavid Rees  0  [+2]   UInt:8[2]   one_byte
100*99e0aae7SDavid Rees  2  [+4]   UInt:16[2]  two_byte
101*99e0aae7SDavid Rees  6  [+6]   UInt:24[2]  three_byte
102*99e0aae7SDavid Rees  12 [+8]   UInt:32[2]  four_byte
103*99e0aae7SDavid Rees  20 [+10]  UInt:40[2]  five_byte
104*99e0aae7SDavid Rees  30 [+12]  UInt:48[2]  six_byte
105*99e0aae7SDavid Rees  42 [+14]  UInt:56[2]  seven_byte
106*99e0aae7SDavid Rees  56 [+16]  UInt:64[2]  eight_byte
107