# SPDX-License-Identifier: BSD-2-Clause """ Unit tests for the rtemsspec.specverify module. """ # Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. import logging from rtemsspec.items import ItemCache from rtemsspec.specverify import verify from rtemsspec.tests.util import create_item_cache_config_and_copy_spec def test_no_root_type(caplog, tmpdir): item_cache_config = create_item_cache_config_and_copy_spec( tmpdir, "spec-verify") item_cache = ItemCache(item_cache_config) config = {} caplog.set_level(logging.INFO) verify(config, item_cache) log = "\n".join( [f"{rec.levelname} {rec.message}" for rec in caplog.records]) assert log == """ERROR configuration has no root type""" def test_no_root_item(caplog, tmpdir): item_cache_config = create_item_cache_config_and_copy_spec( tmpdir, "spec-verify") item_cache = ItemCache(item_cache_config) config = {"root-type": "/nix"} caplog.set_level(logging.INFO) verify(config, item_cache) log = "\n".join( [f"{rec.levelname} {rec.message}" for rec in caplog.records]) assert log == """ERROR root type item does not exist in item cache""" def test_verify(caplog, tmpdir): item_cache_config = create_item_cache_config_and_copy_spec( tmpdir, "spec-verify") item_cache = ItemCache(item_cache_config) config = {"root-type": "/spec/root"} caplog.set_level(logging.INFO) verify(config, item_cache) log = "\n".join( [f"{rec.levelname} {rec.message}" for rec in caplog.records]) assert log == """INFO type: any-dict INFO type: bool INFO type: c INFO type: copyright INFO type: copyrights INFO type: d INFO add subtype 'd-a' to 'd' INFO type: d-a INFO type: enabled-by INFO type: enabled-by-list INFO type: float INFO type: int INFO type: keys-at-least-one INFO type: keys-at-most-one INFO type: keys-exactly-one INFO type: link INFO add subtype 'spec-member' to 'link' INFO add subtype 'spec-refinement' to 'link' INFO type: links INFO type: list-str INFO type: must-be-true INFO type: name INFO type: none INFO type: optional-str INFO type: other-int INFO type: root INFO add subtype 'spec' to 'root' INFO add subtype 'c' to 'root' INFO add subtype 'd' to 'root' INFO add subtype 'spec-invalid' to 'root' INFO add subtype 'keys-at-least-one' to 'root' INFO add subtype 'keys-at-most-one' to 'root' INFO add subtype 'keys-exactly-one' to 'root' INFO type: some-bool INFO type: some-dict INFO type: some-float INFO type: some-int INFO type: some-list INFO type: some-str INFO type: spdx-license-identifier INFO type: spec INFO type: spec-assert-float INFO type: spec-assert-float-list INFO type: spec-assert-int INFO type: spec-assert-int-list INFO type: spec-assert-str INFO type: spec-assert-str-list INFO type: spec-attribute-value INFO type: spec-attributes INFO type: spec-bool INFO type: spec-dict INFO type: spec-float INFO type: spec-generic-attributes INFO type: spec-info INFO type: spec-int INFO type: spec-invalid INFO type: spec-list INFO type: spec-mandatory-attributes INFO type: spec-member INFO type: spec-refinement INFO type: spec-str INFO type: str INFO type: str-contains INFO type: uid INFO type: x INFO start specification item verification INFO /c1: verify using type 'root' INFO /c1:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /c1:/copyrights: verify using type 'copyrights' INFO /c1:/copyrights[0]: verify using type 'copyright' INFO /c1:/enabled-by: verify using type 'enabled-by' INFO /c1:/links: verify using type 'links' INFO /c1:/links[0]: verify using type 'link' INFO /c1:/links[0]/role: verify using type 'name' INFO /c1:/links[0]/uid: verify using type 'uid' ERROR /c1:/links[0]: unknown subtype for key 'role' for type 'link': x INFO /c1:/type: verify using type 'name' INFO /c1: verify using type 'c' ERROR /c1: missing mandatory keys for type 'c': ['any-dict', 'bool', 'float', 'int', 'must-be-true', 'other-int', 'str', 'str-contains'] INFO /c1:/dict: verify using type 'some-dict' INFO /c1:/dict/a: verify using type 'none' INFO /c1:/list: verify using type 'some-list' INFO /c1:/uid: verify using type 'uid' ERROR /c1:/uid: expected type 'str', actual type 'int' INFO /c2: verify using type 'root' INFO /c2:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /c2:/copyrights: verify using type 'copyrights' INFO /c2:/copyrights[0]: verify using type 'copyright' INFO /c2:/enabled-by: verify using type 'enabled-by' INFO /c2:/links: verify using type 'links' INFO /c2:/type: verify using type 'name' INFO /c2: verify using type 'c' ERROR /c2: missing mandatory keys for type 'c': ['any-dict', 'bool', 'float', 'int', 'must-be-true', 'other-int', 'str', 'uid'] INFO /c2:/dict: verify using type 'some-dict' ERROR /c2:/dict: has unverfied keys for type 'some-dict' and its subtypes: ['b'] INFO /c2:/list: verify using type 'some-list' INFO /c2:/str-contains: verify using type 'str-contains' ERROR /c2:/str-contains: invalid value: uvw INFO /c3: verify using type 'root' INFO /c3:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /c3:/copyrights: verify using type 'copyrights' INFO /c3:/copyrights[0]: verify using type 'copyright' INFO /c3:/enabled-by: verify using type 'enabled-by' INFO /c3:/links: verify using type 'links' INFO /c3:/type: verify using type 'name' INFO /c3: verify using type 'c' ERROR /c3: missing mandatory keys for type 'c': ['any-dict', 'bool', 'float', 'int', 'other-int'] INFO /c3:/dict: verify using type 'some-dict' ERROR /c3:/dict: expected value of types ['dict', 'none'] for type 'some-dict', actual type 'list' INFO /c3:/list: verify using type 'some-list' ERROR /c3:/list: expected value of types ['list'] for type 'some-list', actual type 'dict' INFO /c3:/must-be-true: verify using type 'must-be-true' ERROR /c3:/must-be-true: expected True, actual False INFO /c3:/str: verify using type 'some-str' INFO /c3:/str-contains: verify using type 'str-contains' ERROR /c3:/str-contains: invalid value: abc ghi INFO /c3:/uid: verify using type 'uid' ERROR /c3:/uid: cannot resolve UID: nix INFO /c4: verify using type 'root' INFO /c4:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /c4:/copyrights: verify using type 'copyrights' INFO /c4:/copyrights[0]: verify using type 'copyright' INFO /c4:/enabled-by: verify using type 'enabled-by' INFO /c4:/links: verify using type 'links' INFO /c4:/type: verify using type 'name' INFO /c4: verify using type 'c' INFO /c4:/any-dict: verify using type 'any-dict' INFO /c4:/any-dict/a: verify using type 'name' INFO /c4:/any-dict/a: verify using type 'str' INFO /c4:/bool: verify using type 'some-bool' INFO /c4:/dict: verify using type 'some-dict' INFO /c4:/float: verify using type 'some-float' ERROR /c4:/float: invalid value: 123.567 INFO /c4:/int: verify using type 'some-int' INFO /c4:/list: verify using type 'some-list' INFO /c4:/must-be-true: verify using type 'must-be-true' INFO /c4:/other-int: verify using type 'other-int' INFO /c4:/str: verify using type 'some-str' WARNING /c4:/str: cannot resolve UID: abc INFO /c4:/str-contains: verify using type 'str-contains' INFO /c4:/uid: verify using type 'uid' INFO /d: verify using type 'root' INFO /d:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /d:/copyrights: verify using type 'copyrights' INFO /d:/copyrights[0]: verify using type 'copyright' INFO /d:/enabled-by: verify using type 'enabled-by' INFO /d:/links: verify using type 'links' INFO /d:/type: verify using type 'name' INFO /d: verify using type 'd' INFO /d:/d-type: verify using type 'name' INFO /d: verify using type 'd-a' INFO /d:/d-type: verify using type 'x' ERROR /d:/d-type: invalid value: blub INFO /d2: verify using type 'root' INFO /d2:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /d2:/copyrights: verify using type 'copyrights' INFO /d2:/copyrights[0]: verify using type 'copyright' INFO /d2:/enabled-by: verify using type 'enabled-by' INFO /d2:/links: verify using type 'links' INFO /d2:/type: verify using type 'name' INFO /d2: verify using type 'd' INFO /d2:/d-type: verify using type 'name' ERROR /d2: unknown subtype for key 'd-type' for type 'd': bla INFO /d3: verify using type 'root' INFO /d3:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /d3:/copyrights: verify using type 'copyrights' INFO /d3:/copyrights[0]: verify using type 'copyright' INFO /d3:/enabled-by: verify using type 'enabled-by' INFO /d3:/links: verify using type 'links' INFO /d3:/type: verify using type 'name' INFO /d3: verify using type 'd' ERROR /d3: missing mandatory keys for type 'd': ['d-type'] ERROR /d3: subtype key 'd-type' not present for type 'd' INFO /e: verify using type 'root' INFO /e:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /e:/copyrights: verify using type 'copyrights' INFO /e:/copyrights[0]: verify using type 'copyright' INFO /e:/enabled-by: verify using type 'enabled-by' INFO /e:/links: verify using type 'links' INFO /e:/type: verify using type 'name' ERROR /e: unknown subtype for key 'type' for type 'root': e INFO /invalid: verify using type 'root' INFO /invalid:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /invalid:/copyrights: verify using type 'copyrights' INFO /invalid:/copyrights[0]: verify using type 'copyright' INFO /invalid:/enabled-by: verify using type 'enabled-by' INFO /invalid:/links: verify using type 'links' INFO /invalid:/type: verify using type 'name' INFO /invalid: verify using type 'spec-invalid' ERROR /invalid: unknown specification type: invalid INFO /keys-at-least-one-0: verify using type 'root' INFO /keys-at-least-one-0:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /keys-at-least-one-0:/copyrights: verify using type 'copyrights' INFO /keys-at-least-one-0:/copyrights[0]: verify using type 'copyright' INFO /keys-at-least-one-0:/enabled-by: verify using type 'enabled-by' INFO /keys-at-least-one-0:/links: verify using type 'links' INFO /keys-at-least-one-0:/type: verify using type 'name' INFO /keys-at-least-one-0: verify using type 'keys-at-least-one' ERROR /keys-at-least-one-0: not at least one key out of ['key-a', 'key-b'] is present for type 'keys-at-least-one' INFO /keys-at-least-one-1: verify using type 'root' INFO /keys-at-least-one-1:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /keys-at-least-one-1:/copyrights: verify using type 'copyrights' INFO /keys-at-least-one-1:/copyrights[0]: verify using type 'copyright' INFO /keys-at-least-one-1:/enabled-by: verify using type 'enabled-by' INFO /keys-at-least-one-1:/links: verify using type 'links' INFO /keys-at-least-one-1:/type: verify using type 'name' INFO /keys-at-least-one-1: verify using type 'keys-at-least-one' INFO /keys-at-least-one-1:/key-a: verify using type 'none' INFO /keys-at-least-one-2: verify using type 'root' INFO /keys-at-least-one-2:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /keys-at-least-one-2:/copyrights: verify using type 'copyrights' INFO /keys-at-least-one-2:/copyrights[0]: verify using type 'copyright' INFO /keys-at-least-one-2:/enabled-by: verify using type 'enabled-by' INFO /keys-at-least-one-2:/links: verify using type 'links' INFO /keys-at-least-one-2:/type: verify using type 'name' INFO /keys-at-least-one-2: verify using type 'keys-at-least-one' INFO /keys-at-least-one-2:/key-a: verify using type 'none' INFO /keys-at-least-one-2:/key-b: verify using type 'none' INFO /keys-at-most-one-0: verify using type 'root' INFO /keys-at-most-one-0:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /keys-at-most-one-0:/copyrights: verify using type 'copyrights' INFO /keys-at-most-one-0:/copyrights[0]: verify using type 'copyright' INFO /keys-at-most-one-0:/enabled-by: verify using type 'enabled-by' INFO /keys-at-most-one-0:/links: verify using type 'links' INFO /keys-at-most-one-0:/type: verify using type 'name' INFO /keys-at-most-one-0: verify using type 'keys-at-most-one' INFO /keys-at-most-one-1: verify using type 'root' INFO /keys-at-most-one-1:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /keys-at-most-one-1:/copyrights: verify using type 'copyrights' INFO /keys-at-most-one-1:/copyrights[0]: verify using type 'copyright' INFO /keys-at-most-one-1:/enabled-by: verify using type 'enabled-by' INFO /keys-at-most-one-1:/links: verify using type 'links' INFO /keys-at-most-one-1:/type: verify using type 'name' INFO /keys-at-most-one-1: verify using type 'keys-at-most-one' INFO /keys-at-most-one-1:/key-a: verify using type 'none' INFO /keys-at-most-one-2: verify using type 'root' INFO /keys-at-most-one-2:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /keys-at-most-one-2:/copyrights: verify using type 'copyrights' INFO /keys-at-most-one-2:/copyrights[0]: verify using type 'copyright' INFO /keys-at-most-one-2:/enabled-by: verify using type 'enabled-by' INFO /keys-at-most-one-2:/links: verify using type 'links' INFO /keys-at-most-one-2:/type: verify using type 'name' INFO /keys-at-most-one-2: verify using type 'keys-at-most-one' ERROR /keys-at-most-one-2: not at most one key out of ['key-a', 'key-b'] is present for type 'keys-at-most-one': ['key-a', 'key-b'] INFO /keys-at-most-one-2:/key-a: verify using type 'none' INFO /keys-at-most-one-2:/key-b: verify using type 'none' INFO /keys-exactly-one-0: verify using type 'root' INFO /keys-exactly-one-0:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /keys-exactly-one-0:/copyrights: verify using type 'copyrights' INFO /keys-exactly-one-0:/copyrights[0]: verify using type 'copyright' INFO /keys-exactly-one-0:/enabled-by: verify using type 'enabled-by' INFO /keys-exactly-one-0:/links: verify using type 'links' INFO /keys-exactly-one-0:/type: verify using type 'name' INFO /keys-exactly-one-0: verify using type 'keys-exactly-one' ERROR /keys-exactly-one-0: not exactly one key out of ['key-a', 'key-b'] is present for type 'keys-exactly-one': [] INFO /keys-exactly-one-1: verify using type 'root' INFO /keys-exactly-one-1:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /keys-exactly-one-1:/copyrights: verify using type 'copyrights' INFO /keys-exactly-one-1:/copyrights[0]: verify using type 'copyright' INFO /keys-exactly-one-1:/enabled-by: verify using type 'enabled-by' INFO /keys-exactly-one-1:/links: verify using type 'links' INFO /keys-exactly-one-1:/type: verify using type 'name' INFO /keys-exactly-one-1: verify using type 'keys-exactly-one' INFO /keys-exactly-one-1:/key-a: verify using type 'none' INFO /keys-exactly-one-2: verify using type 'root' INFO /keys-exactly-one-2:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /keys-exactly-one-2:/copyrights: verify using type 'copyrights' INFO /keys-exactly-one-2:/copyrights[0]: verify using type 'copyright' INFO /keys-exactly-one-2:/enabled-by: verify using type 'enabled-by' INFO /keys-exactly-one-2:/links: verify using type 'links' INFO /keys-exactly-one-2:/type: verify using type 'name' INFO /keys-exactly-one-2: verify using type 'keys-exactly-one' ERROR /keys-exactly-one-2: not exactly one key out of ['key-a', 'key-b'] is present for type 'keys-exactly-one': ['key-a', 'key-b'] INFO /keys-exactly-one-2:/key-a: verify using type 'none' INFO /keys-exactly-one-2:/key-b: verify using type 'none' INFO /notype: verify using type 'root' ERROR /notype: missing mandatory keys for type 'root': ['type'] INFO /notype:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /notype:/copyrights: verify using type 'copyrights' INFO /notype:/copyrights[0]: verify using type 'copyright' INFO /notype:/enabled-by: verify using type 'enabled-by' INFO /notype:/links: verify using type 'links' ERROR /notype: subtype key 'type' not present for type 'root' INFO /spec/copyright: verify using type 'root' INFO /spec/copyright:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/copyright:/copyrights: verify using type 'copyrights' INFO /spec/copyright:/copyrights[0]: verify using type 'copyright' INFO /spec/copyright:/enabled-by: verify using type 'enabled-by' INFO /spec/copyright:/links: verify using type 'links' INFO /spec/copyright:/links[0]: verify using type 'link' INFO /spec/copyright:/links[0]/role: verify using type 'name' INFO /spec/copyright:/links[0]/uid: verify using type 'uid' INFO /spec/copyright:/links[0]: verify using type 'spec-member' INFO /spec/copyright:/type: verify using type 'name' INFO /spec/copyright: verify using type 'spec' INFO /spec/copyright:/spec-description: verify using type 'optional-str' INFO /spec/copyright:/spec-example: verify using type 'optional-str' INFO /spec/copyright:/spec-info: verify using type 'spec-info' INFO /spec/copyright:/spec-info/str: verify using type 'spec-str' INFO /spec/copyright:/spec-info/str/assert: verify using type 'spec-assert-str' INFO /spec/copyright:/spec-info/str/assert[0]: verify using type 'spec-assert-str' INFO /spec/copyright:/spec-info/str/assert[0]/re: verify using type 'str' INFO /spec/copyright:/spec-info/str/assert[1]: verify using type 'spec-assert-str' INFO /spec/copyright:/spec-info/str/assert[1]/re: verify using type 'str' INFO /spec/copyright:/spec-info/str/assert[2]: verify using type 'spec-assert-str' INFO /spec/copyright:/spec-info/str/assert[2]/re: verify using type 'str' INFO /spec/copyright:/spec-info/str/description: verify using type 'optional-str' INFO /spec/copyright:/spec-name: verify using type 'optional-str' INFO /spec/copyright:/spec-type: verify using type 'name' INFO /spec/copyrights: verify using type 'root' INFO /spec/copyrights:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/copyrights:/copyrights: verify using type 'copyrights' INFO /spec/copyrights:/copyrights[0]: verify using type 'copyright' INFO /spec/copyrights:/enabled-by: verify using type 'enabled-by' INFO /spec/copyrights:/links: verify using type 'links' INFO /spec/copyrights:/links[0]: verify using type 'link' INFO /spec/copyrights:/links[0]/role: verify using type 'name' INFO /spec/copyrights:/links[0]/uid: verify using type 'uid' INFO /spec/copyrights:/links[0]: verify using type 'spec-member' INFO /spec/copyrights:/type: verify using type 'name' INFO /spec/copyrights: verify using type 'spec' INFO /spec/copyrights:/spec-description: verify using type 'optional-str' INFO /spec/copyrights:/spec-example: verify using type 'optional-str' INFO /spec/copyrights:/spec-info: verify using type 'spec-info' INFO /spec/copyrights:/spec-info/list: verify using type 'spec-list' INFO /spec/copyrights:/spec-info/list/description: verify using type 'optional-str' INFO /spec/copyrights:/spec-info/list/spec-type: verify using type 'name' INFO /spec/copyrights:/spec-name: verify using type 'optional-str' INFO /spec/copyrights:/spec-type: verify using type 'name' INFO /spec/enabled-by: verify using type 'root' INFO /spec/enabled-by:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/enabled-by:/copyrights: verify using type 'copyrights' INFO /spec/enabled-by:/copyrights[0]: verify using type 'copyright' INFO /spec/enabled-by:/enabled-by: verify using type 'enabled-by' INFO /spec/enabled-by:/links: verify using type 'links' INFO /spec/enabled-by:/links[0]: verify using type 'link' INFO /spec/enabled-by:/links[0]/role: verify using type 'name' INFO /spec/enabled-by:/links[0]/uid: verify using type 'uid' INFO /spec/enabled-by:/links[0]: verify using type 'spec-member' INFO /spec/enabled-by:/type: verify using type 'name' INFO /spec/enabled-by: verify using type 'spec' INFO /spec/enabled-by:/spec-description: verify using type 'optional-str' INFO /spec/enabled-by:/spec-example: verify using type 'optional-str' INFO /spec/enabled-by:/spec-info: verify using type 'spec-info' INFO /spec/enabled-by:/spec-info/bool: verify using type 'spec-bool' INFO /spec/enabled-by:/spec-info/bool/description: verify using type 'optional-str' INFO /spec/enabled-by:/spec-info/dict: verify using type 'spec-dict' INFO /spec/enabled-by:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/enabled-by:/spec-info/dict/attributes/and: verify using type 'name' INFO /spec/enabled-by:/spec-info/dict/attributes/and: verify using type 'spec-attribute-value' INFO /spec/enabled-by:/spec-info/dict/attributes/and/description: verify using type 'optional-str' INFO /spec/enabled-by:/spec-info/dict/attributes/and/spec-type: verify using type 'name' INFO /spec/enabled-by:/spec-info/dict/attributes/not: verify using type 'name' INFO /spec/enabled-by:/spec-info/dict/attributes/not: verify using type 'spec-attribute-value' INFO /spec/enabled-by:/spec-info/dict/attributes/not/description: verify using type 'optional-str' INFO /spec/enabled-by:/spec-info/dict/attributes/not/spec-type: verify using type 'name' INFO /spec/enabled-by:/spec-info/dict/attributes/or: verify using type 'name' INFO /spec/enabled-by:/spec-info/dict/attributes/or: verify using type 'spec-attribute-value' INFO /spec/enabled-by:/spec-info/dict/attributes/or/description: verify using type 'optional-str' INFO /spec/enabled-by:/spec-info/dict/attributes/or/spec-type: verify using type 'name' INFO /spec/enabled-by:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/enabled-by:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/enabled-by:/spec-info/list: verify using type 'spec-list' INFO /spec/enabled-by:/spec-info/list/description: verify using type 'optional-str' INFO /spec/enabled-by:/spec-info/list/spec-type: verify using type 'name' INFO /spec/enabled-by:/spec-info/str: verify using type 'spec-str' INFO /spec/enabled-by:/spec-info/str/description: verify using type 'optional-str' INFO /spec/enabled-by:/spec-name: verify using type 'optional-str' INFO /spec/enabled-by:/spec-type: verify using type 'name' INFO /spec/enabled-by-list: verify using type 'root' INFO /spec/enabled-by-list:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/enabled-by-list:/copyrights: verify using type 'copyrights' INFO /spec/enabled-by-list:/copyrights[0]: verify using type 'copyright' INFO /spec/enabled-by-list:/enabled-by: verify using type 'enabled-by' INFO /spec/enabled-by-list:/links: verify using type 'links' INFO /spec/enabled-by-list:/links[0]: verify using type 'link' INFO /spec/enabled-by-list:/links[0]/role: verify using type 'name' INFO /spec/enabled-by-list:/links[0]/uid: verify using type 'uid' INFO /spec/enabled-by-list:/links[0]: verify using type 'spec-member' INFO /spec/enabled-by-list:/type: verify using type 'name' INFO /spec/enabled-by-list: verify using type 'spec' INFO /spec/enabled-by-list:/spec-description: verify using type 'optional-str' INFO /spec/enabled-by-list:/spec-example: verify using type 'optional-str' INFO /spec/enabled-by-list:/spec-info: verify using type 'spec-info' INFO /spec/enabled-by-list:/spec-info/list: verify using type 'spec-list' INFO /spec/enabled-by-list:/spec-info/list/description: verify using type 'optional-str' INFO /spec/enabled-by-list:/spec-info/list/spec-type: verify using type 'name' INFO /spec/enabled-by-list:/spec-name: verify using type 'optional-str' INFO /spec/enabled-by-list:/spec-type: verify using type 'name' INFO /spec/link: verify using type 'root' INFO /spec/link:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/link:/copyrights: verify using type 'copyrights' INFO /spec/link:/copyrights[0]: verify using type 'copyright' INFO /spec/link:/enabled-by: verify using type 'enabled-by' INFO /spec/link:/links: verify using type 'links' INFO /spec/link:/links[0]: verify using type 'link' INFO /spec/link:/links[0]/role: verify using type 'name' INFO /spec/link:/links[0]/uid: verify using type 'uid' INFO /spec/link:/links[0]: verify using type 'spec-member' INFO /spec/link:/type: verify using type 'name' INFO /spec/link: verify using type 'spec' INFO /spec/link:/spec-description: verify using type 'optional-str' INFO /spec/link:/spec-example: verify using type 'optional-str' INFO /spec/link:/spec-info: verify using type 'spec-info' INFO /spec/link:/spec-info/dict: verify using type 'spec-dict' INFO /spec/link:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/link:/spec-info/dict/attributes/role: verify using type 'name' INFO /spec/link:/spec-info/dict/attributes/role: verify using type 'spec-attribute-value' INFO /spec/link:/spec-info/dict/attributes/role/description: verify using type 'optional-str' INFO /spec/link:/spec-info/dict/attributes/role/spec-type: verify using type 'name' INFO /spec/link:/spec-info/dict/attributes/uid: verify using type 'name' INFO /spec/link:/spec-info/dict/attributes/uid: verify using type 'spec-attribute-value' INFO /spec/link:/spec-info/dict/attributes/uid/description: verify using type 'optional-str' INFO /spec/link:/spec-info/dict/attributes/uid/spec-type: verify using type 'name' INFO /spec/link:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/link:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/link:/spec-name: verify using type 'optional-str' INFO /spec/link:/spec-type: verify using type 'name' INFO /spec/links: verify using type 'root' INFO /spec/links:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/links:/copyrights: verify using type 'copyrights' INFO /spec/links:/copyrights[0]: verify using type 'copyright' INFO /spec/links:/enabled-by: verify using type 'enabled-by' INFO /spec/links:/links: verify using type 'links' INFO /spec/links:/links[0]: verify using type 'link' INFO /spec/links:/links[0]/role: verify using type 'name' INFO /spec/links:/links[0]/uid: verify using type 'uid' INFO /spec/links:/links[0]: verify using type 'spec-member' INFO /spec/links:/type: verify using type 'name' INFO /spec/links: verify using type 'spec' INFO /spec/links:/spec-description: verify using type 'optional-str' INFO /spec/links:/spec-example: verify using type 'optional-str' INFO /spec/links:/spec-info: verify using type 'spec-info' INFO /spec/links:/spec-info/list: verify using type 'spec-list' INFO /spec/links:/spec-info/list/description: verify using type 'optional-str' INFO /spec/links:/spec-info/list/spec-type: verify using type 'name' INFO /spec/links:/spec-name: verify using type 'optional-str' INFO /spec/links:/spec-type: verify using type 'name' INFO /spec/list-str: verify using type 'root' INFO /spec/list-str:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/list-str:/copyrights: verify using type 'copyrights' INFO /spec/list-str:/copyrights[0]: verify using type 'copyright' INFO /spec/list-str:/enabled-by: verify using type 'enabled-by' INFO /spec/list-str:/links: verify using type 'links' INFO /spec/list-str:/links[0]: verify using type 'link' INFO /spec/list-str:/links[0]/role: verify using type 'name' INFO /spec/list-str:/links[0]/uid: verify using type 'uid' INFO /spec/list-str:/links[0]: verify using type 'spec-member' INFO /spec/list-str:/type: verify using type 'name' INFO /spec/list-str: verify using type 'spec' INFO /spec/list-str:/spec-description: verify using type 'optional-str' INFO /spec/list-str:/spec-example: verify using type 'optional-str' INFO /spec/list-str:/spec-info: verify using type 'spec-info' INFO /spec/list-str:/spec-info/list: verify using type 'spec-list' INFO /spec/list-str:/spec-info/list/description: verify using type 'optional-str' INFO /spec/list-str:/spec-info/list/spec-type: verify using type 'name' INFO /spec/list-str:/spec-name: verify using type 'optional-str' INFO /spec/list-str:/spec-type: verify using type 'name' INFO /spec/optional-str: verify using type 'root' INFO /spec/optional-str:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/optional-str:/copyrights: verify using type 'copyrights' INFO /spec/optional-str:/copyrights[0]: verify using type 'copyright' INFO /spec/optional-str:/enabled-by: verify using type 'enabled-by' INFO /spec/optional-str:/links: verify using type 'links' INFO /spec/optional-str:/links[0]: verify using type 'link' INFO /spec/optional-str:/links[0]/role: verify using type 'name' INFO /spec/optional-str:/links[0]/uid: verify using type 'uid' INFO /spec/optional-str:/links[0]: verify using type 'spec-member' INFO /spec/optional-str:/type: verify using type 'name' INFO /spec/optional-str: verify using type 'spec' INFO /spec/optional-str:/spec-description: verify using type 'optional-str' INFO /spec/optional-str:/spec-example: verify using type 'optional-str' INFO /spec/optional-str:/spec-info: verify using type 'spec-info' INFO /spec/optional-str:/spec-info/none: verify using type 'none' INFO /spec/optional-str:/spec-info/str: verify using type 'spec-str' INFO /spec/optional-str:/spec-info/str/description: verify using type 'optional-str' INFO /spec/optional-str:/spec-name: verify using type 'optional-str' INFO /spec/optional-str:/spec-type: verify using type 'name' INFO /spec/root: verify using type 'root' INFO /spec/root:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/root:/copyrights: verify using type 'copyrights' INFO /spec/root:/copyrights[0]: verify using type 'copyright' INFO /spec/root:/enabled-by: verify using type 'enabled-by' INFO /spec/root:/links: verify using type 'links' INFO /spec/root:/type: verify using type 'name' INFO /spec/root: verify using type 'spec' INFO /spec/root:/spec-description: verify using type 'optional-str' INFO /spec/root:/spec-example: verify using type 'optional-str' INFO /spec/root:/spec-info: verify using type 'spec-info' INFO /spec/root:/spec-info/dict: verify using type 'spec-dict' INFO /spec/root:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/root:/spec-info/dict/attributes/SPDX-License-Identifier: verify using type 'name' INFO /spec/root:/spec-info/dict/attributes/SPDX-License-Identifier: verify using type 'spec-attribute-value' INFO /spec/root:/spec-info/dict/attributes/SPDX-License-Identifier/description: verify using type 'optional-str' INFO /spec/root:/spec-info/dict/attributes/SPDX-License-Identifier/spec-type: verify using type 'name' INFO /spec/root:/spec-info/dict/attributes/copyrights: verify using type 'name' INFO /spec/root:/spec-info/dict/attributes/copyrights: verify using type 'spec-attribute-value' INFO /spec/root:/spec-info/dict/attributes/copyrights/description: verify using type 'optional-str' INFO /spec/root:/spec-info/dict/attributes/copyrights/spec-type: verify using type 'name' INFO /spec/root:/spec-info/dict/attributes/enabled-by: verify using type 'name' INFO /spec/root:/spec-info/dict/attributes/enabled-by: verify using type 'spec-attribute-value' INFO /spec/root:/spec-info/dict/attributes/enabled-by/description: verify using type 'optional-str' INFO /spec/root:/spec-info/dict/attributes/enabled-by/spec-type: verify using type 'name' INFO /spec/root:/spec-info/dict/attributes/links: verify using type 'name' INFO /spec/root:/spec-info/dict/attributes/links: verify using type 'spec-attribute-value' INFO /spec/root:/spec-info/dict/attributes/links/description: verify using type 'optional-str' INFO /spec/root:/spec-info/dict/attributes/links/spec-type: verify using type 'name' INFO /spec/root:/spec-info/dict/attributes/type: verify using type 'name' INFO /spec/root:/spec-info/dict/attributes/type: verify using type 'spec-attribute-value' INFO /spec/root:/spec-info/dict/attributes/type/description: verify using type 'optional-str' INFO /spec/root:/spec-info/dict/attributes/type/spec-type: verify using type 'name' INFO /spec/root:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/root:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/root:/spec-name: verify using type 'optional-str' INFO /spec/root:/spec-type: verify using type 'name' INFO /spec/spdx-license-identifier: verify using type 'root' INFO /spec/spdx-license-identifier:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spdx-license-identifier:/copyrights: verify using type 'copyrights' INFO /spec/spdx-license-identifier:/copyrights[0]: verify using type 'copyright' INFO /spec/spdx-license-identifier:/enabled-by: verify using type 'enabled-by' INFO /spec/spdx-license-identifier:/links: verify using type 'links' INFO /spec/spdx-license-identifier:/links[0]: verify using type 'link' INFO /spec/spdx-license-identifier:/links[0]/role: verify using type 'name' INFO /spec/spdx-license-identifier:/links[0]/uid: verify using type 'uid' INFO /spec/spdx-license-identifier:/links[0]: verify using type 'spec-member' INFO /spec/spdx-license-identifier:/type: verify using type 'name' INFO /spec/spdx-license-identifier: verify using type 'spec' INFO /spec/spdx-license-identifier:/spec-description: verify using type 'optional-str' INFO /spec/spdx-license-identifier:/spec-example: verify using type 'optional-str' INFO /spec/spdx-license-identifier:/spec-info: verify using type 'spec-info' INFO /spec/spdx-license-identifier:/spec-info/str: verify using type 'spec-str' INFO /spec/spdx-license-identifier:/spec-info/str/assert: verify using type 'spec-assert-str' INFO /spec/spdx-license-identifier:/spec-info/str/assert[0]: verify using type 'spec-assert-str' INFO /spec/spdx-license-identifier:/spec-info/str/assert[0]/eq: verify using type 'str' INFO /spec/spdx-license-identifier:/spec-info/str/assert[1]: verify using type 'spec-assert-str' INFO /spec/spdx-license-identifier:/spec-info/str/assert[1]/eq: verify using type 'str' INFO /spec/spdx-license-identifier:/spec-info/str/assert[2]: verify using type 'spec-assert-str' INFO /spec/spdx-license-identifier:/spec-info/str/assert[2]/eq: verify using type 'str' INFO /spec/spdx-license-identifier:/spec-info/str/description: verify using type 'optional-str' INFO /spec/spdx-license-identifier:/spec-name: verify using type 'optional-str' INFO /spec/spdx-license-identifier:/spec-type: verify using type 'name' INFO /spec/spec: verify using type 'root' INFO /spec/spec:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec:/copyrights: verify using type 'copyrights' INFO /spec/spec:/copyrights[0]: verify using type 'copyright' INFO /spec/spec:/enabled-by: verify using type 'enabled-by' INFO /spec/spec:/links: verify using type 'links' INFO /spec/spec:/links[0]: verify using type 'link' INFO /spec/spec:/links[0]/role: verify using type 'name' INFO /spec/spec:/links[0]/uid: verify using type 'uid' INFO /spec/spec:/links[0]: verify using type 'spec-member' INFO /spec/spec:/links[1]: verify using type 'link' INFO /spec/spec:/links[1]/role: verify using type 'name' INFO /spec/spec:/links[1]/uid: verify using type 'uid' INFO /spec/spec:/links[1]: verify using type 'spec-refinement' INFO /spec/spec:/links[1]/spec-key: verify using type 'name' INFO /spec/spec:/links[1]/spec-value: verify using type 'name' INFO /spec/spec:/type: verify using type 'name' INFO /spec/spec: verify using type 'spec' INFO /spec/spec:/spec-description: verify using type 'optional-str' INFO /spec/spec:/spec-example: verify using type 'optional-str' INFO /spec/spec:/spec-info: verify using type 'spec-info' INFO /spec/spec:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec:/spec-info/dict/attributes/spec-description: verify using type 'name' INFO /spec/spec:/spec-info/dict/attributes/spec-description: verify using type 'spec-attribute-value' INFO /spec/spec:/spec-info/dict/attributes/spec-description/description: verify using type 'optional-str' INFO /spec/spec:/spec-info/dict/attributes/spec-description/spec-type: verify using type 'name' INFO /spec/spec:/spec-info/dict/attributes/spec-example: verify using type 'name' INFO /spec/spec:/spec-info/dict/attributes/spec-example: verify using type 'spec-attribute-value' INFO /spec/spec:/spec-info/dict/attributes/spec-example/description: verify using type 'optional-str' INFO /spec/spec:/spec-info/dict/attributes/spec-example/spec-type: verify using type 'name' INFO /spec/spec:/spec-info/dict/attributes/spec-info: verify using type 'name' INFO /spec/spec:/spec-info/dict/attributes/spec-info: verify using type 'spec-attribute-value' INFO /spec/spec:/spec-info/dict/attributes/spec-info/description: verify using type 'optional-str' INFO /spec/spec:/spec-info/dict/attributes/spec-info/spec-type: verify using type 'name' INFO /spec/spec:/spec-info/dict/attributes/spec-name: verify using type 'name' INFO /spec/spec:/spec-info/dict/attributes/spec-name: verify using type 'spec-attribute-value' INFO /spec/spec:/spec-info/dict/attributes/spec-name/description: verify using type 'optional-str' INFO /spec/spec:/spec-info/dict/attributes/spec-name/spec-type: verify using type 'name' INFO /spec/spec:/spec-info/dict/attributes/spec-type: verify using type 'name' INFO /spec/spec:/spec-info/dict/attributes/spec-type: verify using type 'spec-attribute-value' INFO /spec/spec:/spec-info/dict/attributes/spec-type/description: verify using type 'optional-str' INFO /spec/spec:/spec-info/dict/attributes/spec-type/spec-type: verify using type 'name' INFO /spec/spec:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec:/spec-name: verify using type 'optional-str' INFO /spec/spec:/spec-type: verify using type 'name' INFO /spec/spec-assert-float: verify using type 'root' INFO /spec/spec-assert-float:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-assert-float:/copyrights: verify using type 'copyrights' INFO /spec/spec-assert-float:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-assert-float:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-assert-float:/links: verify using type 'links' INFO /spec/spec-assert-float:/links[0]: verify using type 'link' INFO /spec/spec-assert-float:/links[0]/role: verify using type 'name' INFO /spec/spec-assert-float:/links[0]/uid: verify using type 'uid' INFO /spec/spec-assert-float:/links[0]: verify using type 'spec-member' INFO /spec/spec-assert-float:/type: verify using type 'name' INFO /spec/spec-assert-float: verify using type 'spec' INFO /spec/spec-assert-float:/spec-description: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-example: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-info: verify using type 'spec-info' INFO /spec/spec-assert-float:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-assert-float:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-assert-float:/spec-info/dict/attributes/and: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/and: verify using type 'spec-attribute-value' INFO /spec/spec-assert-float:/spec-info/dict/attributes/and/description: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-info/dict/attributes/and/spec-type: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/eq: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/eq: verify using type 'spec-attribute-value' INFO /spec/spec-assert-float:/spec-info/dict/attributes/eq/description: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-info/dict/attributes/eq/spec-type: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/ge: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/ge: verify using type 'spec-attribute-value' INFO /spec/spec-assert-float:/spec-info/dict/attributes/ge/description: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-info/dict/attributes/ge/spec-type: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/gt: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/gt: verify using type 'spec-attribute-value' INFO /spec/spec-assert-float:/spec-info/dict/attributes/gt/description: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-info/dict/attributes/gt/spec-type: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/le: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/le: verify using type 'spec-attribute-value' INFO /spec/spec-assert-float:/spec-info/dict/attributes/le/description: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-info/dict/attributes/le/spec-type: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/lt: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/lt: verify using type 'spec-attribute-value' INFO /spec/spec-assert-float:/spec-info/dict/attributes/lt/description: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-info/dict/attributes/lt/spec-type: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/ne: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/ne: verify using type 'spec-attribute-value' INFO /spec/spec-assert-float:/spec-info/dict/attributes/ne/description: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-info/dict/attributes/ne/spec-type: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/not: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/not: verify using type 'spec-attribute-value' INFO /spec/spec-assert-float:/spec-info/dict/attributes/not/description: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-info/dict/attributes/not/spec-type: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/or: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/attributes/or: verify using type 'spec-attribute-value' INFO /spec/spec-assert-float:/spec-info/dict/attributes/or/description: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-info/dict/attributes/or/spec-type: verify using type 'name' INFO /spec/spec-assert-float:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-assert-float:/spec-info/list: verify using type 'spec-list' INFO /spec/spec-assert-float:/spec-info/list/description: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-info/list/spec-type: verify using type 'name' INFO /spec/spec-assert-float:/spec-name: verify using type 'optional-str' INFO /spec/spec-assert-float:/spec-type: verify using type 'name' INFO /spec/spec-assert-float-list: verify using type 'root' INFO /spec/spec-assert-float-list:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-assert-float-list:/copyrights: verify using type 'copyrights' INFO /spec/spec-assert-float-list:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-assert-float-list:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-assert-float-list:/links: verify using type 'links' INFO /spec/spec-assert-float-list:/links[0]: verify using type 'link' INFO /spec/spec-assert-float-list:/links[0]/role: verify using type 'name' INFO /spec/spec-assert-float-list:/links[0]/uid: verify using type 'uid' INFO /spec/spec-assert-float-list:/links[0]: verify using type 'spec-member' INFO /spec/spec-assert-float-list:/type: verify using type 'name' INFO /spec/spec-assert-float-list: verify using type 'spec' INFO /spec/spec-assert-float-list:/spec-description: verify using type 'optional-str' INFO /spec/spec-assert-float-list:/spec-example: verify using type 'optional-str' INFO /spec/spec-assert-float-list:/spec-info: verify using type 'spec-info' INFO /spec/spec-assert-float-list:/spec-info/list: verify using type 'spec-list' INFO /spec/spec-assert-float-list:/spec-info/list/description: verify using type 'optional-str' INFO /spec/spec-assert-float-list:/spec-info/list/spec-type: verify using type 'name' INFO /spec/spec-assert-float-list:/spec-name: verify using type 'optional-str' INFO /spec/spec-assert-float-list:/spec-type: verify using type 'name' INFO /spec/spec-assert-int: verify using type 'root' INFO /spec/spec-assert-int:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-assert-int:/copyrights: verify using type 'copyrights' INFO /spec/spec-assert-int:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-assert-int:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-assert-int:/links: verify using type 'links' INFO /spec/spec-assert-int:/links[0]: verify using type 'link' INFO /spec/spec-assert-int:/links[0]/role: verify using type 'name' INFO /spec/spec-assert-int:/links[0]/uid: verify using type 'uid' INFO /spec/spec-assert-int:/links[0]: verify using type 'spec-member' INFO /spec/spec-assert-int:/type: verify using type 'name' INFO /spec/spec-assert-int: verify using type 'spec' INFO /spec/spec-assert-int:/spec-description: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-example: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-info: verify using type 'spec-info' INFO /spec/spec-assert-int:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-assert-int:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-assert-int:/spec-info/dict/attributes/and: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/and: verify using type 'spec-attribute-value' INFO /spec/spec-assert-int:/spec-info/dict/attributes/and/description: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-info/dict/attributes/and/spec-type: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/eq: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/eq: verify using type 'spec-attribute-value' INFO /spec/spec-assert-int:/spec-info/dict/attributes/eq/description: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-info/dict/attributes/eq/spec-type: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/ge: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/ge: verify using type 'spec-attribute-value' INFO /spec/spec-assert-int:/spec-info/dict/attributes/ge/description: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-info/dict/attributes/ge/spec-type: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/gt: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/gt: verify using type 'spec-attribute-value' INFO /spec/spec-assert-int:/spec-info/dict/attributes/gt/description: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-info/dict/attributes/gt/spec-type: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/le: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/le: verify using type 'spec-attribute-value' INFO /spec/spec-assert-int:/spec-info/dict/attributes/le/description: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-info/dict/attributes/le/spec-type: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/lt: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/lt: verify using type 'spec-attribute-value' INFO /spec/spec-assert-int:/spec-info/dict/attributes/lt/description: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-info/dict/attributes/lt/spec-type: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/ne: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/ne: verify using type 'spec-attribute-value' INFO /spec/spec-assert-int:/spec-info/dict/attributes/ne/description: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-info/dict/attributes/ne/spec-type: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/not: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/not: verify using type 'spec-attribute-value' INFO /spec/spec-assert-int:/spec-info/dict/attributes/not/description: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-info/dict/attributes/not/spec-type: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/or: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/attributes/or: verify using type 'spec-attribute-value' INFO /spec/spec-assert-int:/spec-info/dict/attributes/or/description: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-info/dict/attributes/or/spec-type: verify using type 'name' INFO /spec/spec-assert-int:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-assert-int:/spec-info/list: verify using type 'spec-list' INFO /spec/spec-assert-int:/spec-info/list/description: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-info/list/spec-type: verify using type 'name' INFO /spec/spec-assert-int:/spec-name: verify using type 'optional-str' INFO /spec/spec-assert-int:/spec-type: verify using type 'name' INFO /spec/spec-assert-int-list: verify using type 'root' INFO /spec/spec-assert-int-list:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-assert-int-list:/copyrights: verify using type 'copyrights' INFO /spec/spec-assert-int-list:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-assert-int-list:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-assert-int-list:/links: verify using type 'links' INFO /spec/spec-assert-int-list:/links[0]: verify using type 'link' INFO /spec/spec-assert-int-list:/links[0]/role: verify using type 'name' INFO /spec/spec-assert-int-list:/links[0]/uid: verify using type 'uid' INFO /spec/spec-assert-int-list:/links[0]: verify using type 'spec-member' INFO /spec/spec-assert-int-list:/type: verify using type 'name' INFO /spec/spec-assert-int-list: verify using type 'spec' INFO /spec/spec-assert-int-list:/spec-description: verify using type 'optional-str' INFO /spec/spec-assert-int-list:/spec-example: verify using type 'optional-str' INFO /spec/spec-assert-int-list:/spec-info: verify using type 'spec-info' INFO /spec/spec-assert-int-list:/spec-info/list: verify using type 'spec-list' INFO /spec/spec-assert-int-list:/spec-info/list/description: verify using type 'optional-str' INFO /spec/spec-assert-int-list:/spec-info/list/spec-type: verify using type 'name' INFO /spec/spec-assert-int-list:/spec-name: verify using type 'optional-str' INFO /spec/spec-assert-int-list:/spec-type: verify using type 'name' INFO /spec/spec-assert-str: verify using type 'root' INFO /spec/spec-assert-str:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-assert-str:/copyrights: verify using type 'copyrights' INFO /spec/spec-assert-str:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-assert-str:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-assert-str:/links: verify using type 'links' INFO /spec/spec-assert-str:/links[0]: verify using type 'link' INFO /spec/spec-assert-str:/links[0]/role: verify using type 'name' INFO /spec/spec-assert-str:/links[0]/uid: verify using type 'uid' INFO /spec/spec-assert-str:/links[0]: verify using type 'spec-member' INFO /spec/spec-assert-str:/type: verify using type 'name' INFO /spec/spec-assert-str: verify using type 'spec' INFO /spec/spec-assert-str:/spec-description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-example: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info: verify using type 'spec-info' INFO /spec/spec-assert-str:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-assert-str:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-assert-str:/spec-info/dict/attributes/and: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/and: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/and/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/and/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/contains: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/contains: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/contains/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/contains/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/eq: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/eq: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/eq/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/eq/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/ge: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/ge: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/ge/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/ge/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/gt: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/gt: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/gt/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/gt/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/in: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/in: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/in/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/in/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/le: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/le: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/le/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/le/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/lt: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/lt: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/lt/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/lt/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/ne: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/ne: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/ne/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/ne/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/not: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/not: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/not/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/not/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/or: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/or: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/or/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/or/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/re: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/re: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/re/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/re/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/uid: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/attributes/uid: verify using type 'spec-attribute-value' INFO /spec/spec-assert-str:/spec-info/dict/attributes/uid/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/attributes/uid/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-assert-str:/spec-info/list: verify using type 'spec-list' INFO /spec/spec-assert-str:/spec-info/list/description: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-info/list/spec-type: verify using type 'name' INFO /spec/spec-assert-str:/spec-name: verify using type 'optional-str' INFO /spec/spec-assert-str:/spec-type: verify using type 'name' INFO /spec/spec-assert-str-list: verify using type 'root' INFO /spec/spec-assert-str-list:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-assert-str-list:/copyrights: verify using type 'copyrights' INFO /spec/spec-assert-str-list:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-assert-str-list:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-assert-str-list:/links: verify using type 'links' INFO /spec/spec-assert-str-list:/links[0]: verify using type 'link' INFO /spec/spec-assert-str-list:/links[0]/role: verify using type 'name' INFO /spec/spec-assert-str-list:/links[0]/uid: verify using type 'uid' INFO /spec/spec-assert-str-list:/links[0]: verify using type 'spec-member' INFO /spec/spec-assert-str-list:/type: verify using type 'name' INFO /spec/spec-assert-str-list: verify using type 'spec' INFO /spec/spec-assert-str-list:/spec-description: verify using type 'optional-str' INFO /spec/spec-assert-str-list:/spec-example: verify using type 'optional-str' INFO /spec/spec-assert-str-list:/spec-info: verify using type 'spec-info' INFO /spec/spec-assert-str-list:/spec-info/list: verify using type 'spec-list' INFO /spec/spec-assert-str-list:/spec-info/list/description: verify using type 'optional-str' INFO /spec/spec-assert-str-list:/spec-info/list/spec-type: verify using type 'name' INFO /spec/spec-assert-str-list:/spec-name: verify using type 'optional-str' INFO /spec/spec-assert-str-list:/spec-type: verify using type 'name' INFO /spec/spec-attribute-value: verify using type 'root' INFO /spec/spec-attribute-value:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-attribute-value:/copyrights: verify using type 'copyrights' INFO /spec/spec-attribute-value:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-attribute-value:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-attribute-value:/links: verify using type 'links' INFO /spec/spec-attribute-value:/links[0]: verify using type 'link' INFO /spec/spec-attribute-value:/links[0]/role: verify using type 'name' INFO /spec/spec-attribute-value:/links[0]/uid: verify using type 'uid' INFO /spec/spec-attribute-value:/links[0]: verify using type 'spec-member' INFO /spec/spec-attribute-value:/type: verify using type 'name' INFO /spec/spec-attribute-value: verify using type 'spec' INFO /spec/spec-attribute-value:/spec-description: verify using type 'optional-str' INFO /spec/spec-attribute-value:/spec-example: verify using type 'optional-str' INFO /spec/spec-attribute-value:/spec-info: verify using type 'spec-info' INFO /spec/spec-attribute-value:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-attribute-value:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-attribute-value:/spec-info/dict/attributes/description: verify using type 'name' INFO /spec/spec-attribute-value:/spec-info/dict/attributes/description: verify using type 'spec-attribute-value' INFO /spec/spec-attribute-value:/spec-info/dict/attributes/description/description: verify using type 'optional-str' INFO /spec/spec-attribute-value:/spec-info/dict/attributes/description/spec-type: verify using type 'name' INFO /spec/spec-attribute-value:/spec-info/dict/attributes/spec-type: verify using type 'name' INFO /spec/spec-attribute-value:/spec-info/dict/attributes/spec-type: verify using type 'spec-attribute-value' INFO /spec/spec-attribute-value:/spec-info/dict/attributes/spec-type/description: verify using type 'optional-str' INFO /spec/spec-attribute-value:/spec-info/dict/attributes/spec-type/spec-type: verify using type 'name' INFO /spec/spec-attribute-value:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-attribute-value:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-attribute-value:/spec-name: verify using type 'optional-str' INFO /spec/spec-attribute-value:/spec-type: verify using type 'name' INFO /spec/spec-attributes: verify using type 'root' INFO /spec/spec-attributes:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-attributes:/copyrights: verify using type 'copyrights' INFO /spec/spec-attributes:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-attributes:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-attributes:/links: verify using type 'links' INFO /spec/spec-attributes:/links[0]: verify using type 'link' INFO /spec/spec-attributes:/links[0]/role: verify using type 'name' INFO /spec/spec-attributes:/links[0]/uid: verify using type 'uid' INFO /spec/spec-attributes:/links[0]: verify using type 'spec-member' INFO /spec/spec-attributes:/type: verify using type 'name' INFO /spec/spec-attributes: verify using type 'spec' INFO /spec/spec-attributes:/spec-description: verify using type 'optional-str' INFO /spec/spec-attributes:/spec-example: verify using type 'optional-str' INFO /spec/spec-attributes:/spec-info: verify using type 'spec-info' INFO /spec/spec-attributes:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-attributes:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-attributes:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-attributes:/spec-info/dict/generic-attributes: verify using type 'spec-generic-attributes' INFO /spec/spec-attributes:/spec-info/dict/generic-attributes/description: verify using type 'optional-str' INFO /spec/spec-attributes:/spec-info/dict/generic-attributes/key-spec-type: verify using type 'name' INFO /spec/spec-attributes:/spec-info/dict/generic-attributes/value-spec-type: verify using type 'name' INFO /spec/spec-attributes:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-attributes:/spec-name: verify using type 'optional-str' INFO /spec/spec-attributes:/spec-type: verify using type 'name' INFO /spec/spec-bool: verify using type 'root' INFO /spec/spec-bool:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-bool:/copyrights: verify using type 'copyrights' INFO /spec/spec-bool:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-bool:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-bool:/links: verify using type 'links' INFO /spec/spec-bool:/links[0]: verify using type 'link' INFO /spec/spec-bool:/links[0]/role: verify using type 'name' INFO /spec/spec-bool:/links[0]/uid: verify using type 'uid' INFO /spec/spec-bool:/links[0]: verify using type 'spec-member' INFO /spec/spec-bool:/type: verify using type 'name' INFO /spec/spec-bool: verify using type 'spec' INFO /spec/spec-bool:/spec-description: verify using type 'optional-str' INFO /spec/spec-bool:/spec-example: verify using type 'optional-str' INFO /spec/spec-bool:/spec-info: verify using type 'spec-info' INFO /spec/spec-bool:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-bool:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-bool:/spec-info/dict/attributes/assert: verify using type 'name' INFO /spec/spec-bool:/spec-info/dict/attributes/assert: verify using type 'spec-attribute-value' INFO /spec/spec-bool:/spec-info/dict/attributes/assert/description: verify using type 'optional-str' INFO /spec/spec-bool:/spec-info/dict/attributes/assert/spec-type: verify using type 'name' INFO /spec/spec-bool:/spec-info/dict/attributes/description: verify using type 'name' INFO /spec/spec-bool:/spec-info/dict/attributes/description: verify using type 'spec-attribute-value' INFO /spec/spec-bool:/spec-info/dict/attributes/description/description: verify using type 'optional-str' INFO /spec/spec-bool:/spec-info/dict/attributes/description/spec-type: verify using type 'name' INFO /spec/spec-bool:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-bool:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-bool:/spec-info/dict/mandatory-attributes[0]: verify using type 'name' INFO /spec/spec-bool:/spec-name: verify using type 'optional-str' INFO /spec/spec-bool:/spec-type: verify using type 'name' INFO /spec/spec-dict: verify using type 'root' INFO /spec/spec-dict:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-dict:/copyrights: verify using type 'copyrights' INFO /spec/spec-dict:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-dict:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-dict:/links: verify using type 'links' INFO /spec/spec-dict:/links[0]: verify using type 'link' INFO /spec/spec-dict:/links[0]/role: verify using type 'name' INFO /spec/spec-dict:/links[0]/uid: verify using type 'uid' INFO /spec/spec-dict:/links[0]: verify using type 'spec-member' INFO /spec/spec-dict:/type: verify using type 'name' INFO /spec/spec-dict: verify using type 'spec' INFO /spec/spec-dict:/spec-description: verify using type 'optional-str' INFO /spec/spec-dict:/spec-example: verify using type 'optional-str' INFO /spec/spec-dict:/spec-info: verify using type 'spec-info' INFO /spec/spec-dict:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-dict:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-dict:/spec-info/dict/attributes/attributes: verify using type 'name' INFO /spec/spec-dict:/spec-info/dict/attributes/attributes: verify using type 'spec-attribute-value' INFO /spec/spec-dict:/spec-info/dict/attributes/attributes/description: verify using type 'optional-str' INFO /spec/spec-dict:/spec-info/dict/attributes/attributes/spec-type: verify using type 'name' INFO /spec/spec-dict:/spec-info/dict/attributes/description: verify using type 'name' INFO /spec/spec-dict:/spec-info/dict/attributes/description: verify using type 'spec-attribute-value' INFO /spec/spec-dict:/spec-info/dict/attributes/description/description: verify using type 'optional-str' INFO /spec/spec-dict:/spec-info/dict/attributes/description/spec-type: verify using type 'name' INFO /spec/spec-dict:/spec-info/dict/attributes/generic-attributes: verify using type 'name' INFO /spec/spec-dict:/spec-info/dict/attributes/generic-attributes: verify using type 'spec-attribute-value' INFO /spec/spec-dict:/spec-info/dict/attributes/generic-attributes/description: verify using type 'optional-str' INFO /spec/spec-dict:/spec-info/dict/attributes/generic-attributes/spec-type: verify using type 'name' INFO /spec/spec-dict:/spec-info/dict/attributes/mandatory-attributes: verify using type 'name' INFO /spec/spec-dict:/spec-info/dict/attributes/mandatory-attributes: verify using type 'spec-attribute-value' INFO /spec/spec-dict:/spec-info/dict/attributes/mandatory-attributes/description: verify using type 'optional-str' INFO /spec/spec-dict:/spec-info/dict/attributes/mandatory-attributes/spec-type: verify using type 'name' INFO /spec/spec-dict:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-dict:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-dict:/spec-info/dict/mandatory-attributes[0]: verify using type 'name' INFO /spec/spec-dict:/spec-info/dict/mandatory-attributes[1]: verify using type 'name' INFO /spec/spec-dict:/spec-info/dict/mandatory-attributes[2]: verify using type 'name' INFO /spec/spec-dict:/spec-name: verify using type 'optional-str' INFO /spec/spec-dict:/spec-type: verify using type 'name' INFO /spec/spec-float: verify using type 'root' INFO /spec/spec-float:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-float:/copyrights: verify using type 'copyrights' INFO /spec/spec-float:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-float:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-float:/links: verify using type 'links' INFO /spec/spec-float:/links[0]: verify using type 'link' INFO /spec/spec-float:/links[0]/role: verify using type 'name' INFO /spec/spec-float:/links[0]/uid: verify using type 'uid' INFO /spec/spec-float:/links[0]: verify using type 'spec-member' INFO /spec/spec-float:/type: verify using type 'name' INFO /spec/spec-float: verify using type 'spec' INFO /spec/spec-float:/spec-description: verify using type 'optional-str' INFO /spec/spec-float:/spec-example: verify using type 'optional-str' INFO /spec/spec-float:/spec-info: verify using type 'spec-info' INFO /spec/spec-float:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-float:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-float:/spec-info/dict/attributes/assert: verify using type 'name' INFO /spec/spec-float:/spec-info/dict/attributes/assert: verify using type 'spec-attribute-value' INFO /spec/spec-float:/spec-info/dict/attributes/assert/description: verify using type 'optional-str' INFO /spec/spec-float:/spec-info/dict/attributes/assert/spec-type: verify using type 'name' INFO /spec/spec-float:/spec-info/dict/attributes/description: verify using type 'name' INFO /spec/spec-float:/spec-info/dict/attributes/description: verify using type 'spec-attribute-value' INFO /spec/spec-float:/spec-info/dict/attributes/description/description: verify using type 'optional-str' INFO /spec/spec-float:/spec-info/dict/attributes/description/spec-type: verify using type 'name' INFO /spec/spec-float:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-float:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-float:/spec-info/dict/mandatory-attributes[0]: verify using type 'name' INFO /spec/spec-float:/spec-name: verify using type 'optional-str' INFO /spec/spec-float:/spec-type: verify using type 'name' INFO /spec/spec-generic-attributes: verify using type 'root' INFO /spec/spec-generic-attributes:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-generic-attributes:/copyrights: verify using type 'copyrights' INFO /spec/spec-generic-attributes:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-generic-attributes:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-generic-attributes:/links: verify using type 'links' INFO /spec/spec-generic-attributes:/links[0]: verify using type 'link' INFO /spec/spec-generic-attributes:/links[0]/role: verify using type 'name' INFO /spec/spec-generic-attributes:/links[0]/uid: verify using type 'uid' INFO /spec/spec-generic-attributes:/links[0]: verify using type 'spec-member' INFO /spec/spec-generic-attributes:/type: verify using type 'name' INFO /spec/spec-generic-attributes: verify using type 'spec' INFO /spec/spec-generic-attributes:/spec-description: verify using type 'optional-str' INFO /spec/spec-generic-attributes:/spec-example: verify using type 'optional-str' INFO /spec/spec-generic-attributes:/spec-info: verify using type 'spec-info' INFO /spec/spec-generic-attributes:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes/description: verify using type 'name' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes/description: verify using type 'spec-attribute-value' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes/description/description: verify using type 'optional-str' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes/description/spec-type: verify using type 'name' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes/key-spec-type: verify using type 'name' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes/key-spec-type: verify using type 'spec-attribute-value' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes/key-spec-type/description: verify using type 'optional-str' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes/key-spec-type/spec-type: verify using type 'name' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes/value-spec-type: verify using type 'name' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes/value-spec-type: verify using type 'spec-attribute-value' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes/value-spec-type/description: verify using type 'optional-str' INFO /spec/spec-generic-attributes:/spec-info/dict/attributes/value-spec-type/spec-type: verify using type 'name' INFO /spec/spec-generic-attributes:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-generic-attributes:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-generic-attributes:/spec-name: verify using type 'optional-str' INFO /spec/spec-generic-attributes:/spec-type: verify using type 'name' INFO /spec/spec-info: verify using type 'root' INFO /spec/spec-info:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-info:/copyrights: verify using type 'copyrights' INFO /spec/spec-info:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-info:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-info:/links: verify using type 'links' INFO /spec/spec-info:/links[0]: verify using type 'link' INFO /spec/spec-info:/links[0]/role: verify using type 'name' INFO /spec/spec-info:/links[0]/uid: verify using type 'uid' INFO /spec/spec-info:/links[0]: verify using type 'spec-member' INFO /spec/spec-info:/type: verify using type 'name' INFO /spec/spec-info: verify using type 'spec' INFO /spec/spec-info:/spec-description: verify using type 'optional-str' INFO /spec/spec-info:/spec-example: verify using type 'optional-str' INFO /spec/spec-info:/spec-info: verify using type 'spec-info' INFO /spec/spec-info:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-info:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-info:/spec-info/dict/attributes/bool: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/bool: verify using type 'spec-attribute-value' INFO /spec/spec-info:/spec-info/dict/attributes/bool/description: verify using type 'optional-str' INFO /spec/spec-info:/spec-info/dict/attributes/bool/spec-type: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/dict: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/dict: verify using type 'spec-attribute-value' INFO /spec/spec-info:/spec-info/dict/attributes/dict/description: verify using type 'optional-str' INFO /spec/spec-info:/spec-info/dict/attributes/dict/spec-type: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/float: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/float: verify using type 'spec-attribute-value' INFO /spec/spec-info:/spec-info/dict/attributes/float/description: verify using type 'optional-str' INFO /spec/spec-info:/spec-info/dict/attributes/float/spec-type: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/int: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/int: verify using type 'spec-attribute-value' INFO /spec/spec-info:/spec-info/dict/attributes/int/description: verify using type 'optional-str' INFO /spec/spec-info:/spec-info/dict/attributes/int/spec-type: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/list: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/list: verify using type 'spec-attribute-value' INFO /spec/spec-info:/spec-info/dict/attributes/list/description: verify using type 'optional-str' INFO /spec/spec-info:/spec-info/dict/attributes/list/spec-type: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/none: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/none: verify using type 'spec-attribute-value' INFO /spec/spec-info:/spec-info/dict/attributes/none/description: verify using type 'optional-str' INFO /spec/spec-info:/spec-info/dict/attributes/none/spec-type: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/str: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/attributes/str: verify using type 'spec-attribute-value' INFO /spec/spec-info:/spec-info/dict/attributes/str/description: verify using type 'optional-str' INFO /spec/spec-info:/spec-info/dict/attributes/str/spec-type: verify using type 'name' INFO /spec/spec-info:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-info:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-info:/spec-name: verify using type 'optional-str' INFO /spec/spec-info:/spec-type: verify using type 'name' INFO /spec/spec-int: verify using type 'root' INFO /spec/spec-int:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-int:/copyrights: verify using type 'copyrights' INFO /spec/spec-int:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-int:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-int:/links: verify using type 'links' INFO /spec/spec-int:/links[0]: verify using type 'link' INFO /spec/spec-int:/links[0]/role: verify using type 'name' INFO /spec/spec-int:/links[0]/uid: verify using type 'uid' INFO /spec/spec-int:/links[0]: verify using type 'spec-member' INFO /spec/spec-int:/type: verify using type 'name' INFO /spec/spec-int: verify using type 'spec' INFO /spec/spec-int:/spec-description: verify using type 'optional-str' INFO /spec/spec-int:/spec-example: verify using type 'optional-str' INFO /spec/spec-int:/spec-info: verify using type 'spec-info' INFO /spec/spec-int:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-int:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-int:/spec-info/dict/attributes/assert: verify using type 'name' INFO /spec/spec-int:/spec-info/dict/attributes/assert: verify using type 'spec-attribute-value' INFO /spec/spec-int:/spec-info/dict/attributes/assert/description: verify using type 'optional-str' INFO /spec/spec-int:/spec-info/dict/attributes/assert/spec-type: verify using type 'name' INFO /spec/spec-int:/spec-info/dict/attributes/description: verify using type 'name' INFO /spec/spec-int:/spec-info/dict/attributes/description: verify using type 'spec-attribute-value' INFO /spec/spec-int:/spec-info/dict/attributes/description/description: verify using type 'optional-str' INFO /spec/spec-int:/spec-info/dict/attributes/description/spec-type: verify using type 'name' INFO /spec/spec-int:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-int:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-int:/spec-info/dict/mandatory-attributes[0]: verify using type 'name' INFO /spec/spec-int:/spec-name: verify using type 'optional-str' INFO /spec/spec-int:/spec-type: verify using type 'name' INFO /spec/spec-list: verify using type 'root' INFO /spec/spec-list:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-list:/copyrights: verify using type 'copyrights' INFO /spec/spec-list:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-list:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-list:/links: verify using type 'links' INFO /spec/spec-list:/links[0]: verify using type 'link' INFO /spec/spec-list:/links[0]/role: verify using type 'name' INFO /spec/spec-list:/links[0]/uid: verify using type 'uid' INFO /spec/spec-list:/links[0]: verify using type 'spec-member' INFO /spec/spec-list:/type: verify using type 'name' INFO /spec/spec-list: verify using type 'spec' INFO /spec/spec-list:/spec-description: verify using type 'optional-str' INFO /spec/spec-list:/spec-example: verify using type 'optional-str' INFO /spec/spec-list:/spec-info: verify using type 'spec-info' INFO /spec/spec-list:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-list:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-list:/spec-info/dict/attributes/description: verify using type 'name' INFO /spec/spec-list:/spec-info/dict/attributes/description: verify using type 'spec-attribute-value' INFO /spec/spec-list:/spec-info/dict/attributes/description/description: verify using type 'optional-str' INFO /spec/spec-list:/spec-info/dict/attributes/description/spec-type: verify using type 'name' INFO /spec/spec-list:/spec-info/dict/attributes/spec-type: verify using type 'name' INFO /spec/spec-list:/spec-info/dict/attributes/spec-type: verify using type 'spec-attribute-value' INFO /spec/spec-list:/spec-info/dict/attributes/spec-type/description: verify using type 'optional-str' INFO /spec/spec-list:/spec-info/dict/attributes/spec-type/spec-type: verify using type 'name' INFO /spec/spec-list:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-list:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-list:/spec-name: verify using type 'optional-str' INFO /spec/spec-list:/spec-type: verify using type 'name' INFO /spec/spec-mandatory-attributes: verify using type 'root' INFO /spec/spec-mandatory-attributes:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-mandatory-attributes:/copyrights: verify using type 'copyrights' INFO /spec/spec-mandatory-attributes:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-mandatory-attributes:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-mandatory-attributes:/links: verify using type 'links' INFO /spec/spec-mandatory-attributes:/links[0]: verify using type 'link' INFO /spec/spec-mandatory-attributes:/links[0]/role: verify using type 'name' INFO /spec/spec-mandatory-attributes:/links[0]/uid: verify using type 'uid' INFO /spec/spec-mandatory-attributes:/links[0]: verify using type 'spec-member' INFO /spec/spec-mandatory-attributes:/type: verify using type 'name' INFO /spec/spec-mandatory-attributes: verify using type 'spec' INFO /spec/spec-mandatory-attributes:/spec-description: verify using type 'optional-str' INFO /spec/spec-mandatory-attributes:/spec-example: verify using type 'optional-str' INFO /spec/spec-mandatory-attributes:/spec-info: verify using type 'spec-info' INFO /spec/spec-mandatory-attributes:/spec-info/list: verify using type 'spec-list' INFO /spec/spec-mandatory-attributes:/spec-info/list/description: verify using type 'optional-str' INFO /spec/spec-mandatory-attributes:/spec-info/list/spec-type: verify using type 'name' INFO /spec/spec-mandatory-attributes:/spec-info/str: verify using type 'spec-str' INFO /spec/spec-mandatory-attributes:/spec-info/str/assert: verify using type 'spec-assert-str' INFO /spec/spec-mandatory-attributes:/spec-info/str/assert/in: verify using type 'list-str' INFO /spec/spec-mandatory-attributes:/spec-info/str/assert/in[0]: verify using type 'str' INFO /spec/spec-mandatory-attributes:/spec-info/str/assert/in[1]: verify using type 'str' INFO /spec/spec-mandatory-attributes:/spec-info/str/assert/in[2]: verify using type 'str' INFO /spec/spec-mandatory-attributes:/spec-info/str/assert/in[3]: verify using type 'str' INFO /spec/spec-mandatory-attributes:/spec-info/str/assert/in[4]: verify using type 'str' INFO /spec/spec-mandatory-attributes:/spec-info/str/description: verify using type 'optional-str' INFO /spec/spec-mandatory-attributes:/spec-name: verify using type 'optional-str' INFO /spec/spec-mandatory-attributes:/spec-type: verify using type 'name' INFO /spec/spec-member: verify using type 'root' INFO /spec/spec-member:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-member:/copyrights: verify using type 'copyrights' INFO /spec/spec-member:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-member:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-member:/links: verify using type 'links' INFO /spec/spec-member:/links[0]: verify using type 'link' INFO /spec/spec-member:/links[0]/role: verify using type 'name' INFO /spec/spec-member:/links[0]/uid: verify using type 'uid' INFO /spec/spec-member:/links[0]: verify using type 'spec-member' INFO /spec/spec-member:/links[1]: verify using type 'link' INFO /spec/spec-member:/links[1]/role: verify using type 'name' INFO /spec/spec-member:/links[1]/uid: verify using type 'uid' INFO /spec/spec-member:/links[1]: verify using type 'spec-refinement' INFO /spec/spec-member:/links[1]/spec-key: verify using type 'name' INFO /spec/spec-member:/links[1]/spec-value: verify using type 'name' INFO /spec/spec-member:/type: verify using type 'name' INFO /spec/spec-member: verify using type 'spec' INFO /spec/spec-member:/spec-description: verify using type 'optional-str' INFO /spec/spec-member:/spec-example: verify using type 'optional-str' INFO /spec/spec-member:/spec-info: verify using type 'spec-info' INFO /spec/spec-member:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-member:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-member:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-member:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-member:/spec-name: verify using type 'optional-str' INFO /spec/spec-member:/spec-type: verify using type 'name' INFO /spec/spec-refinement: verify using type 'root' INFO /spec/spec-refinement:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-refinement:/copyrights: verify using type 'copyrights' INFO /spec/spec-refinement:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-refinement:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-refinement:/links: verify using type 'links' INFO /spec/spec-refinement:/links[0]: verify using type 'link' INFO /spec/spec-refinement:/links[0]/role: verify using type 'name' INFO /spec/spec-refinement:/links[0]/uid: verify using type 'uid' INFO /spec/spec-refinement:/links[0]: verify using type 'spec-member' INFO /spec/spec-refinement:/links[1]: verify using type 'link' INFO /spec/spec-refinement:/links[1]/role: verify using type 'name' INFO /spec/spec-refinement:/links[1]/uid: verify using type 'uid' INFO /spec/spec-refinement:/links[1]: verify using type 'spec-refinement' INFO /spec/spec-refinement:/links[1]/spec-key: verify using type 'name' INFO /spec/spec-refinement:/links[1]/spec-value: verify using type 'name' INFO /spec/spec-refinement:/type: verify using type 'name' INFO /spec/spec-refinement: verify using type 'spec' INFO /spec/spec-refinement:/spec-description: verify using type 'optional-str' INFO /spec/spec-refinement:/spec-example: verify using type 'optional-str' INFO /spec/spec-refinement:/spec-info: verify using type 'spec-info' INFO /spec/spec-refinement:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-refinement:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-refinement:/spec-info/dict/attributes/spec-key: verify using type 'name' INFO /spec/spec-refinement:/spec-info/dict/attributes/spec-key: verify using type 'spec-attribute-value' INFO /spec/spec-refinement:/spec-info/dict/attributes/spec-key/description: verify using type 'optional-str' INFO /spec/spec-refinement:/spec-info/dict/attributes/spec-key/spec-type: verify using type 'name' INFO /spec/spec-refinement:/spec-info/dict/attributes/spec-value: verify using type 'name' INFO /spec/spec-refinement:/spec-info/dict/attributes/spec-value: verify using type 'spec-attribute-value' INFO /spec/spec-refinement:/spec-info/dict/attributes/spec-value/description: verify using type 'optional-str' INFO /spec/spec-refinement:/spec-info/dict/attributes/spec-value/spec-type: verify using type 'name' INFO /spec/spec-refinement:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-refinement:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-refinement:/spec-name: verify using type 'optional-str' INFO /spec/spec-refinement:/spec-type: verify using type 'name' INFO /spec/spec-str: verify using type 'root' INFO /spec/spec-str:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec/spec-str:/copyrights: verify using type 'copyrights' INFO /spec/spec-str:/copyrights[0]: verify using type 'copyright' INFO /spec/spec-str:/enabled-by: verify using type 'enabled-by' INFO /spec/spec-str:/links: verify using type 'links' INFO /spec/spec-str:/links[0]: verify using type 'link' INFO /spec/spec-str:/links[0]/role: verify using type 'name' INFO /spec/spec-str:/links[0]/uid: verify using type 'uid' INFO /spec/spec-str:/links[0]: verify using type 'spec-member' INFO /spec/spec-str:/type: verify using type 'name' INFO /spec/spec-str: verify using type 'spec' INFO /spec/spec-str:/spec-description: verify using type 'optional-str' INFO /spec/spec-str:/spec-example: verify using type 'optional-str' INFO /spec/spec-str:/spec-info: verify using type 'spec-info' INFO /spec/spec-str:/spec-info/dict: verify using type 'spec-dict' INFO /spec/spec-str:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec/spec-str:/spec-info/dict/attributes/assert: verify using type 'name' INFO /spec/spec-str:/spec-info/dict/attributes/assert: verify using type 'spec-attribute-value' INFO /spec/spec-str:/spec-info/dict/attributes/assert/description: verify using type 'optional-str' INFO /spec/spec-str:/spec-info/dict/attributes/assert/spec-type: verify using type 'name' INFO /spec/spec-str:/spec-info/dict/attributes/description: verify using type 'name' INFO /spec/spec-str:/spec-info/dict/attributes/description: verify using type 'spec-attribute-value' INFO /spec/spec-str:/spec-info/dict/attributes/description/description: verify using type 'optional-str' INFO /spec/spec-str:/spec-info/dict/attributes/description/spec-type: verify using type 'name' INFO /spec/spec-str:/spec-info/dict/description: verify using type 'optional-str' INFO /spec/spec-str:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec/spec-str:/spec-info/dict/mandatory-attributes[0]: verify using type 'name' INFO /spec/spec-str:/spec-name: verify using type 'optional-str' INFO /spec/spec-str:/spec-type: verify using type 'name' INFO /spec2/any-dict: verify using type 'root' INFO /spec2/any-dict:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/any-dict:/copyrights: verify using type 'copyrights' INFO /spec2/any-dict:/copyrights[0]: verify using type 'copyright' INFO /spec2/any-dict:/enabled-by: verify using type 'enabled-by' INFO /spec2/any-dict:/links: verify using type 'links' INFO /spec2/any-dict:/links[0]: verify using type 'link' INFO /spec2/any-dict:/links[0]/role: verify using type 'name' INFO /spec2/any-dict:/links[0]/uid: verify using type 'uid' INFO /spec2/any-dict:/links[0]: verify using type 'spec-member' INFO /spec2/any-dict:/type: verify using type 'name' INFO /spec2/any-dict: verify using type 'spec' ERROR /spec2/any-dict: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/any-dict:/spec-example: verify using type 'optional-str' INFO /spec2/any-dict:/spec-info: verify using type 'spec-info' INFO /spec2/any-dict:/spec-info/dict: verify using type 'spec-dict' ERROR /spec2/any-dict:/spec-info/dict: missing mandatory keys for type 'spec-dict': ['description'] INFO /spec2/any-dict:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec2/any-dict:/spec-info/dict/generic-attributes: verify using type 'spec-generic-attributes' ERROR /spec2/any-dict:/spec-info/dict/generic-attributes: missing mandatory keys for type 'spec-generic-attributes': ['description'] INFO /spec2/any-dict:/spec-info/dict/generic-attributes/key-spec-type: verify using type 'name' INFO /spec2/any-dict:/spec-info/dict/generic-attributes/value-spec-type: verify using type 'name' INFO /spec2/any-dict:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec2/any-dict:/spec-type: verify using type 'name' INFO /spec2/c: verify using type 'root' INFO /spec2/c:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/c:/copyrights: verify using type 'copyrights' INFO /spec2/c:/copyrights[0]: verify using type 'copyright' INFO /spec2/c:/enabled-by: verify using type 'enabled-by' INFO /spec2/c:/links: verify using type 'links' INFO /spec2/c:/links[0]: verify using type 'link' INFO /spec2/c:/links[0]/role: verify using type 'name' INFO /spec2/c:/links[0]/uid: verify using type 'uid' INFO /spec2/c:/links[0]: verify using type 'spec-member' INFO /spec2/c:/links[1]: verify using type 'link' INFO /spec2/c:/links[1]/role: verify using type 'name' INFO /spec2/c:/links[1]/uid: verify using type 'uid' INFO /spec2/c:/links[1]: verify using type 'spec-refinement' INFO /spec2/c:/links[1]/spec-key: verify using type 'name' INFO /spec2/c:/links[1]/spec-value: verify using type 'name' INFO /spec2/c:/type: verify using type 'name' INFO /spec2/c: verify using type 'spec' ERROR /spec2/c: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/c:/spec-example: verify using type 'optional-str' INFO /spec2/c:/spec-info: verify using type 'spec-info' INFO /spec2/c:/spec-info/dict: verify using type 'spec-dict' ERROR /spec2/c:/spec-info/dict: missing mandatory keys for type 'spec-dict': ['description'] INFO /spec2/c:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec2/c:/spec-info/dict/attributes/any-dict: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/any-dict: verify using type 'spec-attribute-value' ERROR /spec2/c:/spec-info/dict/attributes/any-dict: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/c:/spec-info/dict/attributes/any-dict/spec-type: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/bool: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/bool: verify using type 'spec-attribute-value' ERROR /spec2/c:/spec-info/dict/attributes/bool: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/c:/spec-info/dict/attributes/bool/spec-type: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/dict: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/dict: verify using type 'spec-attribute-value' ERROR /spec2/c:/spec-info/dict/attributes/dict: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/c:/spec-info/dict/attributes/dict/spec-type: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/float: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/float: verify using type 'spec-attribute-value' ERROR /spec2/c:/spec-info/dict/attributes/float: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/c:/spec-info/dict/attributes/float/spec-type: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/int: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/int: verify using type 'spec-attribute-value' ERROR /spec2/c:/spec-info/dict/attributes/int: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/c:/spec-info/dict/attributes/int/spec-type: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/list: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/list: verify using type 'spec-attribute-value' ERROR /spec2/c:/spec-info/dict/attributes/list: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/c:/spec-info/dict/attributes/list/spec-type: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/must-be-true: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/must-be-true: verify using type 'spec-attribute-value' ERROR /spec2/c:/spec-info/dict/attributes/must-be-true: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/c:/spec-info/dict/attributes/must-be-true/spec-type: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/other-int: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/other-int: verify using type 'spec-attribute-value' ERROR /spec2/c:/spec-info/dict/attributes/other-int: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/c:/spec-info/dict/attributes/other-int/spec-type: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/str: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/str: verify using type 'spec-attribute-value' ERROR /spec2/c:/spec-info/dict/attributes/str: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/c:/spec-info/dict/attributes/str/spec-type: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/str-contains: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/str-contains: verify using type 'spec-attribute-value' ERROR /spec2/c:/spec-info/dict/attributes/str-contains: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/c:/spec-info/dict/attributes/str-contains/spec-type: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/uid: verify using type 'name' INFO /spec2/c:/spec-info/dict/attributes/uid: verify using type 'spec-attribute-value' ERROR /spec2/c:/spec-info/dict/attributes/uid: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/c:/spec-info/dict/attributes/uid/spec-type: verify using type 'name' INFO /spec2/c:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec2/c:/spec-type: verify using type 'name' INFO /spec2/d: verify using type 'root' INFO /spec2/d:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/d:/copyrights: verify using type 'copyrights' INFO /spec2/d:/copyrights[0]: verify using type 'copyright' INFO /spec2/d:/enabled-by: verify using type 'enabled-by' INFO /spec2/d:/links: verify using type 'links' INFO /spec2/d:/links[0]: verify using type 'link' INFO /spec2/d:/links[0]/role: verify using type 'name' INFO /spec2/d:/links[0]/uid: verify using type 'uid' INFO /spec2/d:/links[0]: verify using type 'spec-member' INFO /spec2/d:/links[1]: verify using type 'link' INFO /spec2/d:/links[1]/role: verify using type 'name' INFO /spec2/d:/links[1]/uid: verify using type 'uid' INFO /spec2/d:/links[1]: verify using type 'spec-refinement' INFO /spec2/d:/links[1]/spec-key: verify using type 'name' INFO /spec2/d:/links[1]/spec-value: verify using type 'name' INFO /spec2/d:/type: verify using type 'name' INFO /spec2/d: verify using type 'spec' ERROR /spec2/d: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/d:/spec-example: verify using type 'optional-str' INFO /spec2/d:/spec-info: verify using type 'spec-info' INFO /spec2/d:/spec-info/dict: verify using type 'spec-dict' ERROR /spec2/d:/spec-info/dict: missing mandatory keys for type 'spec-dict': ['description'] INFO /spec2/d:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec2/d:/spec-info/dict/attributes/d-type: verify using type 'name' INFO /spec2/d:/spec-info/dict/attributes/d-type: verify using type 'spec-attribute-value' ERROR /spec2/d:/spec-info/dict/attributes/d-type: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/d:/spec-info/dict/attributes/d-type/spec-type: verify using type 'name' INFO /spec2/d:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec2/d:/spec-info/dict/mandatory-attributes[0]: verify using type 'name' INFO /spec2/d:/spec-type: verify using type 'name' INFO /spec2/d-a: verify using type 'root' INFO /spec2/d-a:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/d-a:/copyrights: verify using type 'copyrights' INFO /spec2/d-a:/copyrights[0]: verify using type 'copyright' INFO /spec2/d-a:/enabled-by: verify using type 'enabled-by' INFO /spec2/d-a:/links: verify using type 'links' INFO /spec2/d-a:/links[0]: verify using type 'link' INFO /spec2/d-a:/links[0]/role: verify using type 'name' INFO /spec2/d-a:/links[0]/uid: verify using type 'uid' INFO /spec2/d-a:/links[0]: verify using type 'spec-member' INFO /spec2/d-a:/links[1]: verify using type 'link' INFO /spec2/d-a:/links[1]/role: verify using type 'name' INFO /spec2/d-a:/links[1]/uid: verify using type 'uid' INFO /spec2/d-a:/links[1]: verify using type 'spec-refinement' INFO /spec2/d-a:/links[1]/spec-key: verify using type 'name' INFO /spec2/d-a:/links[1]/spec-value: verify using type 'name' INFO /spec2/d-a:/links[2]: verify using type 'link' INFO /spec2/d-a:/links[2]/role: verify using type 'name' INFO /spec2/d-a:/links[2]/uid: verify using type 'uid' ERROR /spec2/d-a:/links[2]: unknown subtype for key 'role' for type 'link': other INFO /spec2/d-a:/type: verify using type 'name' INFO /spec2/d-a: verify using type 'spec' ERROR /spec2/d-a: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/d-a:/spec-example: verify using type 'optional-str' INFO /spec2/d-a:/spec-info: verify using type 'spec-info' INFO /spec2/d-a:/spec-info/dict: verify using type 'spec-dict' ERROR /spec2/d-a:/spec-info/dict: missing mandatory keys for type 'spec-dict': ['description'] INFO /spec2/d-a:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec2/d-a:/spec-info/dict/attributes/d-type: verify using type 'name' INFO /spec2/d-a:/spec-info/dict/attributes/d-type: verify using type 'spec-attribute-value' ERROR /spec2/d-a:/spec-info/dict/attributes/d-type: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/d-a:/spec-info/dict/attributes/d-type/spec-type: verify using type 'name' INFO /spec2/d-a:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec2/d-a:/spec-type: verify using type 'name' INFO /spec2/invalid: verify using type 'root' INFO /spec2/invalid:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/invalid:/copyrights: verify using type 'copyrights' INFO /spec2/invalid:/copyrights[0]: verify using type 'copyright' INFO /spec2/invalid:/enabled-by: verify using type 'enabled-by' INFO /spec2/invalid:/links: verify using type 'links' INFO /spec2/invalid:/links[0]: verify using type 'link' INFO /spec2/invalid:/links[0]/role: verify using type 'name' INFO /spec2/invalid:/links[0]/uid: verify using type 'uid' INFO /spec2/invalid:/links[0]: verify using type 'spec-member' INFO /spec2/invalid:/links[1]: verify using type 'link' INFO /spec2/invalid:/links[1]/role: verify using type 'name' INFO /spec2/invalid:/links[1]/uid: verify using type 'uid' INFO /spec2/invalid:/links[1]: verify using type 'spec-refinement' INFO /spec2/invalid:/links[1]/spec-key: verify using type 'name' INFO /spec2/invalid:/links[1]/spec-value: verify using type 'name' INFO /spec2/invalid:/type: verify using type 'name' INFO /spec2/invalid: verify using type 'spec' ERROR /spec2/invalid: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/invalid:/spec-example: verify using type 'optional-str' INFO /spec2/invalid:/spec-info: verify using type 'spec-info' INFO /spec2/invalid:/spec-info/dict: verify using type 'spec-dict' ERROR /spec2/invalid:/spec-info/dict: missing mandatory keys for type 'spec-dict': ['description'] INFO /spec2/invalid:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec2/invalid:/spec-info/dict/attributes/INVALID: verify using type 'name' ERROR /spec2/invalid:/spec-info/dict/attributes/INVALID: invalid name: INVALID INFO /spec2/invalid:/spec-info/dict/attributes/INVALID: verify using type 'spec-attribute-value' ERROR /spec2/invalid:/spec-info/dict/attributes/INVALID: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/invalid:/spec-info/dict/attributes/INVALID/spec-type: verify using type 'name' INFO /spec2/invalid:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec2/invalid:/spec-info/none: verify using type 'none' ERROR /spec2/invalid:/spec-info/none: expected type 'none', actual type 'bool' INFO /spec2/invalid:/spec-info/str: verify using type 'spec-str' ERROR /spec2/invalid:/spec-info/str: missing mandatory keys for type 'spec-str': ['description'] ERROR /spec2/invalid:/spec-info/str: has unverfied keys for type 'spec-str' and its subtypes: ['foo'] ERROR /spec2/invalid:/spec-info: has unverfied keys for type 'spec-info' and its subtypes: ['unexpected'] INFO /spec2/invalid:/spec-type: verify using type 'name' INFO /spec2/keys-at-least-one: verify using type 'root' INFO /spec2/keys-at-least-one:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/keys-at-least-one:/copyrights: verify using type 'copyrights' INFO /spec2/keys-at-least-one:/copyrights[0]: verify using type 'copyright' INFO /spec2/keys-at-least-one:/enabled-by: verify using type 'enabled-by' INFO /spec2/keys-at-least-one:/links: verify using type 'links' INFO /spec2/keys-at-least-one:/links[0]: verify using type 'link' INFO /spec2/keys-at-least-one:/links[0]/role: verify using type 'name' INFO /spec2/keys-at-least-one:/links[0]/uid: verify using type 'uid' INFO /spec2/keys-at-least-one:/links[0]: verify using type 'spec-member' INFO /spec2/keys-at-least-one:/links[1]: verify using type 'link' INFO /spec2/keys-at-least-one:/links[1]/role: verify using type 'name' INFO /spec2/keys-at-least-one:/links[1]/uid: verify using type 'uid' INFO /spec2/keys-at-least-one:/links[1]: verify using type 'spec-refinement' INFO /spec2/keys-at-least-one:/links[1]/spec-key: verify using type 'name' INFO /spec2/keys-at-least-one:/links[1]/spec-value: verify using type 'name' INFO /spec2/keys-at-least-one:/type: verify using type 'name' INFO /spec2/keys-at-least-one: verify using type 'spec' ERROR /spec2/keys-at-least-one: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/keys-at-least-one:/spec-example: verify using type 'optional-str' INFO /spec2/keys-at-least-one:/spec-info: verify using type 'spec-info' INFO /spec2/keys-at-least-one:/spec-info/dict: verify using type 'spec-dict' ERROR /spec2/keys-at-least-one:/spec-info/dict: missing mandatory keys for type 'spec-dict': ['description'] INFO /spec2/keys-at-least-one:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec2/keys-at-least-one:/spec-info/dict/attributes/key-a: verify using type 'name' INFO /spec2/keys-at-least-one:/spec-info/dict/attributes/key-a: verify using type 'spec-attribute-value' ERROR /spec2/keys-at-least-one:/spec-info/dict/attributes/key-a: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/keys-at-least-one:/spec-info/dict/attributes/key-a/spec-type: verify using type 'name' INFO /spec2/keys-at-least-one:/spec-info/dict/attributes/key-b: verify using type 'name' INFO /spec2/keys-at-least-one:/spec-info/dict/attributes/key-b: verify using type 'spec-attribute-value' ERROR /spec2/keys-at-least-one:/spec-info/dict/attributes/key-b: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/keys-at-least-one:/spec-info/dict/attributes/key-b/spec-type: verify using type 'name' INFO /spec2/keys-at-least-one:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec2/keys-at-least-one:/spec-type: verify using type 'name' INFO /spec2/keys-at-most-one: verify using type 'root' INFO /spec2/keys-at-most-one:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/keys-at-most-one:/copyrights: verify using type 'copyrights' INFO /spec2/keys-at-most-one:/copyrights[0]: verify using type 'copyright' INFO /spec2/keys-at-most-one:/enabled-by: verify using type 'enabled-by' INFO /spec2/keys-at-most-one:/links: verify using type 'links' INFO /spec2/keys-at-most-one:/links[0]: verify using type 'link' INFO /spec2/keys-at-most-one:/links[0]/role: verify using type 'name' INFO /spec2/keys-at-most-one:/links[0]/uid: verify using type 'uid' INFO /spec2/keys-at-most-one:/links[0]: verify using type 'spec-member' INFO /spec2/keys-at-most-one:/links[1]: verify using type 'link' INFO /spec2/keys-at-most-one:/links[1]/role: verify using type 'name' INFO /spec2/keys-at-most-one:/links[1]/uid: verify using type 'uid' INFO /spec2/keys-at-most-one:/links[1]: verify using type 'spec-refinement' INFO /spec2/keys-at-most-one:/links[1]/spec-key: verify using type 'name' INFO /spec2/keys-at-most-one:/links[1]/spec-value: verify using type 'name' INFO /spec2/keys-at-most-one:/type: verify using type 'name' INFO /spec2/keys-at-most-one: verify using type 'spec' ERROR /spec2/keys-at-most-one: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/keys-at-most-one:/spec-example: verify using type 'optional-str' INFO /spec2/keys-at-most-one:/spec-info: verify using type 'spec-info' INFO /spec2/keys-at-most-one:/spec-info/dict: verify using type 'spec-dict' ERROR /spec2/keys-at-most-one:/spec-info/dict: missing mandatory keys for type 'spec-dict': ['description'] INFO /spec2/keys-at-most-one:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec2/keys-at-most-one:/spec-info/dict/attributes/key-a: verify using type 'name' INFO /spec2/keys-at-most-one:/spec-info/dict/attributes/key-a: verify using type 'spec-attribute-value' ERROR /spec2/keys-at-most-one:/spec-info/dict/attributes/key-a: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/keys-at-most-one:/spec-info/dict/attributes/key-a/spec-type: verify using type 'name' INFO /spec2/keys-at-most-one:/spec-info/dict/attributes/key-b: verify using type 'name' INFO /spec2/keys-at-most-one:/spec-info/dict/attributes/key-b: verify using type 'spec-attribute-value' ERROR /spec2/keys-at-most-one:/spec-info/dict/attributes/key-b: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/keys-at-most-one:/spec-info/dict/attributes/key-b/spec-type: verify using type 'name' INFO /spec2/keys-at-most-one:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec2/keys-at-most-one:/spec-type: verify using type 'name' INFO /spec2/keys-exactly-one: verify using type 'root' INFO /spec2/keys-exactly-one:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/keys-exactly-one:/copyrights: verify using type 'copyrights' INFO /spec2/keys-exactly-one:/copyrights[0]: verify using type 'copyright' INFO /spec2/keys-exactly-one:/enabled-by: verify using type 'enabled-by' INFO /spec2/keys-exactly-one:/links: verify using type 'links' INFO /spec2/keys-exactly-one:/links[0]: verify using type 'link' INFO /spec2/keys-exactly-one:/links[0]/role: verify using type 'name' INFO /spec2/keys-exactly-one:/links[0]/uid: verify using type 'uid' INFO /spec2/keys-exactly-one:/links[0]: verify using type 'spec-member' INFO /spec2/keys-exactly-one:/links[1]: verify using type 'link' INFO /spec2/keys-exactly-one:/links[1]/role: verify using type 'name' INFO /spec2/keys-exactly-one:/links[1]/uid: verify using type 'uid' INFO /spec2/keys-exactly-one:/links[1]: verify using type 'spec-refinement' INFO /spec2/keys-exactly-one:/links[1]/spec-key: verify using type 'name' INFO /spec2/keys-exactly-one:/links[1]/spec-value: verify using type 'name' INFO /spec2/keys-exactly-one:/type: verify using type 'name' INFO /spec2/keys-exactly-one: verify using type 'spec' ERROR /spec2/keys-exactly-one: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/keys-exactly-one:/spec-example: verify using type 'optional-str' INFO /spec2/keys-exactly-one:/spec-info: verify using type 'spec-info' INFO /spec2/keys-exactly-one:/spec-info/dict: verify using type 'spec-dict' ERROR /spec2/keys-exactly-one:/spec-info/dict: missing mandatory keys for type 'spec-dict': ['description'] INFO /spec2/keys-exactly-one:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec2/keys-exactly-one:/spec-info/dict/attributes/key-a: verify using type 'name' INFO /spec2/keys-exactly-one:/spec-info/dict/attributes/key-a: verify using type 'spec-attribute-value' ERROR /spec2/keys-exactly-one:/spec-info/dict/attributes/key-a: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/keys-exactly-one:/spec-info/dict/attributes/key-a/spec-type: verify using type 'name' INFO /spec2/keys-exactly-one:/spec-info/dict/attributes/key-b: verify using type 'name' INFO /spec2/keys-exactly-one:/spec-info/dict/attributes/key-b: verify using type 'spec-attribute-value' ERROR /spec2/keys-exactly-one:/spec-info/dict/attributes/key-b: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/keys-exactly-one:/spec-info/dict/attributes/key-b/spec-type: verify using type 'name' INFO /spec2/keys-exactly-one:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec2/keys-exactly-one:/spec-type: verify using type 'name' INFO /spec2/must-be-true: verify using type 'root' INFO /spec2/must-be-true:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/must-be-true:/copyrights: verify using type 'copyrights' INFO /spec2/must-be-true:/copyrights[0]: verify using type 'copyright' INFO /spec2/must-be-true:/enabled-by: verify using type 'enabled-by' INFO /spec2/must-be-true:/links: verify using type 'links' INFO /spec2/must-be-true:/links[0]: verify using type 'link' INFO /spec2/must-be-true:/links[0]/role: verify using type 'name' INFO /spec2/must-be-true:/links[0]/uid: verify using type 'uid' INFO /spec2/must-be-true:/links[0]: verify using type 'spec-member' INFO /spec2/must-be-true:/type: verify using type 'name' INFO /spec2/must-be-true: verify using type 'spec' ERROR /spec2/must-be-true: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/must-be-true:/spec-example: verify using type 'optional-str' INFO /spec2/must-be-true:/spec-info: verify using type 'spec-info' INFO /spec2/must-be-true:/spec-info/bool: verify using type 'spec-bool' ERROR /spec2/must-be-true:/spec-info/bool: missing mandatory keys for type 'spec-bool': ['description'] INFO /spec2/must-be-true:/spec-info/bool/assert: verify using type 'bool' INFO /spec2/must-be-true:/spec-type: verify using type 'name' INFO /spec2/other-int: verify using type 'root' INFO /spec2/other-int:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/other-int:/copyrights: verify using type 'copyrights' INFO /spec2/other-int:/copyrights[0]: verify using type 'copyright' INFO /spec2/other-int:/enabled-by: verify using type 'enabled-by' INFO /spec2/other-int:/links: verify using type 'links' INFO /spec2/other-int:/links[0]: verify using type 'link' INFO /spec2/other-int:/links[0]/role: verify using type 'name' INFO /spec2/other-int:/links[0]/uid: verify using type 'uid' INFO /spec2/other-int:/links[0]: verify using type 'spec-member' INFO /spec2/other-int:/type: verify using type 'name' INFO /spec2/other-int: verify using type 'spec' ERROR /spec2/other-int: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/other-int:/spec-example: verify using type 'optional-str' INFO /spec2/other-int:/spec-info: verify using type 'spec-info' INFO /spec2/other-int:/spec-info/int: verify using type 'spec-int' ERROR /spec2/other-int:/spec-info/int: missing mandatory keys for type 'spec-int': ['description'] INFO /spec2/other-int:/spec-type: verify using type 'name' INFO /spec2/some-bool: verify using type 'root' INFO /spec2/some-bool:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/some-bool:/copyrights: verify using type 'copyrights' INFO /spec2/some-bool:/copyrights[0]: verify using type 'copyright' INFO /spec2/some-bool:/enabled-by: verify using type 'enabled-by' INFO /spec2/some-bool:/links: verify using type 'links' INFO /spec2/some-bool:/links[0]: verify using type 'link' INFO /spec2/some-bool:/links[0]/role: verify using type 'name' INFO /spec2/some-bool:/links[0]/uid: verify using type 'uid' INFO /spec2/some-bool:/links[0]: verify using type 'spec-member' INFO /spec2/some-bool:/type: verify using type 'name' INFO /spec2/some-bool: verify using type 'spec' ERROR /spec2/some-bool: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/some-bool:/spec-example: verify using type 'optional-str' INFO /spec2/some-bool:/spec-info: verify using type 'spec-info' INFO /spec2/some-bool:/spec-info/bool: verify using type 'spec-bool' ERROR /spec2/some-bool:/spec-info/bool: missing mandatory keys for type 'spec-bool': ['description'] INFO /spec2/some-bool:/spec-type: verify using type 'name' INFO /spec2/some-dict: verify using type 'root' INFO /spec2/some-dict:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/some-dict:/copyrights: verify using type 'copyrights' INFO /spec2/some-dict:/copyrights[0]: verify using type 'copyright' INFO /spec2/some-dict:/enabled-by: verify using type 'enabled-by' INFO /spec2/some-dict:/links: verify using type 'links' INFO /spec2/some-dict:/links[0]: verify using type 'link' INFO /spec2/some-dict:/links[0]/role: verify using type 'name' INFO /spec2/some-dict:/links[0]/uid: verify using type 'uid' INFO /spec2/some-dict:/links[0]: verify using type 'spec-member' INFO /spec2/some-dict:/type: verify using type 'name' INFO /spec2/some-dict: verify using type 'spec' ERROR /spec2/some-dict: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/some-dict:/spec-example: verify using type 'optional-str' INFO /spec2/some-dict:/spec-info: verify using type 'spec-info' INFO /spec2/some-dict:/spec-info/dict: verify using type 'spec-dict' ERROR /spec2/some-dict:/spec-info/dict: missing mandatory keys for type 'spec-dict': ['description'] INFO /spec2/some-dict:/spec-info/dict/attributes: verify using type 'spec-attributes' INFO /spec2/some-dict:/spec-info/dict/attributes/a: verify using type 'name' INFO /spec2/some-dict:/spec-info/dict/attributes/a: verify using type 'spec-attribute-value' ERROR /spec2/some-dict:/spec-info/dict/attributes/a: missing mandatory keys for type 'spec-attribute-value': ['description'] INFO /spec2/some-dict:/spec-info/dict/attributes/a/spec-type: verify using type 'name' INFO /spec2/some-dict:/spec-info/dict/mandatory-attributes: verify using type 'spec-mandatory-attributes' INFO /spec2/some-dict:/spec-info/none: verify using type 'none' INFO /spec2/some-dict:/spec-type: verify using type 'name' INFO /spec2/some-float: verify using type 'root' INFO /spec2/some-float:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/some-float:/copyrights: verify using type 'copyrights' INFO /spec2/some-float:/copyrights[0]: verify using type 'copyright' INFO /spec2/some-float:/enabled-by: verify using type 'enabled-by' INFO /spec2/some-float:/links: verify using type 'links' INFO /spec2/some-float:/links[0]: verify using type 'link' INFO /spec2/some-float:/links[0]/role: verify using type 'name' INFO /spec2/some-float:/links[0]/uid: verify using type 'uid' INFO /spec2/some-float:/links[0]: verify using type 'spec-member' INFO /spec2/some-float:/type: verify using type 'name' INFO /spec2/some-float: verify using type 'spec' ERROR /spec2/some-float: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/some-float:/spec-example: verify using type 'optional-str' INFO /spec2/some-float:/spec-info: verify using type 'spec-info' INFO /spec2/some-float:/spec-info/float: verify using type 'spec-float' ERROR /spec2/some-float:/spec-info/float: missing mandatory keys for type 'spec-float': ['description'] INFO /spec2/some-float:/spec-info/float/assert: verify using type 'spec-assert-float' INFO /spec2/some-float:/spec-info/float/assert[0]: verify using type 'spec-assert-float' INFO /spec2/some-float:/spec-info/float/assert[0]/le: verify using type 'float' INFO /spec2/some-float:/spec-type: verify using type 'name' INFO /spec2/some-int: verify using type 'root' INFO /spec2/some-int:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/some-int:/copyrights: verify using type 'copyrights' INFO /spec2/some-int:/copyrights[0]: verify using type 'copyright' INFO /spec2/some-int:/enabled-by: verify using type 'enabled-by' INFO /spec2/some-int:/links: verify using type 'links' INFO /spec2/some-int:/links[0]: verify using type 'link' INFO /spec2/some-int:/links[0]/role: verify using type 'name' INFO /spec2/some-int:/links[0]/uid: verify using type 'uid' INFO /spec2/some-int:/links[0]: verify using type 'spec-member' INFO /spec2/some-int:/type: verify using type 'name' INFO /spec2/some-int: verify using type 'spec' ERROR /spec2/some-int: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/some-int:/spec-example: verify using type 'optional-str' INFO /spec2/some-int:/spec-info: verify using type 'spec-info' INFO /spec2/some-int:/spec-info/int: verify using type 'spec-int' ERROR /spec2/some-int:/spec-info/int: missing mandatory keys for type 'spec-int': ['description'] INFO /spec2/some-int:/spec-info/int/assert: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[0]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[0]/and: verify using type 'spec-assert-int-list' INFO /spec2/some-int:/spec-info/int/assert[0]/and[0]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[0]/and[0]/not: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[0]/and[0]/not/eq: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[0]/and[1]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[0]/and[1]/eq: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[1]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[1]/and: verify using type 'spec-assert-int-list' INFO /spec2/some-int:/spec-info/int/assert[1]/and[0]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[1]/and[0]/eq: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[1]/and[1]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[1]/and[1]/ne: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[2]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[2]/and: verify using type 'spec-assert-int-list' INFO /spec2/some-int:/spec-info/int/assert[2]/and[0]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[2]/and[0]/ge: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[2]/and[1]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[2]/and[1]/le: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[3]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[3]/and: verify using type 'spec-assert-int-list' INFO /spec2/some-int:/spec-info/int/assert[3]/and[0]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[3]/and[0]/gt: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[3]/and[1]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[3]/and[1]/lt: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[4]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[4]/and: verify using type 'spec-assert-int-list' INFO /spec2/some-int:/spec-info/int/assert[4]/and[0]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[4]/and[0]/le: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[4]/and[1]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[4]/and[1]/ge: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[5]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[5]/and: verify using type 'spec-assert-int-list' INFO /spec2/some-int:/spec-info/int/assert[5]/and[0]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[5]/and[0]/lt: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[5]/and[1]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[5]/and[1]/gt: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[6]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[6]/and: verify using type 'spec-assert-int-list' INFO /spec2/some-int:/spec-info/int/assert[6]/and[0]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[6]/and[0]/or: verify using type 'spec-assert-int-list' INFO /spec2/some-int:/spec-info/int/assert[6]/and[0]/or[0]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[6]/and[0]/or[0]/eq: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[6]/and[0]/or[1]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[6]/and[0]/or[1]/ne: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[7]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[7]/eq: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[8]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[8]/ne: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[9]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[9]/le: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[10]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[10]/lt: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[11]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[11]/ge: verify using type 'int' INFO /spec2/some-int:/spec-info/int/assert[12]: verify using type 'spec-assert-int' INFO /spec2/some-int:/spec-info/int/assert[12]/gt: verify using type 'int' INFO /spec2/some-int:/spec-type: verify using type 'name' INFO /spec2/some-list: verify using type 'root' INFO /spec2/some-list:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/some-list:/copyrights: verify using type 'copyrights' INFO /spec2/some-list:/copyrights[0]: verify using type 'copyright' INFO /spec2/some-list:/enabled-by: verify using type 'enabled-by' INFO /spec2/some-list:/links: verify using type 'links' INFO /spec2/some-list:/links[0]: verify using type 'link' INFO /spec2/some-list:/links[0]/role: verify using type 'name' INFO /spec2/some-list:/links[0]/uid: verify using type 'uid' INFO /spec2/some-list:/links[0]: verify using type 'spec-member' INFO /spec2/some-list:/type: verify using type 'name' INFO /spec2/some-list: verify using type 'spec' ERROR /spec2/some-list: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/some-list:/spec-example: verify using type 'optional-str' INFO /spec2/some-list:/spec-info: verify using type 'spec-info' INFO /spec2/some-list:/spec-info/list: verify using type 'spec-list' ERROR /spec2/some-list:/spec-info/list: missing mandatory keys for type 'spec-list': ['description'] INFO /spec2/some-list:/spec-info/list/spec-type: verify using type 'name' INFO /spec2/some-list:/spec-type: verify using type 'name' INFO /spec2/some-str: verify using type 'root' INFO /spec2/some-str:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/some-str:/copyrights: verify using type 'copyrights' INFO /spec2/some-str:/copyrights[0]: verify using type 'copyright' INFO /spec2/some-str:/enabled-by: verify using type 'enabled-by' INFO /spec2/some-str:/links: verify using type 'links' INFO /spec2/some-str:/links[0]: verify using type 'link' INFO /spec2/some-str:/links[0]/role: verify using type 'name' INFO /spec2/some-str:/links[0]/uid: verify using type 'uid' INFO /spec2/some-str:/links[0]: verify using type 'spec-member' INFO /spec2/some-str:/type: verify using type 'name' INFO /spec2/some-str: verify using type 'spec' ERROR /spec2/some-str: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/some-str:/spec-example: verify using type 'optional-str' INFO /spec2/some-str:/spec-info: verify using type 'spec-info' INFO /spec2/some-str:/spec-info/str: verify using type 'spec-str' ERROR /spec2/some-str:/spec-info/str: missing mandatory keys for type 'spec-str': ['description'] INFO /spec2/some-str:/spec-info/str/assert: verify using type 'spec-assert-str' INFO /spec2/some-str:/spec-info/str/assert[0]: verify using type 'spec-assert-str' INFO /spec2/some-str:/spec-info/str/assert[0]/uid: verify using type 'none' INFO /spec2/some-str:/spec-info/str/assert[1]: verify using type 'spec-assert-str' INFO /spec2/some-str:/spec-info/str/assert[1]/eq: verify using type 'str' INFO /spec2/some-str:/spec-info/str/assert[2]: verify using type 'spec-assert-str' INFO /spec2/some-str:/spec-info/str/assert[2]/ne: verify using type 'str' INFO /spec2/some-str:/spec-info/str/assert[3]: verify using type 'spec-assert-str' INFO /spec2/some-str:/spec-info/str/assert[3]/re: verify using type 'str' INFO /spec2/some-str:/spec-type: verify using type 'name' INFO /spec2/sta: verify using type 'root' INFO /spec2/sta:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/sta:/copyrights: verify using type 'copyrights' INFO /spec2/sta:/copyrights[0]: verify using type 'copyright' INFO /spec2/sta:/enabled-by: verify using type 'enabled-by' INFO /spec2/sta:/links: verify using type 'links' INFO /spec2/sta:/type: verify using type 'name' INFO /spec2/sta: verify using type 'spec' ERROR /spec2/sta: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/sta:/spec-example: verify using type 'optional-str' INFO /spec2/sta:/spec-info: verify using type 'spec-info' ERROR /spec2/sta:/spec-info: not at least one key out of ['bool', 'dict', 'float', 'int', 'list', 'none', 'str'] is present for type 'spec-info' INFO /spec2/sta:/spec-type: verify using type 'name' INFO /spec2/str-contains: verify using type 'root' INFO /spec2/str-contains:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/str-contains:/copyrights: verify using type 'copyrights' INFO /spec2/str-contains:/copyrights[0]: verify using type 'copyright' INFO /spec2/str-contains:/enabled-by: verify using type 'enabled-by' INFO /spec2/str-contains:/links: verify using type 'links' INFO /spec2/str-contains:/links[0]: verify using type 'link' INFO /spec2/str-contains:/links[0]/role: verify using type 'name' INFO /spec2/str-contains:/links[0]/uid: verify using type 'uid' INFO /spec2/str-contains:/links[0]: verify using type 'spec-member' INFO /spec2/str-contains:/type: verify using type 'name' INFO /spec2/str-contains: verify using type 'spec' ERROR /spec2/str-contains: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/str-contains:/spec-example: verify using type 'optional-str' INFO /spec2/str-contains:/spec-info: verify using type 'spec-info' INFO /spec2/str-contains:/spec-info/str: verify using type 'spec-str' ERROR /spec2/str-contains:/spec-info/str: missing mandatory keys for type 'spec-str': ['description'] INFO /spec2/str-contains:/spec-info/str/assert: verify using type 'spec-assert-str' INFO /spec2/str-contains:/spec-info/str/assert/and: verify using type 'spec-assert-str-list' INFO /spec2/str-contains:/spec-info/str/assert/and[0]: verify using type 'spec-assert-str' INFO /spec2/str-contains:/spec-info/str/assert/and[0]/contains: verify using type 'list-str' INFO /spec2/str-contains:/spec-info/str/assert/and[0]/contains[0]: verify using type 'str' INFO /spec2/str-contains:/spec-info/str/assert/and[0]/contains[1]: verify using type 'str' INFO /spec2/str-contains:/spec-info/str/assert/and[1]: verify using type 'spec-assert-str' INFO /spec2/str-contains:/spec-info/str/assert/and[1]/not: verify using type 'spec-assert-str' INFO /spec2/str-contains:/spec-info/str/assert/and[1]/not/contains: verify using type 'list-str' INFO /spec2/str-contains:/spec-info/str/assert/and[1]/not/contains[0]: verify using type 'str' INFO /spec2/str-contains:/spec-type: verify using type 'name' INFO /spec2/x: verify using type 'root' INFO /spec2/x:/SPDX-License-Identifier: verify using type 'spdx-license-identifier' INFO /spec2/x:/copyrights: verify using type 'copyrights' INFO /spec2/x:/copyrights[0]: verify using type 'copyright' INFO /spec2/x:/enabled-by: verify using type 'enabled-by' INFO /spec2/x:/links: verify using type 'links' INFO /spec2/x:/links[0]: verify using type 'link' INFO /spec2/x:/links[0]/role: verify using type 'name' INFO /spec2/x:/links[0]/uid: verify using type 'uid' INFO /spec2/x:/links[0]: verify using type 'spec-member' INFO /spec2/x:/type: verify using type 'name' INFO /spec2/x: verify using type 'spec' ERROR /spec2/x: missing mandatory keys for type 'spec': ['spec-description', 'spec-name'] INFO /spec2/x:/spec-example: verify using type 'optional-str' INFO /spec2/x:/spec-info: verify using type 'spec-info' INFO /spec2/x:/spec-info/str: verify using type 'spec-str' ERROR /spec2/x:/spec-info/str: missing mandatory keys for type 'spec-str': ['description'] INFO /spec2/x:/spec-info/str/assert: verify using type 'spec-assert-str' INFO /spec2/x:/spec-info/str/assert/eq: verify using type 'str' INFO /spec2/x:/spec-type: verify using type 'name' INFO finished specification item verification"""