diff options
Diffstat (limited to '')
-rw-r--r-- | src/message_test.c | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/src/message_test.c b/src/message_test.c new file mode 100644 index 0000000..55ca814 --- /dev/null +++ b/src/message_test.c @@ -0,0 +1,107 @@ +/* vi:set ts=8 sts=4 sw=4 noet: + * + * VIM - Vi IMproved by Bram Moolenaar + * + * Do ":help uganda" in Vim to read copying and usage conditions. + * Do ":help credits" in Vim to see a list of people who contributed. + * See README.txt for an overview of the Vim source code. + */ + +/* + * message_test.c: Unittests for message.c + */ + +#undef NDEBUG +#include <assert.h> + +/* Must include main.c because it contains much more than just main() */ +#define NO_VIM_MAIN +#include "main.c" + +/* This file has to be included because some of the tested functions are + * static. */ +#include "message.c" + +/* + * Test trunc_string(). + */ + static void +test_trunc_string(void) +{ + char_u *buf; /*allocated every time to find uninit errors */ + char_u *s; + + /* in place */ + buf = alloc(40); + STRCPY(buf, "text"); + trunc_string(buf, buf, 20, 40); + assert(STRCMP(buf, "text") == 0); + vim_free(buf); + + buf = alloc(40); + STRCPY(buf, "a short text"); + trunc_string(buf, buf, 20, 40); + assert(STRCMP(buf, "a short text") == 0); + vim_free(buf); + + buf = alloc(40); + STRCPY(buf, "a text tha just fits"); + trunc_string(buf, buf, 20, 40); + assert(STRCMP(buf, "a text tha just fits") == 0); + vim_free(buf); + + buf = alloc(40); + STRCPY(buf, "a text that nott fits"); + trunc_string(buf, buf, 20, 40); + assert(STRCMP(buf, "a text t...nott fits") == 0); + vim_free(buf); + + /* copy from string to buf */ + buf = alloc(40); + s = vim_strsave((char_u *)"text"); + trunc_string(s, buf, 20, 40); + assert(STRCMP(buf, "text") == 0); + vim_free(buf); + vim_free(s); + + buf = alloc(40); + s = vim_strsave((char_u *)"a text that fits"); + trunc_string(s, buf, 34, 40); + assert(STRCMP(buf, "a text that fits") == 0); + vim_free(buf); + vim_free(s); + + buf = alloc(40); + s = vim_strsave((char_u *)"a short text"); + trunc_string(s, buf, 20, 40); + assert(STRCMP(buf, "a short text") == 0); + vim_free(buf); + vim_free(s); + + buf = alloc(40); + s = vim_strsave((char_u *)"a text tha just fits"); + trunc_string(s, buf, 20, 40); + assert(STRCMP(buf, "a text tha just fits") == 0); + vim_free(buf); + vim_free(s); + + buf = alloc(40); + s = vim_strsave((char_u *)"a text that nott fits"); + trunc_string(s, buf, 20, 40); + assert(STRCMP(buf, "a text t...nott fits") == 0); + vim_free(buf); + vim_free(s); +} + + int +main(int argc, char **argv) +{ + vim_memset(¶ms, 0, sizeof(params)); + params.argc = argc; + params.argv = argv; + common_init(¶ms); + init_chartab(); + + test_trunc_string(); + return 0; +} |