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 };