1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
source [expr {[info exists ::env(TESTS_DIR)] ? "$env(TESTS_DIR)/interactive/ly.tcl" : "ly.tcl"}]
set mdir "$::env(YANG_MODULES_DIR)"
variable ly_cleanup {
ly_ignore
ly_exit
}
test completion_hints_ietf_ip {Completion and hints for ietf-ip.yang} {
-setup $ly_setup -cleanup $ly_cleanup -body {
ly_cmd "add $mdir/ietf-ip.yang"
# completion and hint
ly_completion "print -f info -P " "/ietf-"
set hints {"/ietf-yang-schema-mount:schema-mounts" "/ietf-interfaces:interfaces" "/ietf-interfaces:interfaces-state"}
ly_hint "" "print -f info -P /ietf-" $hints
# double completion
ly_completion "i" "nterfaces:interfaces"
ly_completion "/" "interface"
# current cli: print -f info -P /ietf-interfaces:interfaces/interface
# a lot of hints
set hints {"/ietf-interfaces:interfaces/interface"
"/ietf-interfaces:interfaces/interface/name" "/ietf-interfaces:interfaces/interface/description"
"/ietf-interfaces:interfaces/interface/type" "/ietf-interfaces:interfaces/interface/enabled"
"/ietf-interfaces:interfaces/interface/link-up-down-trap-enable"
"/ietf-interfaces:interfaces/interface/ietf-ip:ipv4" "/ietf-interfaces:interfaces/interface/ietf-ip:ipv6"
}
ly_hint "" "print -f info -P /ietf-interfaces:interfaces/interface" $hints
# double tab
ly_completion "/i" "etf-ip:ipv"
# current cli: print -f info -P /ietf-interfaces:interfaces/interface/ietf-ip:ipv
ly_completion "4" ""
# current cli: print -f info -P /ietf-interfaces:interfaces/interface/ietf-ip:ipv4
set hints { "/ietf-interfaces:interfaces/interface/ietf-ip:ipv4" "/ietf-interfaces:interfaces/interface/ietf-ip:ipv4/enabled"
"/ietf-interfaces:interfaces/interface/ietf-ip:ipv4/forwarding" "/ietf-interfaces:interfaces/interface/ietf-ip:ipv4/mtu"
"/ietf-interfaces:interfaces/interface/ietf-ip:ipv4/address" "/ietf-interfaces:interfaces/interface/ietf-ip:ipv4/neighbor"
}
ly_hint "\t" "print -f info -P /ietf-interfaces:interfaces/interface" $hints
# no more completion
ly_completion "/e" "nabled "
# current cli: print -f info -P /ietf-interfaces:interfaces/interface/ietf-ip:ipv4/enabled
}}
# Note that somehow a command is automatically sent again (\t\t replaced by \r) after the hints.
# But that doesn't affect the test because the tests only focus on the word in the hint.
test hint_data_file {Show file hints for command data} {
-setup $ly_setup -cleanup $ly_cleanup -body {
ly_hint "data $mdir\t\t" "data $mdir" "modleaf.yang.*"
}}
test hint_data_format {Show print hints for command data --format} {
-setup $ly_setup -cleanup $ly_cleanup -body {
ly_hint "data -f \t\t" "data -f " "xml.*"
}}
test hint_data_file_after_opt {Show file hints after option with argument} {
-setup $ly_setup -cleanup $ly_cleanup -body {
ly_hint "data -f xml $mdir\t\t" "data -f xml $mdir" "modleaf.yang.*"
}}
test hint_data_file_after_opt2 {Show file hints after option without argument} {
-setup $ly_setup -cleanup $ly_cleanup -body {
ly_hint "data -m $mdir\t\t" "data -m $mdir" "modleaf.yang.*"
}}
cleanupTests
|