# Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -- Relatively complex structure intended for use in fuzz testing. -- -- Note that field names are intentionally very short; this helps American -- Fuzzy Lop (go/afl) find new code paths more quickly. [$default byte_order: "LittleEndian"] [(cpp) namespace: "emboss_test"] bits RegisterLayout: 0 [+8] Int x 0 [+4] UInt l 4 [+4] UInt h struct ArrayElement: 0 [+1] RegisterLayout a struct Complex: 0 [+1] UInt s 1 [+8] UInt u 1 [+8] Int i 1 [+8] Bcd b 1 [+s*4] ArrayElement[4][] a 1 [+1] bits: 0 [+8] UInt a0 7 [+1] Flag s0 0 [+4] Int l0 4 [+4] Int h0 2 [+1] ArrayElement e1 if a0 >= 0x80: 3 [+1] ArrayElement e2 if a0 < 0x80: 3 [+1] Bcd b2 if b2 > 25: 4 [+1] Int e3 if s >= 4 && (a0 >= 80 ? e3 >= 0x80 : b2 < 50): 5 [+1] Int e4 if s >= 5 && e4 > 0: 6 [+1] Int e5 if s < 2 || a0 < 4: 1 [+1] Int e0