unixctl: Re-enable unit tests.
[cascardo/ovs.git] / tests / unixctl-py.at
1 AT_BANNER([unixctl])
2
3 AT_SETUP([unixctl ovs-vswitchd exit - Python])
4 AT_SKIP_IF([test $HAVE_PYTHON = no])
5 OVS_VSWITCHD_START
6
7 AT_CHECK([$PYTHON $srcdir/appctl.py -t ovs-vswitchd exit], [0], [])
8 OVS_WAIT_WHILE([test -s ovs-vswitchd.pid])
9
10 AT_CHECK([$PYTHON $srcdir/appctl.py -t ovsdb-server exit], [0], [])
11 OVS_WAIT_WHILE([test -s ovsdb-server.pid])
12 AT_CLEANUP
13
14 AT_SETUP([unixctl ovs-vswitchd help - Python])
15 AT_SKIP_IF([test $HAVE_PYTHON = no])
16 OVS_VSWITCHD_START
17
18 AT_CHECK([ovs-appctl help], [0], [stdout])
19 AT_CHECK([head -1 stdout], [0], [dnl
20 The available commands are:
21 ])
22 mv stdout expout
23 AT_CHECK([$PYTHON $srcdir/appctl.py help], [0], [expout])
24
25 OVS_VSWITCHD_STOP
26 AT_CLEANUP
27
28
29 AT_SETUP([unixctl ovs-vswitchd arguments - Python])
30 AT_SKIP_IF([test $HAVE_PYTHON = no])
31 OVS_VSWITCHD_START
32
33 AT_CHECK([ovs-appctl bond/hash], [2], [], [stderr])
34 AT_CHECK([head -1 stderr], [0], [dnl
35 "bond/hash" command requires at least 1 arguments
36 ])
37 sed 's/ovs-appctl/appctl.py/' stderr > experr
38 AT_CHECK([$PYTHON $srcdir/appctl.py bond/hash], [2], [], [experr])
39
40 AT_CHECK([ovs-appctl bond/hash mac], [2], [], [stderr])
41 AT_CHECK([head -1 stderr], [0], [dnl
42 invalid mac
43 ])
44 sed 's/ovs-appctl/appctl.py/' stderr > experr
45 AT_CHECK([$PYTHON $srcdir/appctl.py bond/hash mac], [2], [], [experr])
46
47 AT_CHECK([ovs-appctl bond/hash mac vlan], [2], [], [stderr])
48 AT_CHECK([head -1 stderr], [0], [dnl
49 invalid vlan
50 ])
51 sed 's/ovs-appctl/appctl.py/' stderr > experr
52 AT_CHECK([$PYTHON $srcdir/appctl.py bond/hash mac vlan], [2], [], [experr])
53
54 AT_CHECK([ovs-appctl bond/hash mac vlan basis], [2], [], [stderr])
55 AT_CHECK([head -1 stderr], [0], [dnl
56 invalid vlan
57 ])
58 sed 's/ovs-appctl/appctl.py/' stderr > experr
59 AT_CHECK([$PYTHON $srcdir/appctl.py bond/hash vlan basis], [2], [], [experr])
60
61 AT_CHECK([ovs-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
64 ])
65 sed 's/ovs-appctl/appctl.py/' stderr > experr
66 AT_CHECK([$PYTHON $srcdir/appctl.py bond/hash mac vlan basis extra], [2], [], [experr])
67
68 OVS_VSWITCHD_STOP
69 AT_CLEANUP
70
71 AT_SETUP([unixctl bad target - Python])
72 OVS_RUNDIR=$PWD; export OVS_RUNDIR
73 AT_SKIP_IF([test $HAVE_PYTHON = no])
74
75 AT_CHECK([$PYTHON $srcdir/appctl.py -t bogus doit], [1], [], [stderr])
76 AT_CHECK_UNQUOTED([tail -1 stderr], [0], [dnl
77 appctl.py: cannot read pidfile "$PWD/bogus.pid" (No such file or directory)
78 ])
79
80 AT_CHECK([$PYTHON $srcdir/appctl.py -t /bogus/path.pid doit], [1], [], [stderr])
81 AT_CHECK([tail -1 stderr], [0], [dnl
82 appctl.py: cannot connect to "/bogus/path.pid" (No such file or directory)
83 ])
84
85 AT_CLEANUP
86
87 AT_SETUP([unixctl server - Python])
88 AT_SKIP_IF([test $HAVE_PYTHON = no])
89 OVS_RUNDIR=$PWD; export OVS_RUNDIR
90 OVS_LOGDIR=$PWD; export OVS_LOGDIR
91 OVS_SYSCONFDIR=$PWD; export OVS_SYSCONFDIR
92 trap 'kill `cat test-unixctl.py.pid`' 0
93 AT_CAPTURE_FILE([$PWD/test-unixctl.py.log])
94 AT_CHECK([$PYTHON $srcdir/test-unixctl.py --log-file --pidfile --detach])
95
96 AT_CHECK([ovs-appctl -t test-unixctl.py help], [0], [stdout])
97 AT_CHECK([cat stdout], [0], [dnl
98 The available commands are:
99   echo                    [[arg ...]]
100   echo_error              [[arg ...]]
101   exit
102   help
103   version
104 ])
105 mv stdout expout
106 AT_CHECK([$PYTHON $srcdir/appctl.py -t test-unixctl.py help], [0], [expout])
107
108 AT_CHECK([echo "test-unixctl.py (Open vSwitch) $VERSION $BUILDNR" > expout])
109 AT_CHECK([ovs-appctl -t test-unixctl.py version], [0], [expout])
110 AT_CHECK([$PYTHON $srcdir/appctl.py -t test-unixctl.py version], [0], [expout])
111
112 AT_CHECK([ovs-appctl -t test-unixctl.py echo robot ninja], [0], [stdout])
113 AT_CHECK([cat stdout], [0], [dnl
114 [[u'robot', u'ninja']]
115 ])
116 mv stdout expout
117 AT_CHECK([$PYTHON $srcdir/appctl.py -t test-unixctl.py echo robot ninja], [0], [expout])
118
119 AT_CHECK([ovs-appctl -t test-unixctl.py echo_error robot ninja], [2], [], [stderr])
120 AT_CHECK([cat stderr], [0], [dnl
121 [[u'robot', u'ninja']]
122 ovs-appctl: test-unixctl.py: server returned an error
123 ])
124 sed 's/ovs-appctl/appctl.py/' stderr > experr
125 AT_CHECK([$PYTHON $srcdir/appctl.py -t test-unixctl.py echo_error robot ninja], [2], [], [experr])
126
127 AT_CHECK([ovs-appctl -t test-unixctl.py echo], [2], [], [stderr])
128 AT_CHECK([cat stderr], [0], [dnl
129 "echo" command requires at least 1 arguments
130 ovs-appctl: test-unixctl.py: server returned an error
131 ])
132 sed 's/ovs-appctl/appctl.py/' stderr > experr
133 AT_CHECK([$PYTHON $srcdir/appctl.py -t test-unixctl.py echo], [2], [], [experr])
134
135 AT_CHECK([ovs-appctl -t test-unixctl.py echo robot ninja pirates], [2], [], [stderr])
136 AT_CHECK([cat stderr], [0], [dnl
137 "echo" command takes at most 2 arguments
138 ovs-appctl: test-unixctl.py: server returned an error
139 ])
140 sed 's/ovs-appctl/appctl.py/' stderr > experr
141 AT_CHECK([$PYTHON $srcdir/appctl.py -t test-unixctl.py echo robot ninja pirates], [2], [], [experr])
142
143 AT_CHECK([ovs-appctl -t test-unixctl.py bogus], [2], [], [stderr])
144 AT_CHECK([cat stderr], [0], [dnl
145 "bogus" is not a valid command
146 ovs-appctl: test-unixctl.py: server returned an error
147 ])
148 sed 's/ovs-appctl/appctl.py/' stderr > experr
149 AT_CHECK([$PYTHON $srcdir/appctl.py -t test-unixctl.py bogus], [2], [], [experr])
150
151 AT_CHECK([ovs-appctl -t test-unixctl.py exit])
152 trap '' 0]
153 AT_CLEANUP
154
155
156 AT_SETUP([unixctl server errors - Python])
157 AT_SKIP_IF([test $HAVE_PYTHON = no])
158 AT_CHECK($PYTHON $srcdir/test-unixctl.py --unixctl $PWD/bogus/path, [1], [], [ignore])
159 AT_CLEANUP