summaryrefslogblamecommitdiffstats
path: root/rtemsspec/tests/test_specverify.py
blob: 076a6fab4f6f16b042a79a0723ed39b8b3da444c (plain) (tree)
1
2
                                       
                                                       

























                                                                             


                                                                       








































                                                                         
                             








                            

                                            







                       
                                 
                              
                              
                                         

                                              
                                             























                                  
                                    

                          




                       












                                                                              
                                                                                                                                        












                                                                              
                                                                                                                               












                                                                                
                                                                                                 



















                                                                                                  
                                              










































                                                                              
                                                          







































































































                                                                                                                                   
                                                               






































































                                                                                           
                                                                              


                                                                                                  
                                                                              


                                                                                                  
                                                                             



                                                                                                 
                                                                                                         











































                                                                                                
                                                                         


                                                                                             
                                                                        



                                                                                            
                                                                                                   










































































                                                                                             
                                                                                            


                                                                                                                
                                                                               


                                                                                                   
                                                                               


                                                                                                   
                                                                          


                                                                                              
                                                                         



                                                                                             
                                                                                                   


















































                                                                                                        
                                                                                     


                                                                                                         
                                                                                 


                                                                                                     
                                                                              


                                                                                                  
                                                                              


                                                                                                  
                                                                              



                                                                                                  
                                                                                                   


















                                                                                                  
                                                                                     


                                                                                                         
                                                                                    


                                                                                                        
                                                                                    


                                                                                                        
                                                                                    


                                                                                                        
                                                                                    


                                                                                                        
                                                                                    


                                                                                                        
                                                                                    


                                                                                                        
                                                                                     


                                                                                                         
                                                                                    



                                                                                                        
                                                                                                                









































                                                                                                       
                                                                                   


                                                                                                       
                                                                                  


                                                                                                      
                                                                                  


                                                                                                      
                                                                                  


                                                                                                      
                                                                                  


                                                                                                      
                                                                                  


                                                                                                      
                                                                                  


                                                                                                      
                                                                                   


                                                                                                       
                                                                                  



                                                                                                      
                                                                                                              









































                                                                                                     
                                                                                   


                                                                                                       
                                                                                        


                                                                                                            
                                                                                  


                                                                                                      
                                                                                  


                                                                                                      
                                                                                  


                                                                                                      
                                                                                  


                                                                                                      
                                                                                  


                                                                                                      
                                                                                  


                                                                                                      
                                                                                  


                                                                                                      
                                                                                   


                                                                                                       
                                                                                  


                                                                                                      
                                                                                  


                                                                                                      
                                                                                   



                                                                                                       
                                                                                                              









































                                                                                                     
                                                                                                


                                                                                                                    
                                                                                              



                                                                                                                  
                                                                                                                   





















                                                                                                           

                                                                                                       
                                                                                                              


















                                                                                          
                                                                                


                                                                                                    
                                                                                     



                                                                                                         

                                                                                                        


















                                                                                          
                                                                                    


                                                                                                        
                                                                                     


                                                                                                         
                                                                                            


                                                                                                                
                                                                                              


                                                                                                                  
                                                                                  



                                                                                                        


















                                                                                           
                                                                                 


                                                                                                     
                                                                                      



                                                                                                          

                                                                                                         


















                                                                                                        
                                                                                                   


                                                                                                                       







                                                                                                                           
                                                                                                
                                                                                                                      


















                                                                                          
                                                                              


                                                                                                  
                                                                              


                                                                                                  
                                                                               


                                                                                                   
                                                                             


                                                                                                 
                                                                              


                                                                                                  
                                                                              


                                                                                                  
                                                                             



                                                                                                 
                                                                                                        


















                                                                                         
                                                                               


                                                                                                   
                                                                                    



                                                                                                        

                                                                                                       


















                                                                                          
                                                                                     


                                                                                                         
                                                                                   



                                                                                                       
                                                                                                        

                                                                 




























                                                                                                          























                                                                                            
                                                                                                          
























                                                                                                
                                                                                        


                                                                                                            
                                                                                          



                                                                                                              
                                                                                                              

                                                                       
















                                                                                         
                                                                               


                                                                                                   
                                                                                    



                                                                                                        

                                                                                                       













                                                                                          
                                                                                                


                                                                    
                                                                                                   

                                                                                                    
                                                                                                                                    

                                                                                                 
                                                                                                        


















                                                                                   
                                                                                         


                                                             
                                                                                            
                                                                             
                                                                           
                                                                                           
                                                                                                                           
                                                                                     
                                                                       
                                                                                       
                                                                                                                       
                                                                                 
                                                                       
                                                                                       
                                                                                                                       
                                                                                 
                                                                        
                                                                                        
                                                                                                                        
                                                                                  
                                                                      
                                                                                      
                                                                                                                      
                                                                                
                                                                       
                                                                                       
                                                                                                                       
                                                                                 
                                                                               
                                                                                               
                                                                                                                               
                                                                                         
                                                                            
                                                                                            
                                                                                                                            
                                                                                      
                                                                      
                                                                                      
                                                                                                                      
                                                                                
                                                                               
                                                                                               
                                                                                                                               
                                                                                         
                                                                      
                                                                                      
                                                                                                                      
                                                                                
                                                                                                 


















                                                                                   
                                                                                         


                                                             
                                                                                            
                                                                             
                                                                         
                                                                                         
                                                                                                                         
                                                                                   

                                                                                                 






















                                                                                     
                                                                                           


                                                               
                                                                                              
                                                                               
                                                                           
                                                                                           
                                                                                                                           
                                                                                     
                                                                                                   


















                                                                                         
                                                                                               


                                                                   
                                                                                                  
                                                                                   

                                                                                
                                                                                                
                                                                                                                                
                                                                                          
                                                                                                       


                                                                              
                                                                                                




















                                                                                                         
                                                                                                         


                                                                             
                                                                                                            
                                                                                             
                                                                                        
                                                                                                        
                                                                                                                                        
                                                                                                  
                                                                                        
                                                                                                        
                                                                                                                                        
                                                                                                  
                                                                                                                 


















                                                                                                  
                                                                                                        


                                                                            
                                                                                                           
                                                                                            
                                                                                       
                                                                                                       
                                                                                                                                       
                                                                                                 
                                                                                       
                                                                                                       
                                                                                                                                       
                                                                                                 
                                                                                                                


















                                                                                                  
                                                                                                        


                                                                            
                                                                                                           
                                                                                            
                                                                                       
                                                                                                       
                                                                                                                                       
                                                                                                 
                                                                                       
                                                                                                       
                                                                                                                                       
                                                                                                 
                                                                                                                












                                                                                              
                                                                                                    


                                                                        
                                                                                                       













                                                                                           
                                                                                                 


                                                                     
                                                                                                  












                                                                                           
                                                                                                 


                                                                     
                                                                                                    












                                                                                           
                                                                                                 


                                                                     
                                                                                                    
                                                                                     
                                                                            
                                                                                            
                                                                                                                            
                                                                                      
                                                                                                         













                                                                                            
                                                                                                  


                                                                       
                                                                                                       















                                                                                          
                                                                                                


                                                                    
                                                                                                 






































































                                                                                                 
                                                                                                 


                                                                     
                                                                                                    













                                                                                          
                                                                                                


                                                                    
                                                                                                 

















                                                                                     
                                                                                           















                                                                                                                                                
                                                                                                    


                                                                        
                                                                                                     






















                                                                                                
                                                                                         


                                                             
                                                                                          



                                                                        
# 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"""