1.1 --- a/tests/test_printf.c Sat Jan 13 17:51:42 2024 +0100 1.2 +++ b/tests/test_printf.c Sun Jan 14 13:13:12 2024 +0100 1.3 @@ -64,23 +64,25 @@ 1.4 } 1.5 1.6 CX_TEST(test_bprintf_large_string) { 1.7 + unsigned len = cx_printf_sbo_size; 1.8 CxTestingAllocator talloc; 1.9 cx_testing_allocator_init(&talloc); 1.10 CxAllocator *alloc = &talloc.base; 1.11 - char *aaa = malloc(512); 1.12 - char *bbb = malloc(512); 1.13 - char *expected = malloc(1040); 1.14 - memset(aaa, 'a', 511); 1.15 - aaa[511] = 0; 1.16 - memset(bbb, 'b', 511); 1.17 - bbb[511] = 0; 1.18 + char *aaa = malloc(len); 1.19 + char *bbb = malloc(len); 1.20 + char *expected = malloc(2*len+16); 1.21 + memset(aaa, 'a', len-1); 1.22 + aaa[len-1] = 0; 1.23 + memset(bbb, 'b', len-1); 1.24 + bbb[len-1] = 0; 1.25 sprintf(expected, "After %s comes %s.", aaa, bbb); 1.26 CX_TEST_DO { 1.27 CxBuffer buf; 1.28 cxBufferInit(&buf, NULL, 64, alloc, CX_BUFFER_AUTO_EXTEND); 1.29 size_t r = cx_bprintf(&buf, "After %s comes %s.", aaa, bbb); 1.30 - CX_TEST_ASSERT(r == 1036); 1.31 - CX_TEST_ASSERT(buf.size == 1036); 1.32 + size_t er = 2*len-2+14; 1.33 + CX_TEST_ASSERT(r == er); 1.34 + CX_TEST_ASSERT(buf.size == er); 1.35 cxBufferPut(&buf, 0); 1.36 CX_TEST_ASSERT(0 == strcmp(expected, buf.space)); 1.37 cxBufferDestroy(&buf); 1.38 @@ -271,17 +273,18 @@ 1.39 } 1.40 1.41 CX_TEST(test_asprintf_large_string) { 1.42 - char *aaa = malloc(512); 1.43 - char *bbb = malloc(512); 1.44 - char *expected = malloc(1040); 1.45 - memset(aaa, 'a', 511); 1.46 - aaa[511] = 0; 1.47 - memset(bbb, 'b', 511); 1.48 - bbb[511] = 0; 1.49 + unsigned len = cx_printf_sbo_size; 1.50 + char *aaa = malloc(len); 1.51 + char *bbb = malloc(len); 1.52 + char *expected = malloc(2*len+16); 1.53 + memset(aaa, 'a', len-1); 1.54 + aaa[len-1] = 0; 1.55 + memset(bbb, 'b', len-1); 1.56 + bbb[len-1] = 0; 1.57 sprintf(expected, "After %s comes %s.", aaa, bbb); 1.58 CX_TEST_DO { 1.59 cxmutstr r = cx_asprintf("After %s comes %s.", aaa, bbb); 1.60 - CX_TEST_ASSERT(r.length == 1036); 1.61 + CX_TEST_ASSERT(r.length == 2*len-2+14); 1.62 ASSERT_ZERO_TERMINATED(r); 1.63 CX_TEST_ASSERT(0 == strcmp(r.ptr, expected)); 1.64 cx_strfree(&r);