tests/test_utils.cpp

changeset 674
dc514a5d42a5
parent 654
c9d008861178
     1.1 --- a/tests/test_utils.cpp	Mon Apr 03 19:09:31 2023 +0200
     1.2 +++ b/tests/test_utils.cpp	Mon Apr 03 19:20:30 2023 +0200
     1.3 @@ -28,8 +28,70 @@
     1.4  
     1.5  #include "cx/utils.h"
     1.6  
     1.7 +#include "cx/buffer.h"
     1.8 +
     1.9  #include <gtest/gtest.h>
    1.10  
    1.11 +TEST(Utils, cx_stream_bncopy) {
    1.12 +    CxBuffer source, target;
    1.13 +    char sbuf[32], tbuf[32];
    1.14 +    memset(tbuf, 0, 32);
    1.15 +    cxBufferInit(&source, sbuf, 32, nullptr, 0);
    1.16 +    cxBufferInit(&target, tbuf, 32, nullptr, 0);
    1.17 +    cxBufferPutString(&source, "This is a stream copy test.");
    1.18 +    cxBufferSeek(&source, 0, SEEK_SET);
    1.19 +
    1.20 +    char tmp[4];
    1.21 +    size_t result = cx_stream_bncopy(&source, &target,
    1.22 +                                     (cx_read_func) cxBufferRead,
    1.23 +                                     (cx_write_func) cxBufferWrite,
    1.24 +                                     tmp, 4, 20);
    1.25 +    EXPECT_EQ(20, result);
    1.26 +    EXPECT_EQ(20, target.size);
    1.27 +    EXPECT_STREQ("This is a stream cop\0", tbuf);
    1.28 +
    1.29 +    result = cx_stream_bcopy(&source, &target,
    1.30 +                             (cx_read_func) cxBufferRead,
    1.31 +                             (cx_write_func) cxBufferWrite,
    1.32 +                             nullptr, 16);
    1.33 +
    1.34 +    EXPECT_EQ(7, result);
    1.35 +    EXPECT_EQ(27, target.size);
    1.36 +    EXPECT_STREQ("This is a stream copy test.\0", tbuf);
    1.37 +
    1.38 +    cxBufferDestroy(&source);
    1.39 +    cxBufferDestroy(&target);
    1.40 +}
    1.41 +
    1.42 +TEST(Utils, cx_stream_ncopy) {
    1.43 +    CxBuffer source, target;
    1.44 +    char sbuf[32], tbuf[32];
    1.45 +    memset(tbuf, 0, 32);
    1.46 +    cxBufferInit(&source, sbuf, 32, nullptr, 0);
    1.47 +    cxBufferInit(&target, tbuf, 32, nullptr, 0);
    1.48 +    cxBufferPutString(&source, "This is a stream copy test.");
    1.49 +    cxBufferSeek(&source, 0, SEEK_SET);
    1.50 +
    1.51 +    size_t result = cx_stream_ncopy(&source, &target,
    1.52 +                                    (cx_read_func) cxBufferRead,
    1.53 +                                    (cx_write_func) cxBufferWrite,
    1.54 +                                    20);
    1.55 +    EXPECT_EQ(20, result);
    1.56 +    EXPECT_EQ(20, target.size);
    1.57 +    EXPECT_STREQ("This is a stream cop\0", tbuf);
    1.58 +
    1.59 +    result = cx_stream_copy(&source, &target,
    1.60 +                            (cx_read_func) cxBufferRead,
    1.61 +                            (cx_write_func) cxBufferWrite);
    1.62 +
    1.63 +    EXPECT_EQ(7, result);
    1.64 +    EXPECT_EQ(27, target.size);
    1.65 +    EXPECT_STREQ("This is a stream copy test.\0", tbuf);
    1.66 +
    1.67 +    cxBufferDestroy(&source);
    1.68 +    cxBufferDestroy(&target);
    1.69 +}
    1.70 +
    1.71  TEST(Utils, ForN) {
    1.72      unsigned j;
    1.73      j = 0;
    1.74 @@ -106,7 +168,7 @@
    1.75  struct Utils_szmul_impl : ::testing::Test {
    1.76  #undef CX_SZMUL_BUILTIN
    1.77  
    1.78 -#include "../src/utils.c"
    1.79 +#include "../src/szmul.c"
    1.80  
    1.81  #define CX_SZMUL_BUILTIN
    1.82  };

mercurial