Going to test vty_cmd_string_from_valstr()
Tested with %s-strings, resulting cmd = '[prefix%s%s%s%s%s][foo%s%s%s%s%s][sep%s%s%s%s%s][bar%s%s%s%s%s][end%s%s%s%s%s]'
Going to test VTY node tree structure
Going to execute 'enable'
Returned: 0, Current node: 3 '%s# '
Going to execute 'configure terminal'
Returned: 0, Current node: 4 '%s(config)# '
Going to execute 'exit'
Returned: 0, Current node: 3 '%s# '
Going to execute 'configure terminal'
Returned: 0, Current node: 4 '%s(config)# '
Going to execute 'end'
Returned: 0, Current node: 3 '%s# '
Going to execute 'configure terminal'
Returned: 0, Current node: 4 '%s(config)# '
Going to execute 'log stderr'
Returned: 0, Current node: 7 '%s(config-log)# '
Going to execute 'exit'
Returned: 0, Current node: 4 '%s(config)# '
Going to execute 'log stderr'
Returned: 0, Current node: 7 '%s(config-log)# '
Going to execute 'end'
Returned: 0, Current node: 3 '%s# '
Going to execute 'configure terminal'
Returned: 0, Current node: 4 '%s(config)# '
Going to execute 'line vty'
Returned: 0, Current node: 9 '%s(config-line)# '
Going to execute 'exit'
Returned: 0, Current node: 4 '%s(config)# '
Going to execute 'line vty'
Returned: 0, Current node: 9 '%s(config-line)# '
Going to execute 'end'
Returned: 0, Current node: 3 '%s# '
Going to execute 'configure terminal'
Returned: 0, Current node: 4 '%s(config)# '
Going to execute 'log stderr'
Returned: 0, Current node: 7 '%s(config-log)# '
Going to execute 'line vty'
Returned: 2, Current node: 7 '%s(config-log)# '
Going to execute 'end'
Returned: 0, Current node: 3 '%s# '
Going to execute 'exit'
Returned: 0, Current node: 3 '%s# '
Going to test VTY configuration of the stats subsystem
Going to execute 'enable'
Returned: 0, Current node: 3 '%s# '
Going to execute 'configure terminal'
Returned: 0, Current node: 4 '%s(config)# '
Going to execute 'stats reporter foobar'
Returned: 2, Current node: 4 '%s(config)# '
Going to execute 'stats interval 42'
Returned: 0, Current node: 4 '%s(config)# '
Going to execute 'stats reporter log'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'prefix myprefix'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'no prefix'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'level peer'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'level subscriber'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'level global'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'level foobar'
Returned: 2, Current node: 8 '%s(config-stats)# '
Going to execute 'enable'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'disable'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'exit'
Returned: 0, Current node: 4 '%s(config)# '
Going to execute 'stats reporter statsd'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'prefix myprefix'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'no prefix'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'level peer'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'level subscriber'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'level global'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'level foobar'
Returned: 2, Current node: 8 '%s(config-stats)# '
Going to execute 'remote-ip 127.0.0.99'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'remote-ip 678.0.0.99'
Returned: 1, Current node: 8 '%s(config-stats)# '
Going to execute 'remote-port 12321'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'local-ip 127.0.0.98'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'no local-ip'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'mtu 987'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'no mtu'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'enable'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'disable'
Returned: 0, Current node: 8 '%s(config-stats)# '
Going to execute 'exit'
Returned: 0, Current node: 4 '%s(config)# '
Going to execute 'no stats reporter log'
Returned: 0, Current node: 4 '%s(config)# '
Going to execute 'no stats reporter statsd'
Returned: 0, Current node: 4 '%s(config)# '
reading file ok.cfg, expecting rc=0
called level1 node a
called level1 child cmd a
called level2 node a
called level2 child cmd a
called level3 node a
called level3 child cmd a
called level1 node b
called level1 child cmd b
called level2 node b
called level2 child cmd b
called level1 node c
called level1 child cmd c
called level2 node c
called level2 child cmd c
called level3 node c
called level3 child cmd c
called level2 node d
called level2 child cmd d
called level1 node e
called level1 child cmd e
called level2 node e
called level2 child cmd e
called level2 node f
called level2 child cmd f
called level1 node g
called level1 child cmd g
called level1 node h
called level1 child cmd h
got rc=0
reading file ok_more_spaces.cfg, expecting rc=0
called level1 node a
called level1 child cmd a
called level2 node a
called level2 child cmd a
called level3 node a
called level3 child cmd a
called level1 node b
called level1 child cmd b
called level2 node b
called level2 child cmd b
called level1 node c
called level1 child cmd c
called level2 node c
called level2 child cmd c
called level3 node c
called level3 child cmd c
called level2 node d
called level2 child cmd d
called level1 node e
called level1 child cmd e
called level2 node e
called level2 child cmd e
called level2 node f
called level2 child cmd f
called level1 node g
called level1 child cmd g
called level1 node h
called level1 child cmd h
got rc=0
reading file ok_tabs.cfg, expecting rc=0
called level1 node a
called level1 child cmd a
called level2 node a
called level2 child cmd a
called level3 node a
called level3 child cmd a
called level1 node b
called level1 child cmd b
called level2 node b
called level2 child cmd b
called level1 node c
called level1 child cmd c
called level2 node c
called level2 child cmd c
called level3 node c
called level3 child cmd c
called level2 node d
called level2 child cmd d
called level1 node e
called level1 child cmd e
called level2 node e
called level2 child cmd e
called level2 node f
called level2 child cmd f
called level1 node g
called level1 child cmd g
called level1 node h
called level1 child cmd h
got rc=0
reading file ok_tabs_and_spaces.cfg, expecting rc=0
called level1 node a
called level1 child cmd a
called level2 node a
called level2 child cmd a
called level3 node a
called level3 child cmd a
called level1 node b
called level1 child cmd b
called level2 node b
called level2 child cmd b
called level1 node c
called level1 child cmd c
called level2 node c
called level2 child cmd c
called level3 node c
called level3 child cmd c
called level2 node d
called level2 child cmd d
called level1 node e
called level1 child cmd e
called level2 node e
called level2 child cmd e
called level2 node f
called level2 child cmd f
called level1 node g
called level1 child cmd g
called level1 node h
called level1 child cmd h
got rc=0
reading file ok_ignore_comment.cfg, expecting rc=0
called level1 node 
called level1 child cmd 
called level2 node 
called level2 child cmd 
called level1 node 
got rc=0
reading file ok_ignore_blank.cfg, expecting rc=0
called level1 node 
called level2 node 
called level2 child cmd 
called level3 node 
called level3 child cmd 
called level1 node 
got rc=0
reading file fail_not_de-indented.cfg, expecting rc=-22
called level1 node a
called level1 child cmd a
got rc=-22
reading file fail_too_much_indent.cfg, expecting rc=-22
called level1 node a
called level1 child cmd a
got rc=-22
reading file fail_tabs_and_spaces.cfg, expecting rc=-22
called level1 node a
called level1 child cmd a
got rc=-22
reading file ok_indented_root.cfg, expecting rc=0
called level1 node a
called level1 child cmd 
called level2 node 
called level2 child cmd 
called level1 node b
got rc=0
reading file ok_empty_parent.cfg, expecting rc=0
called level1 node a
called level2 node a
called level3 node a
called level1 node b
called level2 node b
called level1 node c
called level1 node d
called level2 node e
called level2 node f
called level3 node f
called level3 node g
called level2 node g
called level2 node h
called level1 node h
called level1 node i
called level1 node j
called level2 node j
called level1 child cmd j
called level1 node k
called level2 node k
called level3 node k
called level1 child cmd k
got rc=0
All tests passed
