diff options
author | Li Yuxuan <liyuxuan.darfux@bytedance.com> | 2023-03-07 10:52:47 +0800 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2023-03-09 20:38:31 +0000 |
commit | 35aa7db641484b33ff55a7d8fe2d21c6b411f847 (patch) | |
tree | d61bdfa3ef5aba846b7fd4f70056834d8f98c981 /lib/audit_logging | |
parent | b3146763a45d3a52ae1f669ad1b37155f67a16e6 (diff) | |
download | samba-35aa7db641484b33ff55a7d8fe2d21c6b411f847.tar.gz |
audit_logging:tests: Add big_int test for `json_add_int`
Show that `json_add_int` can't handle value larger than int32 due to
overflow.
Add knownfail.
Signed-off-by: Li Yuxuan <liyuxuan.darfux@bytedance.com>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'lib/audit_logging')
-rw-r--r-- | lib/audit_logging/tests/audit_logging_test.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/audit_logging/tests/audit_logging_test.c b/lib/audit_logging/tests/audit_logging_test.c index 1f871c2e5f4..d393b986cf0 100644 --- a/lib/audit_logging/tests/audit_logging_test.c +++ b/lib/audit_logging/tests/audit_logging_test.c @@ -63,8 +63,10 @@ static void test_json_add_int(_UNUSED_ void **state) { struct json_object object; struct json_t *value = NULL; + json_int_t m; double n; int rc = 0; + intmax_t big_int = ((intmax_t)1)<<33; object = json_new_object(); rc = json_add_int(&object, "positive_one", 1); @@ -73,8 +75,10 @@ static void test_json_add_int(_UNUSED_ void **state) assert_int_equal(0, rc); rc = json_add_int(&object, "negative_one", -1); assert_int_equal(0, rc); + rc = json_add_int(&object, "big_int", big_int); + assert_int_equal(0, rc); - assert_int_equal(3, json_object_size(object.root)); + assert_int_equal(4, json_object_size(object.root)); value = json_object_get(object.root, "positive_one"); assert_true(json_is_integer(value)); @@ -91,6 +95,11 @@ static void test_json_add_int(_UNUSED_ void **state) n = json_number_value(value); assert_true(n == -1.0); + value = json_object_get(object.root, "big_int"); + assert_true(json_is_integer(value)); + m = json_integer_value(value); + assert_int_equal(m, big_int); + object.valid = false; rc = json_add_int(&object, "should fail 1", 0xf1); assert_int_equal(JSON_ERROR, rc); |