aboutsummaryrefslogtreecommitdiff
path: root/test/suites/api
diff options
context:
space:
mode:
authorJoakim Soderberg <joakim.soderberg@gmail.com>2015-01-13 16:11:03 +0100
committerJoakim Soderberg <joakim.soderberg@gmail.com>2015-01-13 16:30:00 +0100
commit6a38d0d431b0e392738ae15e91fb1fda8688efeb (patch)
tree6b4db901ac1433ecbfd73d9a0d17fb882e4de8ec /test/suites/api
parentc244b1483e524da441b5d9545444220d451a899b (diff)
downloadjansson-6a38d0d431b0e392738ae15e91fb1fda8688efeb.zip
jansson-6a38d0d431b0e392738ae15e91fb1fda8688efeb.tar.gz
jansson-6a38d0d431b0e392738ae15e91fb1fda8688efeb.tar.bz2
Disable warning for deliberate use on MSVS.
Disable "warning C4756: overflow in constant arithmetic" when deliberately triggering it in a test using infinity.
Diffstat (limited to 'test/suites/api')
-rw-r--r--test/suites/api/test_number.c41
1 files changed, 29 insertions, 12 deletions
diff --git a/test/suites/api/test_number.c b/test/suites/api/test_number.c
index 4651819..2e7a1aa 100644
--- a/test/suites/api/test_number.c
+++ b/test/suites/api/test_number.c
@@ -9,6 +9,34 @@
#include <jansson.h>
#include "util.h"
+#ifdef INFINITY
+// This test triggers "warning C4756: overflow in constant arithmetic"
+// in Visual Studio. This warning is triggered here by design, so disable it.
+// (This can only be done on function level so we keep these tests separate)
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning (disable: 4756)
+#endif
+static void test_inifity()
+{
+ json_t *real = json_real(INFINITY);
+ if (real != NULL)
+ fail("could construct a real from Inf");
+
+ real = json_real(1.0);
+ if (json_real_set(real, INFINITY) != -1)
+ fail("could set a real to Inf");
+
+ if (json_real_value(real) != 1.0)
+ fail("real value changed unexpectedly");
+
+ json_decref(real);
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+}
+#endif // INFINITY
+
static void run_tests()
{
json_t *integer, *real;
@@ -57,17 +85,6 @@ static void run_tests()
#endif
#ifdef INFINITY
- real = json_real(INFINITY);
- if(real != NULL)
- fail("could construct a real from Inf");
-
- real = json_real(1.0);
- if(json_real_set(real, INFINITY) != -1)
- fail("could set a real to Inf");
-
- if(json_real_value(real) != 1.0)
- fail("real value changed unexpectedly");
-
- json_decref(real);
+ test_inifity();
#endif
}