From 69aff060bfa5d13d57d64f326a8175c1ce233a5d Mon Sep 17 00:00:00 2001 From: Philipp Schafft Date: Wed, 1 Aug 2018 07:24:20 +0000 Subject: [PATCH] Feature: Added more tests regarding refobject sizes --- tests/ctest_refobject.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/ctest_refobject.c b/tests/ctest_refobject.c index 9fa68adb..9aa580e9 100644 --- a/tests/ctest_refobject.c +++ b/tests/ctest_refobject.c @@ -39,6 +39,33 @@ static void test_create_ref_unref(void) ctest_test("un-referenced (2 of 2)", refobject_unref(a) == 0); } +static void test_sizes(void) +{ + refobject_t a; + + a = refobject_new(sizeof(refobject_base_t) + 1024, NULL, NULL, NULL, REFOBJECT_NULL); + ctest_test("refobject created with size=sizeof(refobject_base_t) + 1024", !REFOBJECT_IS_NULL(a)); + ctest_test("un-referenced", refobject_unref(a) == 0); + + a = refobject_new(sizeof(refobject_base_t) + 131072, NULL, NULL, NULL, REFOBJECT_NULL); + ctest_test("refobject created with size=sizeof(refobject_base_t) + 131072", !REFOBJECT_IS_NULL(a)); + ctest_test("un-referenced", refobject_unref(a) == 0); + + if (sizeof(refobject_base_t) >= 1) { + a = refobject_new(sizeof(refobject_base_t) - 1, NULL, NULL, NULL, REFOBJECT_NULL); + ctest_test("refobject created with size=sizeof(refobject_base_t) - 1", REFOBJECT_IS_NULL(a)); + if (!REFOBJECT_IS_NULL(a)) { + ctest_test("un-referenced", refobject_unref(a) == 0); + } + } + + a = refobject_new(0, NULL, NULL, NULL, REFOBJECT_NULL); + ctest_test("refobject created with size=0", REFOBJECT_IS_NULL(a)); + if (!REFOBJECT_IS_NULL(a)) { + ctest_test("un-referenced", refobject_unref(a) == 0); + } +} + static void test_name(void) { refobject_t a; @@ -138,6 +165,8 @@ int main (void) test_create_ref_unref(); + test_sizes(); + test_name(); test_userdata(); test_associated();