summaryrefslogtreecommitdiff
path: root/lib/audit_logging
diff options
context:
space:
mode:
authorLi Yuxuan <liyuxuan.darfux@bytedance.com>2023-03-07 10:52:47 +0800
committerAndrew Bartlett <abartlet@samba.org>2023-03-09 20:38:31 +0000
commit35aa7db641484b33ff55a7d8fe2d21c6b411f847 (patch)
treed61bdfa3ef5aba846b7fd4f70056834d8f98c981 /lib/audit_logging
parentb3146763a45d3a52ae1f669ad1b37155f67a16e6 (diff)
downloadsamba-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.c11
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);