diff options
author | Joakim Soderberg <joakim.soderberg@gmail.com> | 2015-01-13 16:11:03 +0100 |
---|---|---|
committer | Joakim Soderberg <joakim.soderberg@gmail.com> | 2015-01-13 16:30:00 +0100 |
commit | 6a38d0d431b0e392738ae15e91fb1fda8688efeb (patch) | |
tree | 6b4db901ac1433ecbfd73d9a0d17fb882e4de8ec /test | |
parent | c244b1483e524da441b5d9545444220d451a899b (diff) | |
download | jansson-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')
-rw-r--r-- | test/suites/api/test_number.c | 41 |
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 } |