1# SPDX-License-Identifier: BSD-3-Clause 2# 3# Binding file for testing diamond inheritance (top-bottom). 4# 5# diamond.yaml 6# / \ 7# / \ 8# base_amend.yaml thing.yaml 9# \ / 10# \ / 11# base.yaml 12# 13# Which properties are specified at which levels is summarized below 14# for convenience. 15# 16# * Binding level. 17# Diamond's left: 18# - prop-1 (amended in base_amend.yaml) 19# - prop-enum (amended in base_amend.yaml) 20# - prop-default (inherited from base.yaml) 21# Diamond's right: 22# - prop-1 (last amended in thing.yaml) 23# - prop-enum (amended in thing.yaml) 24# - prop-thing (inherited from thing.yaml) 25# Diamond's top: 26# - prop-enum (last amended here) 27# - prop-diamond 28# 29# * Child-binding level: 30# Diamond's left: 31# - child-prop-1 (amended in base_amend.yaml) 32# - child-prop-enum (amended in base_amend.yaml) 33# - child-prop-default (inherited from base.yaml) 34# Diamond's right: 35# - child-prop-1 (last amended in thing.yaml) 36# - child-prop-enum (amended in thing.yaml) 37# - child-prop-thing (inherited from thing.yaml) 38# Diamond's top: 39# - child-prop-enum (last amended here) 40# - child-prop-diamond 41# 42# * Grandchild-binding level: 43# Diamond's left: 44# - grandchild-prop-1 (amended in base_amend.yaml) 45# - grandchild-prop-enum (amended in base_amend.yaml) 46# - grandchild-prop-default (inherited from base.yaml) 47# Diamond's right: 48# - grandchild-prop-1 (last amended in thing.yaml) 49# - grandchild-prop-enum (amended in thing.yaml) 50# - grandchild-prop-thing (inherited from thing.yaml) 51# Diamond's top: 52# - grandchild-prop-enum (last amended here) 53# - grandchild-prop-diamond 54 55description: Diamond's top. 56 57compatible: diamond 58 59include: 60 # Diamond's left. 61 - name: base_amend.yaml 62 property-allowlist: [prop-1, prop-enum, prop-default] 63 child-binding: 64 property-allowlist: [child-prop-1, child-prop-enum, child-prop-default] 65 child-binding: 66 property-allowlist: [grandchild-prop-1, grandchild-prop-enum, grandchild-prop-default] 67 # Diamond's right. 68 - name: thing.yaml 69 70properties: 71 prop-diamond: 72 type: int 73 prop-enum: 74 description: Overwritten in diamond.yaml. 75 default: FOO 76 77child-binding: 78 description: Diamond's child-binding. 79 80 properties: 81 child-prop-diamond: 82 type: int 83 child-prop-enum: 84 description: Overwritten in diamond.yaml (child). 85 default: CHILD_FOO 86 87 child-binding: 88 properties: 89 grandchild-prop-diamond: 90 type: int 91 grandchild-prop-enum: 92 description: Overwritten in diamond.yaml (grandchild). 93 default: GRANDCHILD_FOO 94