blob: 0a3865506eaa64d9986214d7545018d5896e80a8 [file] [log] [blame]
# SPDX-License-Identifier: BSD-3-Clause
#
# Binding file for testing diamond inheritance (top-bottom).
#
# diamond.yaml
# / \
# / \
# base_amend.yaml thing.yaml
# \ /
# \ /
# base.yaml
#
# Which properties are specified at which levels is summarized bellow
# for convenience.
#
# * Binding level.
# Diamond's left:
# - prop-1 (amended in base_amend.yaml)
# - prop-enum (amended in base_amend.yaml)
# - prop-default (inherited from base.yaml)
# Diamond's right:
# - prop-1 (last amended in thing.yaml)
# - prop-enum (amended in thing.yaml)
# - prop-thing (inherited from thing.yaml)
# Diamond's top:
# - prop-enum (last amended here)
# - prop-diamond
#
# * Child-binding level:
# Diamond's left:
# - child-prop-1 (amended in base_amend.yaml)
# - child-prop-enum (amended in base_amend.yaml)
# - child-prop-default (inherited from base.yaml)
# Diamond's right:
# - child-prop-1 (last amended in thing.yaml)
# - child-prop-enum (amended in thing.yaml)
# - child-prop-thing (inherited from thing.yaml)
# Diamond's top:
# - child-prop-enum (last amended here)
# - child-prop-diamond
#
# * Grandchild-binding level:
# Diamond's left:
# - grandchild-prop-1 (amended in base_amend.yaml)
# - grandchild-prop-enum (amended in base_amend.yaml)
# - grandchild-prop-default (inherited from base.yaml)
# Diamond's right:
# - grandchild-prop-1 (last amended in thing.yaml)
# - grandchild-prop-enum (amended in thing.yaml)
# - grandchild-prop-thing (inherited from thing.yaml)
# Diamond's top:
# - grandchild-prop-enum (last amended here)
# - grandchild-prop-diamond
description: Diamond's top.
compatible: diamond
include:
# Diamond's left.
- name: base_amend.yaml
property-allowlist: [prop-1, prop-enum, prop-default]
child-binding:
property-allowlist: [child-prop-1, child-prop-enum, child-prop-default]
child-binding:
property-allowlist: [grandchild-prop-1, grandchild-prop-enum, grandchild-prop-default]
# Diamond's right.
- name: thing.yaml
properties:
prop-diamond:
type: int
prop-enum:
description: Overwritten in diamond.yaml.
default: FOO
child-binding:
description: Diamond's child-binding.
properties:
child-prop-diamond:
type: int
child-prop-enum:
description: Overwritten in diamond.yaml (child).
default: CHILD_FOO
child-binding:
properties:
grandchild-prop-diamond:
type: int
grandchild-prop-enum:
description: Overwritten in diamond.yaml (grandchild).
default: GRANDCHILD_FOO