Tue, 20 Sep 2022 10:24:03 +0200
add test coverage for _m variant functions
test/test_string.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/test/test_string.cpp Tue Sep 13 20:11:26 2022 +0200 1.2 +++ b/test/test_string.cpp Tue Sep 20 10:24:03 2022 +0200 1.3 @@ -71,6 +71,34 @@ 1.4 EXPECT_EQ(len3, 10); 1.5 } 1.6 1.7 +TEST(String, strsubs) { 1.8 + cxstring str = CX_STR("A test string"); 1.9 + 1.10 + cxstring sub = cx_strsubs(str, 0); 1.11 + EXPECT_EQ(cx_strcmp(sub, str), 0); 1.12 + 1.13 + sub = cx_strsubs(str, 2); 1.14 + EXPECT_EQ(cx_strcmp(sub, cx_str("test string")), 0); 1.15 + 1.16 + sub = cx_strsubs(str, 7); 1.17 + EXPECT_EQ(cx_strcmp(sub, cx_str("string")), 0); 1.18 + 1.19 + sub = cx_strsubs(str, 15); 1.20 + EXPECT_EQ(cx_strcmp(sub, cx_str("")), 0); 1.21 + 1.22 + sub = cx_strsubsl(str, 2, 4); 1.23 + EXPECT_EQ(cx_strcmp(sub, cx_str("test")), 0); 1.24 + 1.25 + sub = cx_strsubsl(str, 7, 3); 1.26 + EXPECT_EQ(cx_strcmp(sub, cx_str("str")), 0); 1.27 + 1.28 + sub = cx_strsubsl(str, 7, 20); 1.29 + EXPECT_EQ(cx_strcmp(sub, cx_str("string")), 0); 1.30 + 1.31 + // just for coverage, call the _m variant 1.32 + auto m = cx_strsubs_m(cx_mutstrn(nullptr, 0), 0); 1.33 + EXPECT_EQ(cx_strcmp(cx_strcast(m), cx_str("")), 0); 1.34 +} 1.35 1.36 TEST(String, strchr) { 1.37 cxstring str = CX_STR("I will find you - and I will kill you"); 1.38 @@ -81,6 +109,10 @@ 1.39 cxstring result = cx_strchr(str, 'w'); 1.40 EXPECT_EQ(result.length, 35); 1.41 EXPECT_EQ(strcmp("will find you - and I will kill you", result.ptr), 0); 1.42 + 1.43 + // just for coverage, call the _m variant 1.44 + auto m = cx_strchr_m(cx_mutstrn(nullptr, 0), 'a'); 1.45 + EXPECT_EQ(cx_strcmp(cx_strcast(m), cx_str("")), 0); 1.46 } 1.47 1.48 TEST(String, strrchr) { 1.49 @@ -92,6 +124,10 @@ 1.50 cxstring result = cx_strrchr(str, 'w'); 1.51 EXPECT_EQ(result.length, 13); 1.52 EXPECT_EQ(strcmp("will kill you", result.ptr), 0); 1.53 + 1.54 + // just for coverage, call the _m variant 1.55 + auto m = cx_strrchr_m(cx_mutstrn(nullptr, 0), 'a'); 1.56 + EXPECT_EQ(cx_strcmp(cx_strcast(m), cx_str("")), 0); 1.57 } 1.58 1.59 TEST(String, strstr) { 1.60 @@ -139,6 +175,13 @@ 1.61 result = cx_strstr(longstr, longstrpattern); 1.62 EXPECT_EQ(result.length, longstrresult.length); 1.63 EXPECT_EQ(strcmp(result.ptr, longstrresult.ptr), 0); 1.64 + 1.65 + // just for coverage, call the _m variant 1.66 + auto mstr = cx_strdup(longstr); 1.67 + auto m = cx_strstr_m(mstr, longstrpattern); 1.68 + EXPECT_EQ(m.length, longstrresult.length); 1.69 + EXPECT_EQ(strcmp(m.ptr, longstrresult.ptr), 0); 1.70 + cx_strfree(&mstr); 1.71 } 1.72 1.73 TEST(String, strcmp) { 1.74 @@ -283,6 +326,16 @@ 1.75 EXPECT_EQ(cx_strcmp(list[0], cx_str("th")), 0); 1.76 EXPECT_EQ(cx_strcmp(list[1], cx_str("")), 0); 1.77 EXPECT_EQ(cx_strcmp(list[2], cx_str("a,csv,string")), 0); 1.78 + 1.79 + /* call the _m variant just for coverage */ 1.80 + auto mtest = cx_strdup(test); 1.81 + cxmutstr mlist[4]; 1.82 + n = cx_strsplit_m(mtest, cx_str("is,"), 4, mlist); 1.83 + ASSERT_EQ(n, 3); 1.84 + EXPECT_EQ(cx_strcmp(cx_strcast(mlist[0]), cx_str("th")), 0); 1.85 + EXPECT_EQ(cx_strcmp(cx_strcast(mlist[1]), cx_str("")), 0); 1.86 + EXPECT_EQ(cx_strcmp(cx_strcast(mlist[2]), cx_str("a,csv,string")), 0); 1.87 + cx_strfree(&mtest); 1.88 } 1.89 1.90 TEST(String, strsplit_a) { 1.91 @@ -387,6 +440,17 @@ 1.92 EXPECT_EQ(cx_strcmp(list[2], cx_str("a,csv,string")), 0); 1.93 cxFree(&alloc, list); 1.94 1.95 + /* call the _m variant just for coverage */ 1.96 + auto mtest = cx_strdup(test); 1.97 + cxmutstr *mlist; 1.98 + n = cx_strsplit_ma(&alloc, mtest, cx_str("is,"), 4, &mlist); 1.99 + ASSERT_EQ(n, 3); 1.100 + EXPECT_EQ(cx_strcmp(cx_strcast(mlist[0]), cx_str("th")), 0); 1.101 + EXPECT_EQ(cx_strcmp(cx_strcast(mlist[1]), cx_str("")), 0); 1.102 + EXPECT_EQ(cx_strcmp(cx_strcast(mlist[2]), cx_str("a,csv,string")), 0); 1.103 + cxFree(&alloc, mlist); 1.104 + cx_strfree(&mtest); 1.105 + 1.106 EXPECT_TRUE(alloc.verify()); 1.107 } 1.108 1.109 @@ -404,6 +468,10 @@ 1.110 EXPECT_EQ(cx_strcmp(t4, cx_str("xyz")), 0); 1.111 EXPECT_EQ(cx_strcmp(t5, cx_str("")), 0); 1.112 EXPECT_EQ(cx_strcmp(empty, cx_str("")), 0); 1.113 + 1.114 + /* call the _m variant just for coverage */ 1.115 + cxmutstr m1 = cx_strtrim_m(cx_mutstr((char *) " ein test \t ")); 1.116 + EXPECT_EQ(cx_strcmp(cx_strcast(m1), cx_str("ein test")), 0); 1.117 } 1.118 1.119 TEST(String, strprefix) {