tests/test_printf.c

changeset 805
26500fc24058
parent 780
9965df621652
child 810
85859399a0cc
     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);

mercurial