3 m4_define([APPCTL], [ovs-appctl --timeout 20])
4 m4_define([PYAPPCTL_PY], [$PYTHON3 $srcdir/appctl.py --timeout 20])
6 AT_SETUP([unixctl ovs-vswitchd exit - Python3])
7 AT_KEYWORDS([python unixctl])
10 AT_CHECK([PYAPPCTL_PY -t ovs-vswitchd exit], [0], [])
11 OVS_WAIT_WHILE([test -s ovs-vswitchd.pid])
13 AT_CHECK([PYAPPCTL_PY -t ovsdb-server exit], [0], [])
14 OVS_WAIT_WHILE([test -s ovsdb-server.pid])
17 AT_SETUP([unixctl ovs-vswitchd list-commands - Python3])
20 AT_CHECK([APPCTL list-commands], [0], [stdout])
21 AT_CHECK([head -1 stdout], [0], [dnl
22 The available commands are:
25 AT_CHECK([PYAPPCTL_PY list-commands], [0], [expout])
30 AT_SETUP([unixctl ovs-vswitchd arguments - Python3])
33 AT_CHECK([APPCTL bond/hash], [2], [], [stderr])
34 AT_CHECK([head -1 stderr], [0], [dnl
35 "bond/hash" command requires at least 1 arguments
37 sed 's/ovs-appctl/appctl.py/' stderr > experr
38 AT_CHECK([PYAPPCTL_PY bond/hash], [2], [], [experr])
40 AT_CHECK([APPCTL bond/hash mac], [2], [], [stderr])
41 AT_CHECK([head -1 stderr], [0], [dnl
44 sed 's/ovs-appctl/appctl.py/' stderr > experr
45 AT_CHECK([PYAPPCTL_PY bond/hash mac], [2], [], [experr])
47 AT_CHECK([APPCTL bond/hash mac vlan], [2], [], [stderr])
48 AT_CHECK([head -1 stderr], [0], [dnl
51 sed 's/ovs-appctl/appctl.py/' stderr > experr
52 AT_CHECK([PYAPPCTL_PY bond/hash mac vlan], [2], [], [experr])
54 AT_CHECK([APPCTL bond/hash mac vlan basis], [2], [], [stderr])
55 AT_CHECK([head -1 stderr], [0], [dnl
58 sed 's/ovs-appctl/appctl.py/' stderr > experr
59 AT_CHECK([PYAPPCTL_PY bond/hash vlan basis], [2], [], [experr])
61 AT_CHECK([APPCTL bond/hash mac vlan basis extra], [2], [], [stderr])
62 AT_CHECK([head -1 stderr], [0], [dnl
63 "bond/hash" command takes at most 3 arguments
65 sed 's/ovs-appctl/appctl.py/' stderr > experr
66 AT_CHECK([PYAPPCTL_PY bond/hash mac vlan basis extra], [2], [], [experr])
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
74 appctl.py: cannot read pidfile "`pwd`/bogus.pid" (No such file or directory)
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
79 appctl.py: cannot connect to "/bogus/path.pid" (No such file or directory)
82 AT_CHECK([PYAPPCTL_PY -t c:/bogus/path.pid doit], [1], [], [stderr])
83 AT_CHECK([tail -1 stderr], [0], [dnl
84 appctl.py: cannot connect to "c:/bogus/path.pid" (No such file or directory)
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])
94 AT_CHECK([APPCTL -t test-unixctl.py help], [0], [stdout])
95 AT_CHECK([cat stdout], [0], [dnl
96 The available commands are:
99 echo_error [[arg ...]]
110 AT_CHECK([PYAPPCTL_PY -t test-unixctl.py help], [0], [expout])
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])
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
121 AT_CHECK([PYAPPCTL_PY -t test-unixctl.py echo robot ninja], [0], [expout])
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
126 ovs-appctl: test-unixctl.py: server returned an error
128 sed 's/ovs-appctl/appctl.py/' stderr > experr
129 AT_CHECK([PYAPPCTL_PY -t test-unixctl.py echo_error robot ninja], [2], [], [experr])
131 AT_CHECK([APPCTL -t test-unixctl.py echo], [2], [], [stderr])
132 AT_CHECK([cat stderr], [0], [dnl
133 "echo" command requires at least 1 arguments
134 ovs-appctl: test-unixctl.py: server returned an error
136 sed 's/ovs-appctl/appctl.py/' stderr > experr
137 AT_CHECK([PYAPPCTL_PY -t test-unixctl.py echo], [2], [], [experr])
139 AT_CHECK([APPCTL -t test-unixctl.py echo robot ninja pirates], [2], [], [stderr])
140 AT_CHECK([cat stderr], [0], [dnl
141 "echo" command takes at most 2 arguments
142 ovs-appctl: test-unixctl.py: server returned an error
144 sed 's/ovs-appctl/appctl.py/' stderr > experr
145 AT_CHECK([PYAPPCTL_PY -t test-unixctl.py echo robot ninja pirates], [2], [], [experr])
147 AT_CHECK([APPCTL -t test-unixctl.py bogus], [2], [], [stderr])
148 AT_CHECK([cat stderr], [0], [dnl
149 "bogus" is not a valid command
150 ovs-appctl: test-unixctl.py: server returned an error
152 sed 's/ovs-appctl/appctl.py/' stderr > experr
153 AT_CHECK([PYAPPCTL_PY -t test-unixctl.py bogus], [2], [], [experr])
155 AT_CHECK([APPCTL -t test-unixctl.py exit])
158 AT_SETUP([unixctl server errors - Python3])
159 AT_CHECK($PYTHON3 $srcdir/test-unixctl.py --unixctl "`pwd`"/bogus/path, [1], [], [ignore])