summaryrefslogtreecommitdiffstats
path: root/tools/lint/tests/expect/completion.exp
blob: ed4f6bd45c1feed606dd785659033d6a484237f3 (plain)
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
#!/usr/bin/expect -f

if { [info exists ::env(CURRENT_SOURCE_DIR)] } {
    source "$env(CURRENT_SOURCE_DIR)/tests/expect/common.exp"
    set yang_dir "$env(CURRENT_SOURCE_DIR)/examples"
} else {
    source "common.exp"
    set yang_dir "../../examples"
}

spawn $yanglint

# skip no dir and/or no history warnings
expect_output "(YANGLINT.*)*> "

expect_command "clear -ii" 0 ""

expect_command "add ${yang_dir}/ietf-ip.yang" 0 ""

expect_completion "print -f info -P " "print -f info -P /ietf-"

set hints {"/ietf-yang-schema-mount:schema-mounts" "/ietf-interfaces:interfaces" "/ietf-interfaces:interfaces-state"}

expect_hint "" "print -f info -P /ietf-" $hints

expect_completion "i" "print -f info -P /ietf-interfaces:interfaces"

expect_completion "/" "print -f info -P /ietf-interfaces:interfaces/interface"

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

expect_hint "" "print -f info -P /ietf-interfaces:interfaces/interface" $hints

expect_completion "/i" "print -f info -P /ietf-interfaces:interfaces/interface/ietf-ip:ipv"

expect_completion "4" "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"
}

expect_hint "\t" "print -f info -P /ietf-interfaces:interfaces/interface/ietf-ip:ipv" $hints

expect_completion "/e" "print -f info -P /ietf-interfaces:interfaces/interface/ietf-ip:ipv4/enabled "

send -- "\r"

expect {
    -re ".*\r\n> " {}
    timeout {exit 1}
}

send -- "exit\r"

expect eof