diff options
author | Terry Wilson <twilson@redhat.com> | 2018-10-09 11:31:32 -0500 |
---|---|---|
committer | Ben Pfaff <blp@ovn.org> | 2018-10-11 15:00:46 -0700 |
commit | a7be68a4d77791bbe02c37f7ad8ae60b02e5679e (patch) | |
tree | 07aa0cbcbcffa7f7a80905d20c627481b768d244 /tests/ovsdb-idl.at | |
parent | 39cc92aa651e209e246d6e1547662ba0cafb9f1d (diff) | |
download | openvswitch-a7be68a4d77791bbe02c37f7ad8ae60b02e5679e.tar.gz |
Test the Python C JSON extension
The C JSON parser was added quite a while ago, but unless you
configure with --enable-shared and have the Python 2/3 development
libraries installed, and the resulting python-ovs module installed,
'make check' won't actually test it.
This patch changes Python-based tests to run from the
$builddir/python directory and makes the tests configurable to use
both JSON backends. There are some unicode failures in the C JSON
extension that I left unfixed in this patch to make it easy to
show run the new tests on broken code. The next patch in this set
works around the issue.
Signed-off-by: Terry Wilson <twilson@redhat.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
Acked-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
Diffstat (limited to 'tests/ovsdb-idl.at')
-rw-r--r-- | tests/ovsdb-idl.at | 149 |
1 files changed, 103 insertions, 46 deletions
diff --git a/tests/ovsdb-idl.at b/tests/ovsdb-idl.at index 142eee794..663822ee9 100644 --- a/tests/ovsdb-idl.at +++ b/tests/ovsdb-idl.at @@ -46,11 +46,12 @@ m4_define([OVSDB_CHECK_IDL_C], m4_define([OVSDB_CHECK_IDL_PYN], [AT_SETUP([$1]) AT_SKIP_IF([test $7 = no]) + AT_SKIP_IF([test $9 = C && ! $8 -c "import ovs._json" 2>/dev/null]) AT_KEYWORDS([ovsdb server idl positive Python $5]) AT_CHECK([ovsdb_start_idltest]) m4_if([$2], [], [], [AT_CHECK([ovsdb-client transact unix:socket $2], [0], [ignore], [ignore])]) - AT_CHECK([$8 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema unix:socket $3], + AT_CHECK([$8 $srcdir/test-ovsdb.py -j m4_default([$9], python) -t10 idl $srcdir/idltest.ovsschema unix:socket $3], [0], [stdout], [ignore]) AT_CHECK([sort stdout | uuidfilt]m4_if([$6],,, [[| $6]]), [0], [$4]) @@ -58,19 +59,24 @@ m4_define([OVSDB_CHECK_IDL_PYN], AT_CLEANUP]) m4_define([OVSDB_CHECK_IDL_PY], - [OVSDB_CHECK_IDL_PYN([$1 - Python2], [$2], [$3], [$4], [$5], [$6], + [OVSDB_CHECK_IDL_PYN([$1 - Python2(pyjson)], [$2], [$3], [$4], [$5], [$6], [$HAVE_PYTHON2], [$PYTHON2]) - OVSDB_CHECK_IDL_PYN([$1 - Python3], [$2], [$3], [$4], [$5], [$6], - [$HAVE_PYTHON3], [$PYTHON3])]) + OVSDB_CHECK_IDL_PYN([$1 - Python2(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON2], [$PYTHON2], C) + OVSDB_CHECK_IDL_PYN([$1 - Python3(pyjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3]) + OVSDB_CHECK_IDL_PYN([$1 - Python3(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3], C)]) m4_define([OVSDB_CHECK_IDL_REGISTER_COLUMNS_PYN], [AT_SETUP([$1 - register_columns]) AT_SKIP_IF([test $7 = no]) + AT_SKIP_IF([test $9 = C && ! $8 -c "import ovs._json" 2>/dev/null]) AT_KEYWORDS([ovsdb server idl positive Python register_columns $5]) AT_CHECK([ovsdb_start_idltest]) m4_if([$2], [], [], [AT_CHECK([ovsdb-client transact unix:socket $2], [0], [ignore], [ignore])]) - AT_CHECK([$8 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1?singleton:name $3], + AT_CHECK([$8 $srcdir/test-ovsdb.py -j m4_default([$9], python) -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1?singleton:name $3], [0], [stdout], [ignore]) AT_CHECK([sort stdout | uuidfilt]m4_if([$6],,, [[| $6]]), [0], [$4]) @@ -78,22 +84,27 @@ m4_define([OVSDB_CHECK_IDL_REGISTER_COLUMNS_PYN], AT_CLEANUP]) m4_define([OVSDB_CHECK_IDL_REGISTER_COLUMNS_PY], - [OVSDB_CHECK_IDL_REGISTER_COLUMNS_PYN([$1 - Python2], [$2], [$3], [$4], [$5], [$6], + [OVSDB_CHECK_IDL_REGISTER_COLUMNS_PYN([$1 - Python2(pyjson)], [$2], [$3], [$4], [$5], [$6], [$HAVE_PYTHON2], [$PYTHON2]) - OVSDB_CHECK_IDL_REGISTER_COLUMNS_PYN([$1 - Python3], [$2], [$3], [$4], [$5], [$6], - [$HAVE_PYTHON3], [$PYTHON3])]) + OVSDB_CHECK_IDL_REGISTER_COLUMNS_PYN([$1 - Python2(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON2], [$PYTHON2], C) + OVSDB_CHECK_IDL_REGISTER_COLUMNS_PYN([$1 - Python3(pyjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3]) + OVSDB_CHECK_IDL_REGISTER_COLUMNS_PYN([$1 - Python3(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3], C)]) # same as OVSDB_CHECK_IDL but uses the Python IDL implementation with tcp m4_define([OVSDB_CHECK_IDL_TCP_PYN], [AT_SETUP([$1 - tcp]) AT_SKIP_IF([test $7 = no]) + AT_SKIP_IF([test $9 = C && ! $8 -c "import ovs._json" 2>/dev/null]) AT_KEYWORDS([ovsdb server idl positive Python with tcp socket $5]) AT_CHECK([ovsdb_start_idltest "ptcp:0:127.0.0.1"]) PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT]) m4_if([$2], [], [], [AT_CHECK([ovsdb-client transact tcp:127.0.0.1:$TCP_PORT $2], [0], [ignore], [ignore])]) - AT_CHECK([$8 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT $3], + AT_CHECK([$8 $srcdir/test-ovsdb.py -j m4_default([$9], python) -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT $3], [0], [stdout], [ignore]) AT_CHECK([sort stdout | uuidfilt]m4_if([$6],,, [[| $6]]), [0], [$4]) @@ -101,16 +112,21 @@ m4_define([OVSDB_CHECK_IDL_TCP_PYN], AT_CLEANUP]) m4_define([OVSDB_CHECK_IDL_TCP_PY], - [OVSDB_CHECK_IDL_TCP_PYN([$1 - Python2], [$2], [$3], [$4], [$5], [$6], + [OVSDB_CHECK_IDL_TCP_PYN([$1 - Python2(pyjson)], [$2], [$3], [$4], [$5], [$6], [$HAVE_PYTHON2], [$PYTHON2]) - OVSDB_CHECK_IDL_TCP_PYN([$1 - Python3], [$2], [$3], [$4], [$5], [$6], - [$HAVE_PYTHON3], [$PYTHON3])]) + OVSDB_CHECK_IDL_TCP_PYN([$1 - Python2(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON2], [$PYTHON2], C) + OVSDB_CHECK_IDL_TCP_PYN([$1 - Python3(pyjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3]) + OVSDB_CHECK_IDL_TCP_PYN([$1 - Python3(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3], C)]) # same as OVSDB_CHECK_IDL but uses the Python IDL implementation with tcp # with multiple remotes with only one remote reachable m4_define([OVSDB_CHECK_IDL_TCP_MULTIPLE_REMOTES_PYN], [AT_SETUP([$1 - tcp]) AT_SKIP_IF([test $7 = no]) + AT_SKIP_IF([test $9 = C && ! $8 -c "import ovs._json" 2>/dev/null]) AT_KEYWORDS([ovsdb server idl positive Python with tcp socket $5]) AT_CHECK([ovsdb_start_idltest "ptcp:0:127.0.0.1"]) PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT]) @@ -119,7 +135,7 @@ m4_define([OVSDB_CHECK_IDL_TCP_MULTIPLE_REMOTES_PYN], remote=tcp:127.0.0.1:$WRONG_PORT_1,tcp:127.0.0.1:$TCP_PORT,tcp:127.0.0.1:$WRONG_PORT_2 m4_if([$2], [], [], [AT_CHECK([ovsdb-client transact tcp:127.0.0.1:$TCP_PORT $2], [0], [ignore], [ignore])]) - AT_CHECK([$8 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema $remote $3], + AT_CHECK([$8 $srcdir/test-ovsdb.py -j m4_default([$9], python) -t10 idl $srcdir/idltest.ovsschema $remote $3], [0], [stdout], [ignore]) AT_CHECK([sort stdout | uuidfilt]m4_if([$6],,, [[| $6]]), [0], [$4]) @@ -127,10 +143,14 @@ m4_define([OVSDB_CHECK_IDL_TCP_MULTIPLE_REMOTES_PYN], AT_CLEANUP]) m4_define([OVSDB_CHECK_IDL_TCP_MULTIPLE_REMOTES_PY], - [OVSDB_CHECK_IDL_TCP_MULTIPLE_REMOTES_PYN([$1 - Python2 (multiple remotes)], [$2], [$3], [$4], [$5], [$6], + [OVSDB_CHECK_IDL_TCP_MULTIPLE_REMOTES_PYN([$1 - Python2 (pyjson multiple remotes)], [$2], [$3], [$4], [$5], [$6], [$HAVE_PYTHON], [$PYTHON]) - OVSDB_CHECK_IDL_TCP_MULTIPLE_REMOTES_PYN([$1 - Python3 (multiple remotes)], [$2], [$3], [$4], [$5], [$6], - [$HAVE_PYTHON3], [$PYTHON3])]) + OVSDB_CHECK_IDL_TCP_MULTIPLE_REMOTES_PYN([$1 - Python2 (cjson multiple remotes)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON], [$PYTHON], C) + OVSDB_CHECK_IDL_TCP_MULTIPLE_REMOTES_PYN([$1 - Python3 (pyjson multiple remotes)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3]) + OVSDB_CHECK_IDL_TCP_MULTIPLE_REMOTES_PYN([$1 - Python3 (cjson multiple remotes)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3], C)]) # same as OVSDB_CHECK_IDL but uses the Python IDL implementation with tcp6 m4_define([OVSDB_CHECK_IDL_TCP6_PYN], @@ -138,6 +158,7 @@ m4_define([OVSDB_CHECK_IDL_TCP6_PYN], AT_SKIP_IF([test $7 = no]) AT_SKIP_IF([test "$IS_WIN32" = "yes"]) AT_SKIP_IF([test $HAVE_IPV6 = no]) + AT_SKIP_IF([test $9 = C && ! $8 -c "import ovs._json" 2>/dev/null]) AT_KEYWORDS([ovsdb server idl positive Python with tcp6 socket $5]) AT_CHECK([ovsdb_start_idltest "ptcp:0:[[::1]]"]) PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT]) @@ -145,7 +166,7 @@ m4_define([OVSDB_CHECK_IDL_TCP6_PYN], m4_if([$2], [], [], [AT_CHECK([ovsdb-client transact "tcp:[[::1]]:$TCP_PORT" $2], [0], [ignore], [ignore])]) - AT_CHECK([$8 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema tcp:[[::1]]:$TCP_PORT $3], + AT_CHECK([$8 $srcdir/test-ovsdb.py -j m4_default([$9], python) -t10 idl $srcdir/idltest.ovsschema tcp:[[::1]]:$TCP_PORT $3], [0], [stdout], [ignore]) AT_CHECK([sort stdout | uuidfilt]m4_if([$6],,, [[| $6]]), [0], [$4]) @@ -153,16 +174,21 @@ m4_define([OVSDB_CHECK_IDL_TCP6_PYN], AT_CLEANUP]) m4_define([OVSDB_CHECK_IDL_TCP6_PY], - [OVSDB_CHECK_IDL_TCP6_PYN([$1 - Python2], [$2], [$3], [$4], [$5], [$6], + [OVSDB_CHECK_IDL_TCP6_PYN([$1 - Python2(pyjson)], [$2], [$3], [$4], [$5], [$6], [$HAVE_PYTHON2], [$PYTHON2]) - OVSDB_CHECK_IDL_TCP6_PYN([$1 - Python3], [$2], [$3], [$4], [$5], [$6], - [$HAVE_PYTHON3], [$PYTHON3])]) + OVSDB_CHECK_IDL_TCP6_PYN([$1 - Python2(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON2], [$PYTHON2], C) + OVSDB_CHECK_IDL_TCP6_PYN([$1 - Python3(pyjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3]) + OVSDB_CHECK_IDL_TCP6_PYN([$1 - Python3(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3], C)]) m4_define([OVSDB_CHECK_IDL_TCP6_MULTIPLE_REMOTES_PYN], [AT_SETUP([$1 - tcp6]) AT_SKIP_IF([test $7 = no]) AT_SKIP_IF([test "$IS_WIN32" = "yes"]) AT_SKIP_IF([test $HAVE_IPV6 = no]) + AT_SKIP_IF([test $9 = C && ! $8 -c "import ovs._json" 2>/dev/null]) AT_KEYWORDS([ovsdb server idl positive Python with tcp6 socket $5]) AT_CHECK([ovsdb_start_idltest "ptcp:0:[[::1]]"]) PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT]) @@ -171,7 +197,7 @@ m4_define([OVSDB_CHECK_IDL_TCP6_MULTIPLE_REMOTES_PYN], remote="tcp:[[::1]]:$WRONG_PORT_1,tcp:[[::1]]:$TCP_PORT,tcp:[[::1]]:$WRONG_PORT_2" m4_if([$2], [], [], [AT_CHECK([ovsdb-client transact "tcp:[[::1]]:$TCP_PORT" $2], [0], [ignore], [ignore])]) - AT_CHECK([$8 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema $remote $3], + AT_CHECK([$8 $srcdir/test-ovsdb.py -j m4_default([$9], python) -t10 idl $srcdir/idltest.ovsschema $remote $3], [0], [stdout], [ignore]) AT_CHECK([sort stdout | uuidfilt]m4_if([$6],,, [[| $6]]), [0], [$4]) @@ -179,10 +205,14 @@ m4_define([OVSDB_CHECK_IDL_TCP6_MULTIPLE_REMOTES_PYN], AT_CLEANUP]) m4_define([OVSDB_CHECK_IDL_TCP6_MULTIPLE_REMOTES_PY], - [OVSDB_CHECK_IDL_TCP6_MULTIPLE_REMOTES_PYN([$1 - Python2 (multiple remotes)], [$2], [$3], [$4], [$5], [$6], + [OVSDB_CHECK_IDL_TCP6_MULTIPLE_REMOTES_PYN([$1 - Python2 (pyjson multiple remotes)], [$2], [$3], [$4], [$5], [$6], [$HAVE_PYTHON], [$PYTHON]) - OVSDB_CHECK_IDL_TCP6_MULTIPLE_REMOTES_PYN([$1 - Python3 (multiple remotes)], [$2], [$3], [$4], [$5], [$6], - [$HAVE_PYTHON3], [$PYTHON3])]) + OVSDB_CHECK_IDL_TCP6_MULTIPLE_REMOTES_PYN([$1 - Python2 (cjson multiple remotes)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON], [$PYTHON], C) + OVSDB_CHECK_IDL_TCP6_MULTIPLE_REMOTES_PYN([$1 - Python3 (pyjson multiple remotes)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3]) + OVSDB_CHECK_IDL_TCP6_MULTIPLE_REMOTES_PYN([$1 - Python3 (cjson multiple remotes)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3], C)]) # same as OVSDB_CHECK_IDL but uses the Python IDL implementation with SSL m4_define([OVSDB_CHECK_IDL_SSL_PYN], @@ -192,6 +222,7 @@ m4_define([OVSDB_CHECK_IDL_SSL_PYN], $8 -c "import OpenSSL.SSL" SSL_PRESENT=$? AT_SKIP_IF([test $SSL_PRESENT != 0]) + AT_SKIP_IF([test $9 = C && ! $8 -c "import ovs._json" 2>/dev/null]) AT_KEYWORDS([ovsdb server idl positive Python with ssl socket $5]) AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest.ovsschema], [0], [stdout], [ignore]) @@ -210,7 +241,7 @@ m4_define([OVSDB_CHECK_IDL_SSL_PYN], --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 \ + AT_CHECK([$8 $srcdir/test-ovsdb.py -j m4_default([$9], python) -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]) @@ -220,10 +251,14 @@ m4_define([OVSDB_CHECK_IDL_SSL_PYN], AT_CLEANUP]) m4_define([OVSDB_CHECK_IDL_SSL_PY], - [OVSDB_CHECK_IDL_SSL_PYN([$1 - Python2], [$2], [$3], [$4], [$5], [$6], + [OVSDB_CHECK_IDL_SSL_PYN([$1 - Python2(pyjson)], [$2], [$3], [$4], [$5], [$6], [$HAVE_PYTHON], [$PYTHON]) - OVSDB_CHECK_IDL_SSL_PYN([$1 - Python3], [$2], [$3], [$4], [$5], [$6], - [$HAVE_PYTHON3], [$PYTHON3])]) + OVSDB_CHECK_IDL_SSL_PYN([$1 - Python2(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON], [$PYTHON], C) + OVSDB_CHECK_IDL_SSL_PYN([$1 - Python3(pyjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3]) + OVSDB_CHECK_IDL_SSL_PYN([$1 - Python3(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3], C)]) m4_define([OVSDB_CHECK_IDL], [OVSDB_CHECK_IDL_C($@) @@ -239,6 +274,7 @@ m4_define([OVSDB_CHECK_IDL], m4_define([OVSDB_CHECK_IDL_PASSIVE_TCP_PYN], [AT_SETUP([$1 ptcp]) AT_SKIP_IF([test $7 = no]) + AT_SKIP_IF([test $9 = C && ! $8 -c "import ovs._json" 2>/dev/null]) AT_KEYWORDS([ovsdb server idl positive Python with tcp socket $5]) # find free TCP port AT_CHECK([ovsdb_start_idltest "ptcp:0:127.0.0.1"]) @@ -248,7 +284,7 @@ m4_define([OVSDB_CHECK_IDL_PASSIVE_TCP_PYN], # start OVSDB server in passive mode AT_CHECK([ovsdb_start_idltest "tcp:127.0.0.1:$TCP_PORT"]) - AT_CHECK([$8 $srcdir/test-ovsdb.py -t10 idl_passive $srcdir/idltest.ovsschema ptcp:127.0.0.1:$TCP_PORT $3], + AT_CHECK([$8 $srcdir/test-ovsdb.py -j m4_default([$9], python) -t10 idl_passive $srcdir/idltest.ovsschema ptcp:127.0.0.1:$TCP_PORT $3], [0], [stdout], [ignore]) AT_CHECK([sort stdout | uuidfilt]m4_if([$6],,, [[| $6]]), [0], [$4]) @@ -257,10 +293,14 @@ m4_define([OVSDB_CHECK_IDL_PASSIVE_TCP_PYN], ]) m4_define([OVSDB_CHECK_IDL_PASSIVE_TCP_PY], - [OVSDB_CHECK_IDL_PASSIVE_TCP_PYN([$1 - Python2], [$2], [$3], [$4], [$5], [$6], + [OVSDB_CHECK_IDL_PASSIVE_TCP_PYN([$1 - Python2(pyjson)], [$2], [$3], [$4], [$5], [$6], [$HAVE_PYTHON2], [$PYTHON2]) - OVSDB_CHECK_IDL_PASSIVE_TCP_PYN([$1 - Python3], [$2], [$3], [$4], [$5], [$6], - [$HAVE_PYTHON3], [$PYTHON3])]) + OVSDB_CHECK_IDL_PASSIVE_TCP_PYN([$1 - Python2(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON2], [$PYTHON2], C) + OVSDB_CHECK_IDL_PASSIVE_TCP_PYN([$1 - Python3(pyjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3]) + OVSDB_CHECK_IDL_PASSIVE_TCP_PYN([$1 - Python3(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3], C)]) OVSDB_CHECK_IDL_PASSIVE_TCP_PY([simple passive idl, initially empty, select empty], [], @@ -433,11 +473,12 @@ OVSDB_CHECK_IDL([simple idl, writing via IDL with unicode], m4_define([OVSDB_CHECK_IDL_PYN_WITH_EXPOUT], [AT_SETUP([$1]) AT_SKIP_IF([test $7 = no]) + AT_SKIP_IF([test $9 = C && ! $8 -c "import ovs._json" 2>/dev/null]) AT_KEYWORDS([ovsdb server idl positive Python $5]) AT_CHECK([ovsdb_start_idltest]) m4_if([$2], [], [], [AT_CHECK([ovsdb-client transact unix:socket $2], [0], [ignore], [ignore])]) - AT_CHECK([$8 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema unix:socket $3], + AT_CHECK([$8 $srcdir/test-ovsdb.py -j m4_default([$9], python) -t10 idl $srcdir/idltest.ovsschema unix:socket $3], [0], [stdout], [ignore]) echo "$4" > expout AT_CHECK([sort stdout | uuidfilt]m4_if([$6],,, [[| $6]]), @@ -446,10 +487,14 @@ m4_define([OVSDB_CHECK_IDL_PYN_WITH_EXPOUT], AT_CLEANUP]) m4_define([OVSDB_CHECK_IDL_PY_WITH_EXPOUT], - [OVSDB_CHECK_IDL_PYN_WITH_EXPOUT([$1 - Python2], [$2], [$3], [$4], [$5], [$6], + [OVSDB_CHECK_IDL_PYN_WITH_EXPOUT([$1 - Python2(pyjson)], [$2], [$3], [$4], [$5], [$6], [$HAVE_PYTHON2], [$PYTHON2]) - OVSDB_CHECK_IDL_PYN_WITH_EXPOUT([$1 - Python3], [$2], [$3], [$4], [$5], [$6], - [$HAVE_PYTHON3], [$PYTHON3])]) + OVSDB_CHECK_IDL_PYN_WITH_EXPOUT([$1 - Python2(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON2], [$PYTHON2], C) + OVSDB_CHECK_IDL_PYN_WITH_EXPOUT([$1 - Python3(pyjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3]) + OVSDB_CHECK_IDL_PYN_WITH_EXPOUT([$1 - Python3(cjson)], [$2], [$3], [$4], [$5], [$6], + [$HAVE_PYTHON3], [$PYTHON3], C)]) OVSDB_CHECK_IDL_PY_WITH_EXPOUT([simple idl, writing large data via IDL with unicode], [['["idltest", @@ -968,11 +1013,12 @@ AT_CLEANUP m4_define([OVSDB_CHECK_IDL_FETCH_COLUMNS_PYN], [AT_SETUP([$1 fetch]) AT_SKIP_IF([test $8 = no]) + AT_SKIP_IF([test $10 = C && ! $9 -c "import ovs._json" 2>/dev/null]) AT_KEYWORDS([ovsdb server idl positive Python increment fetch $6]) AT_CHECK([ovsdb_start_idltest]) m4_if([$2], [], [], [AT_CHECK([ovsdb-client transact unix:socket $2], [0], [ignore], [ignore])]) - AT_CHECK([$9 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema unix:socket [$3] $4], + AT_CHECK([$9 $srcdir/test-ovsdb.py -j m4_default([$10], python) -t10 idl $srcdir/idltest.ovsschema unix:socket [$3] $4], [0], [stdout], [ignore]) AT_CHECK([sort stdout | uuidfilt]m4_if([$7],,, [[| $7]]), [0], [$5]) @@ -980,10 +1026,14 @@ m4_define([OVSDB_CHECK_IDL_FETCH_COLUMNS_PYN], AT_CLEANUP]) m4_define([OVSDB_CHECK_IDL_FETCH_COLUMNS_PY], - [OVSDB_CHECK_IDL_FETCH_COLUMNS_PYN([$1 - Python2], [$2], [$3], [$4], [$5], [$6], [$7], + [OVSDB_CHECK_IDL_FETCH_COLUMNS_PYN([$1 - Python2(pyjson)], [$2], [$3], [$4], [$5], [$6], [$7], [$HAVE_PYTHON2], [$PYTHON2]) - OVSDB_CHECK_IDL_FETCH_COLUMNS_PYN([$1 - Python3], [$2], [$3], [$4], [$5], [$6], [$7], - [$HAVE_PYTHON3], [$PYTHON3])]) + OVSDB_CHECK_IDL_FETCH_COLUMNS_PYN([$1 - Python2(cjson)], [$2], [$3], [$4], [$5], [$6], [$7], + [$HAVE_PYTHON2], [$PYTHON2], C) + OVSDB_CHECK_IDL_FETCH_COLUMNS_PYN([$1 - Python3(pyjson)], [$2], [$3], [$4], [$5], [$6], [$7], + [$HAVE_PYTHON3], [$PYTHON3]) + OVSDB_CHECK_IDL_FETCH_COLUMNS_PYN([$1 - Python3(cjson)], [$2], [$3], [$4], [$5], [$6], [$7], + [$HAVE_PYTHON3], [$PYTHON3], C)]) m4_define([OVSDB_CHECK_IDL_FETCH_COLUMNS], [OVSDB_CHECK_IDL_FETCH_COLUMNS_PY($@)]) @@ -1019,10 +1069,11 @@ OVSDB_CHECK_IDL_FETCH_COLUMNS([simple idl, initially populated], m4_define([OVSDB_CHECK_IDL_WO_MONITOR_COND_PYN], [AT_SETUP([$1]) AT_SKIP_IF([test $6 = no]) + AT_SKIP_IF([test $8 = C && ! $7 -c "import ovs._json" 2>/dev/null]) AT_KEYWORDS([ovsdb server idl Python monitor $4]) AT_CHECK([ovsdb_start_idltest]) AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/disable-monitor-cond]) - AT_CHECK([$7 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema unix:socket $2], + AT_CHECK([$7 $srcdir/test-ovsdb.py -j m4_default([$8], python) -t10 idl $srcdir/idltest.ovsschema unix:socket $2], [0], [stdout], [ignore]) AT_CHECK([sort stdout | uuidfilt]m4_if([$5],,, [[| $5]]), [0], [$3]) @@ -1030,10 +1081,14 @@ m4_define([OVSDB_CHECK_IDL_WO_MONITOR_COND_PYN], AT_CLEANUP]) m4_define([OVSDB_CHECK_IDL_WO_MONITOR_COND_PY], - [OVSDB_CHECK_IDL_WO_MONITOR_COND_PYN([$1 - Python2], [$2], [$3], [$4], [$5], + [OVSDB_CHECK_IDL_WO_MONITOR_COND_PYN([$1 - Python2(pyjson)], [$2], [$3], [$4], [$5], [$HAVE_PYTHON2], [$PYTHON2]) - OVSDB_CHECK_IDL_WO_MONITOR_COND_PYN([$1 - Python3], [$2], [$3], [$4], [$5], - [$HAVE_PYTHON3], [$PYTHON3])]) + OVSDB_CHECK_IDL_WO_MONITOR_COND_PYN([$1 - Python2(cjson)], [$2], [$3], [$4], [$5], + [$HAVE_PYTHON2], [$PYTHON2], C) + OVSDB_CHECK_IDL_WO_MONITOR_COND_PYN([$1 - Python3(pyjson)], [$2], [$3], [$4], [$5], + [$HAVE_PYTHON3], [$PYTHON3]) + OVSDB_CHECK_IDL_WO_MONITOR_COND_PYN([$1 - Python3(cjson)], [$2], [$3], [$4], [$5], + [$HAVE_PYTHON3], [$PYTHON3], C)]) m4_define([OVSDB_CHECK_IDL_WO_MONITOR_COND], @@ -1356,7 +1411,8 @@ OVSDB_CHECK_IDL_PY([partial-set idl], ]]) m4_define([OVSDB_CHECK_IDL_NOTIFY_PYN], - [OVSDB_CHECK_IDL_PYN([$1], [], [$2], [$3], [notify $4], [$5], [$6], [$7])]) + [OVSDB_CHECK_IDL_PYN([$1(pyjson)], [], [$2], [$3], [notify $4], [$5], [$6], [$7]) + OVSDB_CHECK_IDL_PYN([$1(cjson)], [], [$2], [$3], [notify $4], [$5], [$6], [$7], C)]) m4_define([OVSDB_CHECK_IDL_NOTIFY_PY], [OVSDB_CHECK_IDL_NOTIFY_PYN([$1 - Python2], [$2], [$3], [$4], [$5], @@ -1366,7 +1422,8 @@ m4_define([OVSDB_CHECK_IDL_NOTIFY_PY], # This test uses the Python IDL implementation with ssl m4_define([OVSDB_CHECK_IDL_NOTIFY_SSL_PYN], - [OVSDB_CHECK_IDL_SSL_PYN([$1], [], [$2], [$3], [notify $4], [$5], [$6], [$7])]) + [OVSDB_CHECK_IDL_SSL_PYN([$1(pyjson)], [], [$2], [$3], [notify $4], [$5], [$6], [$7]) + OVSDB_CHECK_IDL_SSL_PYN([$1(cjson)], [], [$2], [$3], [notify $4], [$5], [$6], [$7], C)]) m4_define([OVSDB_CHECK_IDL_NOTIFY_SSL_PY], [OVSDB_CHECK_IDL_NOTIFY_SSL_PYN([$1 - Python2], [$2], [$3], [$4], [$5], |