From: Russell Bryant Date: Fri, 18 Dec 2015 13:33:30 +0000 (-0500) Subject: ovsdb.at: Run Python tests for Python 2 and 3. X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fovs.git;a=commitdiff_plain;h=f08b8d918f1ae7c9c814c31a7e600bd16687e1a5 ovsdb.at: Run Python tests for Python 2 and 3. ovsdb.at includes some macros for running some identical test cases for both C and Python. Update these macros to run the test case for both Python 2 and 3. Retain the existing behavior for the direct use of the _PY versions of these macros to only run against Python 2 without any changes needed. Signed-off-by: Russell Bryant Acked-by: Ben Pfaff --- diff --git a/tests/ovsdb.at b/tests/ovsdb.at index 3e9918ab4..2e87ef3ca 100644 --- a/tests/ovsdb.at +++ b/tests/ovsdb.at @@ -30,13 +30,33 @@ m4_define([OVSDB_CHECK_POSITIVE_PY], ], []) AT_CLEANUP]) +# OVSDB_CHECK_POSITIVE_PY3(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], [PREREQ], +# [PY-CHECK]) +# +# Runs "test-ovsdb.py TEST-OVSDB-ARGS" and checks that it exits with +# status 0 and prints OUTPUT on stdout. +# +# PY-CHECK is expanded before the check. It can check for features of the +# Python implementation that are required for the test to pass. +# +# TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS. +m4_define([OVSDB_CHECK_POSITIVE_PY3], + [AT_SETUP([$1]) + AT_SKIP_IF([test $HAVE_PYTHON3 = no]) + $6 + AT_KEYWORDS([ovsdb positive Python $4]) + AT_CHECK([$PYTHON3 $srcdir/test-ovsdb.py $2], [0], [$3 +], []) + AT_CLEANUP]) + # OVSDB_CHECK_POSITIVE_CPY(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], -# [PREREQ], [PY-CHECK]) +# [PREREQ], [PY2-CHECK], [PY3-CHECK]) # # Runs identical C and Python tests, as specified. m4_define([OVSDB_CHECK_POSITIVE_CPY], [OVSDB_CHECK_POSITIVE([$1 - C], [$2], [$3], [$4], [$5]) - OVSDB_CHECK_POSITIVE_PY([$1 - Python], [$2], [$3], [$4], [$5], [$6])]) + OVSDB_CHECK_POSITIVE_PY([$1 - Python2], [$2], [$3], [$4], [$5], [$6]) + OVSDB_CHECK_POSITIVE_PY([$1 - Python3], [$2], [$3], [$4], [$5], [$7])]) # OVSDB_CHECK_NEGATIVE(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], [PREREQ]) # @@ -62,8 +82,8 @@ m4_define([OVSDB_CHECK_NEGATIVE], # # Runs "test-ovsdb TEST-OVSDB-ARGS" and checks that it exits with # status 1 and that its output on stdout contains substring OUTPUT. -# TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS. -m4_define([OVSDB_CHECK_NEGATIVE_PY], +# TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS. +m4_define([OVSDB_CHECK_NEGATIVE_PY], [AT_SETUP([$1]) AT_SKIP_IF([test $HAVE_PYTHON = no]) AT_KEYWORDS([ovsdb negative $4]) @@ -79,13 +99,35 @@ m4_define([OVSDB_CHECK_NEGATIVE_PY], [0], [ignore], [ignore]) AT_CLEANUP]) +# OVSDB_CHECK_NEGATIVE_PY3(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], [PREREQ]) +# +# Runs "test-ovsdb TEST-OVSDB-ARGS" and checks that it exits with +# status 1 and that its output on stdout contains substring OUTPUT. +# TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS. +m4_define([OVSDB_CHECK_NEGATIVE_PY], + [AT_SETUP([$1]) + AT_SKIP_IF([test $HAVE_PYTHON3 = no]) + AT_KEYWORDS([ovsdb negative $4]) + AT_CHECK([$PYTHON3 $srcdir/test-ovsdb.py $2], [1], [], [stderr]) + m4_assert(m4_len([$3])) + AT_CHECK( + [if grep -F -e "AS_ESCAPE([$3])" stderr + then + : + else + exit 99 + fi], + [0], [ignore], [ignore]) + AT_CLEANUP]) + # OVSDB_CHECK_NEGATIVE_CPY(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], # [PREREQ]) # # Runs identical C and Python tests, as specified. m4_define([OVSDB_CHECK_NEGATIVE_CPY], [OVSDB_CHECK_NEGATIVE([$1 - C], [$2], [$3], [$4], [$5]) - OVSDB_CHECK_NEGATIVE_PY([$1 - Python], [$2], [$3], [$4], [$5])]) + OVSDB_CHECK_NEGATIVE_PY([$1 - Python2], [$2], [$3], [$4], [$5]) + OVSDB_CHECK_NEGATIVE_PY3([$1 - Python3], [$2], [$3], [$4], [$5])]) m4_include([tests/ovsdb-log.at]) m4_include([tests/ovsdb-types.at])