test/string_tests.c

changeset 47
22fb97e9f58a
parent 39
bf8ab7bb74ff
child 69
fb59270b1de3
     1.1 --- a/test/string_tests.c	Fri Oct 05 10:25:33 2012 +0200
     1.2 +++ b/test/string_tests.c	Fri Oct 05 10:38:51 2012 +0200
     1.3 @@ -4,6 +4,53 @@
     1.4  
     1.5  #include "string_tests.h"
     1.6  
     1.7 +UCX_TEST_IMPLEMENT(test_sstr) {
     1.8 +    sstr_t s1 = sstr("1234");
     1.9 +    sstr_t s2 = sstrn("ab", 2);
    1.10 +    
    1.11 +    UCX_TEST_BEGIN
    1.12 +    
    1.13 +    UCX_TEST_ASSERT(s1.length == 4, "s1 length must be 4");
    1.14 +    UCX_TEST_ASSERT(s2.length == 2, "s2 length must be 2");
    1.15 +    
    1.16 +    UCX_TEST_END
    1.17 +}
    1.18 +
    1.19 +UCX_TEST_IMPLEMENT(test_sstr_len_cat) {
    1.20 +    sstr_t s1 = sstr("1234");
    1.21 +    sstr_t s2 = sstr(".:.:.");
    1.22 +    sstr_t s3 = sstr("X");
    1.23 +    
    1.24 +    sstr_t cat;
    1.25 +    
    1.26 +    size_t len = sstrnlen(3, s1, s2, s3);
    1.27 +    
    1.28 +    UCX_TEST_BEGIN
    1.29 +    
    1.30 +    UCX_TEST_ASSERT(len == s1.length + s2.length + s3.length,
    1.31 +            "sstrnlen returned wrong size");
    1.32 +    
    1.33 +    len = s1.length + s2.length + s3.length;
    1.34 +    
    1.35 +    cat.ptr = malloc(len + 1);
    1.36 +    cat.ptr[len] = 0;
    1.37 +    cat.length = len;
    1.38 +    
    1.39 +    sstrncat(3, cat, s1, s2, s3);
    1.40 +    
    1.41 +    UCX_TEST_ASSERT(cat.ptr[0] == '1', "sstrncat, wrong content");
    1.42 +    UCX_TEST_ASSERT(cat.ptr[1] == '2', "sstrncat, wrong content");
    1.43 +    UCX_TEST_ASSERT(cat.ptr[2] == '3', "sstrncat, wrong content");
    1.44 +    UCX_TEST_ASSERT(cat.ptr[3] == '4', "sstrncat, wrong content");
    1.45 +    UCX_TEST_ASSERT(cat.ptr[4] == '.', "sstrncat, wrong content");
    1.46 +    UCX_TEST_ASSERT(cat.ptr[8] == '.', "sstrncat, wrong content");
    1.47 +    UCX_TEST_ASSERT(cat.ptr[9] == 'X', "sstrncat, wrong content");
    1.48 +    
    1.49 +    UCX_TEST_END
    1.50 +    
    1.51 +    free(cat.ptr);
    1.52 +}
    1.53 +
    1.54  UCX_TEST_IMPLEMENT(test_sstrsplit) {
    1.55  
    1.56      const char *original = "this,is,a,csv,string";

mercurial