summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Sitnicki <jkbs@redhat.com>2018-04-18 18:01:13 +0200
committerBen Pfaff <blp@ovn.org>2018-04-18 11:33:35 -0700
commit61845323cf3d996a64230aaba8443ccd7337d803 (patch)
treedb5595c4fb0985c5c3cad7afcb7d198bd781fa79
parentc7ea0e6b7991c94530636d92afb87d3dfee96056 (diff)
downloadopenvswitch-61845323cf3d996a64230aaba8443ccd7337d803.tar.gz
tests: Extend Python IDL checks to also run with SSL
Extend the macro for running a Python IDL test against an OVSDB server that uses SSL so that it can be used for regular IDL tests and for the notify tests. This makes it easy to generate additional Python IDL tests that run using SSL, so do it. As it turns out, newly added SSL tests unearth a pre-existing issue with unicode encoding when SSL is used, which will be fixed in the following patch. Signed-off-by: Jakub Sitnicki <jkbs@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
-rw-r--r--tests/ovsdb-idl.at71
1 files changed, 44 insertions, 27 deletions
diff --git a/tests/ovsdb-idl.at b/tests/ovsdb-idl.at
index 9a93bbb0e..9caa02aad 100644
--- a/tests/ovsdb-idl.at
+++ b/tests/ovsdb-idl.at
@@ -132,12 +132,54 @@ m4_define([OVSDB_CHECK_IDL_TCP6_PY],
OVSDB_CHECK_IDL_TCP6_PYN([$1 - Python3], [$2], [$3], [$4], [$5], [$6],
[$HAVE_PYTHON3], [$PYTHON3])])
+# same as OVSDB_CHECK_IDL but uses the Python IDL implementation with SSL
+m4_define([OVSDB_CHECK_IDL_SSL_PYN],
+ [AT_SETUP([$1 - SSL])
+ AT_SKIP_IF([test "$HAVE_OPENSSL" = no])
+ AT_SKIP_IF([test $7 = no])
+ $8 -c "import OpenSSL.SSL"
+ SSL_PRESENT=$?
+ AT_SKIP_IF([test $SSL_PRESENT != 0])
+ AT_KEYWORDS([ovsdb server idl positive Python with ssl socket $5])
+ AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest.ovsschema],
+ [0], [stdout], [ignore])
+ PKIDIR=$abs_top_builddir/tests
+ AT_CHECK([ovsdb-server -vconsole:warn --log-file --detach --no-chdir \
+ --pidfile \
+ --private-key=$PKIDIR/testpki-privkey2.pem \
+ --certificate=$PKIDIR/testpki-cert2.pem \
+ --ca-cert=$PKIDIR/testpki-cacert.pem \
+ --remote=pssl:0:127.0.0.1 db])
+ on_exit 'kill `cat ovsdb-server.pid`'
+ PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT])
+ m4_if([$2], [], [],
+ [AT_CHECK([ovsdb-client \
+ --private-key=$PKIDIR/testpki-privkey2.pem \
+ --certificate=$PKIDIR/testpki-cert2.pem \
+ --ca-cert=$PKIDIR/testpki-cacert.pem \
+ transact "ssl:127.0.0.1:$TCP_PORT" $2], [0], [ignore], [ignore])])
+ AT_CHECK([$8 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema \
+ ssl:127.0.0.1:$TCP_PORT $PKIDIR/testpki-privkey.pem \
+ $PKIDIR/testpki-cert.pem $PKIDIR/testpki-cacert.pem $3],
+ [0], [stdout], [ignore])
+ AT_CHECK([sort stdout | uuidfilt]m4_if([$6],,, [[| $6]]),
+ [0], [$4])
+ OVSDB_SERVER_SHUTDOWN
+ AT_CLEANUP])
+
+m4_define([OVSDB_CHECK_IDL_SSL_PY],
+ [OVSDB_CHECK_IDL_SSL_PYN([$1 - Python2], [$2], [$3], [$4], [$5], [$6],
+ [$HAVE_PYTHON], [$PYTHON])
+ OVSDB_CHECK_IDL_SSL_PYN([$1 - Python3], [$2], [$3], [$4], [$5], [$6],
+ [$HAVE_PYTHON3], [$PYTHON3])])
+
m4_define([OVSDB_CHECK_IDL],
[OVSDB_CHECK_IDL_C($@)
OVSDB_CHECK_IDL_PY($@)
OVSDB_CHECK_IDL_REGISTER_COLUMNS_PY($@)
OVSDB_CHECK_IDL_TCP_PY($@)
- OVSDB_CHECK_IDL_TCP6_PY($@)])
+ OVSDB_CHECK_IDL_TCP6_PY($@)
+ OVSDB_CHECK_IDL_SSL_PY($@)])
# This test uses the Python IDL implementation with passive tcp
m4_define([OVSDB_CHECK_IDL_PASSIVE_TCP_PYN],
@@ -1243,32 +1285,7 @@ m4_define([OVSDB_CHECK_IDL_NOTIFY_PY],
# This test uses the Python IDL implementation with ssl
m4_define([OVSDB_CHECK_IDL_NOTIFY_SSL_PYN],
- [AT_SETUP([$1 - SSL])
- AT_SKIP_IF([test "$HAVE_OPENSSL" = no])
- AT_SKIP_IF([test $6 = no])
- $7 -c "import OpenSSL.SSL"
- SSL_PRESENT=$?
- AT_SKIP_IF([test $SSL_PRESENT != 0])
- AT_KEYWORDS([ovsdb server idl Python notify - ssl socket])
- AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest.ovsschema],
- [0], [stdout], [ignore])
- PKIDIR=$abs_top_builddir/tests
- AT_CHECK([ovsdb-server -vconsole:warn --log-file --detach --no-chdir \
- --pidfile \
- --private-key=$PKIDIR/testpki-privkey2.pem \
- --certificate=$PKIDIR/testpki-cert2.pem \
- --ca-cert=$PKIDIR/testpki-cacert.pem \
- --remote=pssl:0:127.0.0.1 db])
- on_exit 'kill `cat ovsdb-server.pid`'
- PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT])
- AT_CHECK([$7 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema \
- ssl:127.0.0.1:$TCP_PORT $PKIDIR/testpki-privkey.pem \
- $PKIDIR/testpki-cert.pem $PKIDIR/testpki-cacert.pem $2],
- [0], [stdout], [ignore])
- AT_CHECK([sort stdout | uuidfilt]m4_if([$5],,, [[| $5]]),
- [0], [$3])
- OVSDB_SERVER_SHUTDOWN
- AT_CLEANUP])
+ [OVSDB_CHECK_IDL_SSL_PYN([$1], [], [$2], [$3], [notify $4], [$5], [$6], [$7])])
m4_define([OVSDB_CHECK_IDL_NOTIFY_SSL_PY],
[OVSDB_CHECK_IDL_NOTIFY_SSL_PYN([$1 - Python2], [$2], [$3], [$4], [$5],