summaryrefslogtreecommitdiff
path: root/tests/json.at
diff options
context:
space:
mode:
authorTerry Wilson <twilson@redhat.com>2016-07-25 19:17:11 -0500
committerBen Pfaff <blp@ovn.org>2016-07-26 09:17:13 -0700
commit622749d8a3a50d4bbca662dff8cb222a43c64c02 (patch)
tree52b931fd84472ec8073a0e51d5218f3fbae19aed /tests/json.at
parent9364ae6548e2d0dd8c971d37d08beddd8ed7d581 (diff)
downloadopenvswitch-622749d8a3a50d4bbca662dff8cb222a43c64c02.tar.gz
python: Serial JSON via Python's json lib.
There is no particularly good reason to use our own Python JSON serialization implementation when serialization can be done faster with Python's built-in JSON library. A few tests were changed due to Python's default JSON library returning slightly more precise floating point numbers. Signed-off-by: Terry Wilson <twilson@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'tests/json.at')
-rw-r--r--tests/json.at26
1 files changed, 20 insertions, 6 deletions
diff --git a/tests/json.at b/tests/json.at
index 32d7fff9a..ba7d4bbbe 100644
--- a/tests/json.at
+++ b/tests/json.at
@@ -1,4 +1,4 @@
-m4_define([JSON_CHECK_POSITIVE_C],
+m4_define([JSON_CHECK_POSITIVE_C],
[AT_SETUP([$1])
AT_KEYWORDS([json positive])
AT_CHECK([printf %s "AS_ESCAPE([$2])" > input])
@@ -11,7 +11,7 @@ m4_define([JSON_CHECK_POSITIVE_C],
# JSON_CHECK_POSITIVE_PY(TITLE, INPUT, OUTPUT, TEST-JSON-ARGS,
# PYTHON-CHCEK, PYTHON-BIN)
#
-m4_define([JSON_CHECK_POSITIVE_PY],
+m4_define([JSON_CHECK_POSITIVE_PY],
[AT_SETUP([$1])
AT_KEYWORDS([json positive Python])
AT_SKIP_IF([test $5 = no])
@@ -41,6 +41,12 @@ m4_define([JSON_CHECK_POSITIVE],
JSON_CHECK_POSITIVE_PY([$1 - Python3], [$2], [$3], [$4],
[$HAVE_PYTHON3], [$PYTHON3])])
+m4_define([JSON_CHECK_POSITIVE_PY23],
+ [JSON_CHECK_POSITIVE_PY([$1 - Python2], [$2], [$3], [$4],
+ [$HAVE_PYTHON], [$PYTHON])
+ JSON_CHECK_POSITIVE_PY([$1 - Python3], [$2], [$3], [$4],
+ [$HAVE_PYTHON3], [$PYTHON3])])
+
m4_define([JSON_CHECK_NEGATIVE_C],
[AT_SETUP([$1])
AT_KEYWORDS([json negative])
@@ -216,10 +222,14 @@ JSON_CHECK_POSITIVE(
# It seems likely that the following test will fail on some system that
# rounds slightly differently in arithmetic or in printf, but I'd like
# to keep it this way until we run into such a system.
-JSON_CHECK_POSITIVE(
- [large integers that overflow to reals],
+JSON_CHECK_POSITIVE_C(
+ [C - large integers that overflow to reals],
[[[9223372036854775807000, -92233720368547758080000]]],
[[[9.22337203685478e+21,-9.22337203685478e+22]]])
+JSON_CHECK_POSITIVE_PY23(
+ [large integers that overflow to reals],
+ [[[9223372036854775807000, -92233720368547758080000]]],
+ [[[9.223372036854776e+21,-9.223372036854776e+22]]])
JSON_CHECK_POSITIVE(
[negative zero],
@@ -237,10 +247,14 @@ JSON_CHECK_POSITIVE(
# It seems likely that the following test will fail on some system that
# rounds slightly differently in arithmetic or in printf, but I'd like
# to keep it this way until we run into such a system.
-JSON_CHECK_POSITIVE(
- [+/- DBL_MAX],
+JSON_CHECK_POSITIVE_C(
+ [C - +/- DBL_MAX],
[[[1.7976931348623157e+308, -1.7976931348623157e+308]]],
[[[1.79769313486232e+308,-1.79769313486232e+308]]])
+JSON_CHECK_POSITIVE_PY23(
+ [+/- DBL_MAX],
+ [[[1.7976931348623157e+308, -1.7976931348623157e+308]]],
+ [[[1.7976931348623157e+308,-1.7976931348623157e+308]]])
JSON_CHECK_POSITIVE(
[negative reals],