void testStaticBuffer( Test * pTest) { STATIC_BUFFER sbuffer; char *data1 = "Joshua"; char *data2 = "Anna"; char *data3 = "Christopher"; char *data4 = "Mary"; char data_buffer[480] = ""; char test_data_buffer[480] = ""; char *data; unsigned count; sbuf_init(&sbuffer, NULL, 0); ct_test(pTest, sbuf_empty(&sbuffer) == true); ct_test(pTest, sbuf_data(&sbuffer) == NULL); ct_test(pTest, sbuf_size(&sbuffer) == 0); ct_test(pTest, sbuf_count(&sbuffer) == 0); ct_test(pTest, sbuf_append(&sbuffer, data1, strlen(data1)) == false); sbuf_init(&sbuffer, data_buffer, sizeof(data_buffer)); ct_test(pTest, sbuf_empty(&sbuffer) == true); ct_test(pTest, sbuf_data(&sbuffer) == data_buffer); ct_test(pTest, sbuf_size(&sbuffer) == sizeof(data_buffer)); ct_test(pTest, sbuf_count(&sbuffer) == 0); ct_test(pTest, sbuf_append(&sbuffer, data1, strlen(data1)) == true); ct_test(pTest, sbuf_append(&sbuffer, data2, strlen(data2)) == true); ct_test(pTest, sbuf_append(&sbuffer, data3, strlen(data3)) == true); ct_test(pTest, sbuf_append(&sbuffer, data4, strlen(data4)) == true); strcat(test_data_buffer, data1); strcat(test_data_buffer, data2); strcat(test_data_buffer, data3); strcat(test_data_buffer, data4); ct_test(pTest, sbuf_count(&sbuffer) == strlen(test_data_buffer)); data = sbuf_data(&sbuffer); count = sbuf_count(&sbuffer); ct_test(pTest, memcmp(data, test_data_buffer, count) == 0); ct_test(pTest, count == strlen(test_data_buffer)); ct_test(pTest, sbuf_truncate(&sbuffer, 0) == true); ct_test(pTest, sbuf_count(&sbuffer) == 0); ct_test(pTest, sbuf_size(&sbuffer) == sizeof(data_buffer)); ct_test(pTest, sbuf_append(&sbuffer, data4, strlen(data4)) == true); data = sbuf_data(&sbuffer); count = sbuf_count(&sbuffer); ct_test(pTest, memcmp(data, data4, count) == 0); ct_test(pTest, count == strlen(data4)); return; }
static void tr_chop(char **args) { struct sbuf sbuf; int id; id = map(args[1]); if (str_get(id)) { sbuf_init(&sbuf); sbuf_append(&sbuf, str_get(id)); if (!sbuf_empty(&sbuf)) { sbuf_cut(&sbuf, sbuf_len(&sbuf) - 1); str_set(id, sbuf_buf(&sbuf)); } sbuf_done(&sbuf); } }