]>
Commit | Line | Data |
---|---|---|
0a68ffd2 EJ |
1 | AT_BANNER([unixctl]) |
2 | ||
f4ec6ff4 | 3 | m4_define([APPCTL], [ovs-appctl --timeout 20]) |
1ca0323e | 4 | m4_define([PYAPPCTL_PY], [$PYTHON3 $srcdir/appctl.py --timeout 20]) |
f4ec6ff4 | 5 | |
1ca0323e BP |
6 | AT_SETUP([unixctl ovs-vswitchd exit - Python3]) |
7 | AT_KEYWORDS([python unixctl]) | |
8 | OVS_VSWITCHD_START | |
0a68ffd2 | 9 | |
1ca0323e BP |
10 | AT_CHECK([PYAPPCTL_PY -t ovs-vswitchd exit], [0], []) |
11 | OVS_WAIT_WHILE([test -s ovs-vswitchd.pid]) | |
0a68ffd2 | 12 | |
1ca0323e BP |
13 | AT_CHECK([PYAPPCTL_PY -t ovsdb-server exit], [0], []) |
14 | OVS_WAIT_WHILE([test -s ovsdb-server.pid]) | |
15 | AT_CLEANUP | |
0a68ffd2 | 16 | |
1ca0323e BP |
17 | AT_SETUP([unixctl ovs-vswitchd list-commands - Python3]) |
18 | OVS_VSWITCHD_START | |
0a68ffd2 | 19 | |
1ca0323e BP |
20 | AT_CHECK([APPCTL list-commands], [0], [stdout]) |
21 | AT_CHECK([head -1 stdout], [0], [dnl | |
0a68ffd2 EJ |
22 | The available commands are: |
23 | ]) | |
1ca0323e BP |
24 | mv stdout expout |
25 | AT_CHECK([PYAPPCTL_PY list-commands], [0], [expout]) | |
0a68ffd2 | 26 | |
1ca0323e BP |
27 | OVS_VSWITCHD_STOP |
28 | AT_CLEANUP] | |
0a68ffd2 | 29 | |
1ca0323e BP |
30 | AT_SETUP([unixctl ovs-vswitchd arguments - Python3]) |
31 | OVS_VSWITCHD_START | |
0a68ffd2 | 32 | |
1ca0323e BP |
33 | AT_CHECK([APPCTL bond/hash], [2], [], [stderr]) |
34 | AT_CHECK([head -1 stderr], [0], [dnl | |
0a68ffd2 EJ |
35 | "bond/hash" command requires at least 1 arguments |
36 | ]) | |
1ca0323e BP |
37 | sed 's/ovs-appctl/appctl.py/' stderr > experr |
38 | AT_CHECK([PYAPPCTL_PY bond/hash], [2], [], [experr]) | |
0a68ffd2 | 39 | |
1ca0323e BP |
40 | AT_CHECK([APPCTL bond/hash mac], [2], [], [stderr]) |
41 | AT_CHECK([head -1 stderr], [0], [dnl | |
0a68ffd2 EJ |
42 | invalid mac |
43 | ]) | |
1ca0323e BP |
44 | sed 's/ovs-appctl/appctl.py/' stderr > experr |
45 | AT_CHECK([PYAPPCTL_PY bond/hash mac], [2], [], [experr]) | |
0a68ffd2 | 46 | |
1ca0323e BP |
47 | AT_CHECK([APPCTL bond/hash mac vlan], [2], [], [stderr]) |
48 | AT_CHECK([head -1 stderr], [0], [dnl | |
0a68ffd2 EJ |
49 | invalid vlan |
50 | ]) | |
1ca0323e BP |
51 | sed 's/ovs-appctl/appctl.py/' stderr > experr |
52 | AT_CHECK([PYAPPCTL_PY bond/hash mac vlan], [2], [], [experr]) | |
0a68ffd2 | 53 | |
1ca0323e BP |
54 | AT_CHECK([APPCTL bond/hash mac vlan basis], [2], [], [stderr]) |
55 | AT_CHECK([head -1 stderr], [0], [dnl | |
0a68ffd2 EJ |
56 | invalid vlan |
57 | ]) | |
1ca0323e BP |
58 | sed 's/ovs-appctl/appctl.py/' stderr > experr |
59 | AT_CHECK([PYAPPCTL_PY bond/hash vlan basis], [2], [], [experr]) | |
0a68ffd2 | 60 | |
1ca0323e BP |
61 | AT_CHECK([APPCTL bond/hash mac vlan basis extra], [2], [], [stderr]) |
62 | AT_CHECK([head -1 stderr], [0], [dnl | |
0a68ffd2 EJ |
63 | "bond/hash" command takes at most 3 arguments |
64 | ]) | |
1ca0323e BP |
65 | sed 's/ovs-appctl/appctl.py/' stderr > experr |
66 | AT_CHECK([PYAPPCTL_PY bond/hash mac vlan basis extra], [2], [], [experr]) | |
0a68ffd2 | 67 | |
1ca0323e BP |
68 | OVS_VSWITCHD_STOP |
69 | AT_CLEANUP | |
0a68ffd2 | 70 | |
1ca0323e BP |
71 | AT_SETUP([unixctl bad target - Python3]) |
72 | AT_CHECK([PYAPPCTL_PY -t bogus doit], [1], [], [stderr]) | |
73 | AT_CHECK_UNQUOTED([tail -1 stderr], [0], [dnl | |
37d03458 | 74 | appctl.py: cannot read pidfile "`pwd`/bogus.pid" (No such file or directory) |
0a68ffd2 | 75 | ]) |
1ca0323e BP |
76 | if test "$IS_WIN32" = "no"; then |
77 | AT_CHECK([PYAPPCTL_PY -t /bogus/path.pid doit], [1], [], [stderr]) | |
78 | AT_CHECK([tail -1 stderr], [0], [dnl | |
0a68ffd2 EJ |
79 | appctl.py: cannot connect to "/bogus/path.pid" (No such file or directory) |
80 | ]) | |
1ca0323e BP |
81 | else |
82 | AT_CHECK([PYAPPCTL_PY -t c:/bogus/path.pid doit], [1], [], [stderr]) | |
83 | AT_CHECK([tail -1 stderr], [0], [dnl | |
07170206 PB |
84 | appctl.py: cannot connect to "c:/bogus/path.pid" (No such file or directory) |
85 | ]) | |
1ca0323e BP |
86 | fi |
87 | AT_CLEANUP | |
0a68ffd2 | 88 | |
1ca0323e BP |
89 | AT_SETUP([unixctl server - Python3]) |
90 | on_exit 'kill `cat test-unixctl.py.pid`' | |
91 | AT_CAPTURE_FILE([`pwd`/test-unixctl.py.log]) | |
92 | AT_CHECK([$PYTHON3 $srcdir/test-unixctl.py --log-file --pidfile --detach --no-chdir]) | |
0a68ffd2 | 93 | |
1ca0323e BP |
94 | AT_CHECK([APPCTL -t test-unixctl.py help], [0], [stdout]) |
95 | AT_CHECK([cat stdout], [0], [dnl | |
0a68ffd2 | 96 | The available commands are: |
f4ec6ff4 | 97 | block |
0a68ffd2 EJ |
98 | echo [[arg ...]] |
99 | echo_error [[arg ...]] | |
100 | exit | |
101 | help | |
8ba37945 | 102 | log [[arg ...]] |
0a68ffd2 | 103 | version |
06380128 | 104 | vlog/close |
f26ddb5b | 105 | vlog/list |
8ba37945 | 106 | vlog/reopen |
f26ddb5b | 107 | vlog/set spec |
0a68ffd2 | 108 | ]) |
1ca0323e BP |
109 | mv stdout expout |
110 | AT_CHECK([PYAPPCTL_PY -t test-unixctl.py help], [0], [expout]) | |
0a68ffd2 | 111 | |
1ca0323e BP |
112 | AT_CHECK([ovs-vsctl --version | sed 's/ovs-vsctl/test-unixctl.py/' | head -1 > expout]) |
113 | AT_CHECK([APPCTL -t test-unixctl.py version], [0], [expout]) | |
114 | AT_CHECK([PYAPPCTL_PY -t test-unixctl.py version], [0], [expout]) | |
0a68ffd2 | 115 | |
1ca0323e BP |
116 | AT_CHECK([APPCTL -t test-unixctl.py echo robot ninja], [0], [stdout]) |
117 | AT_CHECK([cat stdout | sed -e "s/u'/'/g"], [0], [dnl | |
64eb96a9 | 118 | [['robot', 'ninja']] |
0a68ffd2 | 119 | ]) |
1ca0323e BP |
120 | mv stdout expout |
121 | AT_CHECK([PYAPPCTL_PY -t test-unixctl.py echo robot ninja], [0], [expout]) | |
0a68ffd2 | 122 | |
1ca0323e BP |
123 | AT_CHECK([APPCTL -t test-unixctl.py echo_error robot ninja], [2], [], [stderr]) |
124 | AT_CHECK([cat stderr | sed -e "s/u'/'/g"], [0], [dnl | |
64eb96a9 | 125 | [['robot', 'ninja']] |
0a68ffd2 EJ |
126 | ovs-appctl: test-unixctl.py: server returned an error |
127 | ]) | |
1ca0323e BP |
128 | sed 's/ovs-appctl/appctl.py/' stderr > experr |
129 | AT_CHECK([PYAPPCTL_PY -t test-unixctl.py echo_error robot ninja], [2], [], [experr]) | |
0a68ffd2 | 130 | |
1ca0323e BP |
131 | AT_CHECK([APPCTL -t test-unixctl.py echo], [2], [], [stderr]) |
132 | AT_CHECK([cat stderr], [0], [dnl | |
0a68ffd2 EJ |
133 | "echo" command requires at least 1 arguments |
134 | ovs-appctl: test-unixctl.py: server returned an error | |
135 | ]) | |
1ca0323e BP |
136 | sed 's/ovs-appctl/appctl.py/' stderr > experr |
137 | AT_CHECK([PYAPPCTL_PY -t test-unixctl.py echo], [2], [], [experr]) | |
0a68ffd2 | 138 | |
1ca0323e BP |
139 | AT_CHECK([APPCTL -t test-unixctl.py echo robot ninja pirates], [2], [], [stderr]) |
140 | AT_CHECK([cat stderr], [0], [dnl | |
0a68ffd2 EJ |
141 | "echo" command takes at most 2 arguments |
142 | ovs-appctl: test-unixctl.py: server returned an error | |
143 | ]) | |
1ca0323e BP |
144 | sed 's/ovs-appctl/appctl.py/' stderr > experr |
145 | AT_CHECK([PYAPPCTL_PY -t test-unixctl.py echo robot ninja pirates], [2], [], [experr]) | |
0a68ffd2 | 146 | |
1ca0323e BP |
147 | AT_CHECK([APPCTL -t test-unixctl.py bogus], [2], [], [stderr]) |
148 | AT_CHECK([cat stderr], [0], [dnl | |
0a68ffd2 EJ |
149 | "bogus" is not a valid command |
150 | ovs-appctl: test-unixctl.py: server returned an error | |
151 | ]) | |
1ca0323e BP |
152 | sed 's/ovs-appctl/appctl.py/' stderr > experr |
153 | AT_CHECK([PYAPPCTL_PY -t test-unixctl.py bogus], [2], [], [experr]) | |
0a68ffd2 | 154 | |
1ca0323e BP |
155 | AT_CHECK([APPCTL -t test-unixctl.py exit]) |
156 | AT_CLEANUP | |
0a68ffd2 | 157 | |
1ca0323e BP |
158 | AT_SETUP([unixctl server errors - Python3]) |
159 | AT_CHECK($PYTHON3 $srcdir/test-unixctl.py --unixctl "`pwd`"/bogus/path, [1], [], [ignore]) | |
160 | AT_CLEANUP |