summaryrefslogtreecommitdiffstats
path: root/src/message_test.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 02:44:24 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 02:44:24 +0000
commit8baab3c8d7a6f22888bd581cd5c6098fd2e4b5a8 (patch)
tree3537e168b860f2742f6029d70501b5ed7d15d345 /src/message_test.c
parentInitial commit. (diff)
downloadvim-8baab3c8d7a6f22888bd581cd5c6098fd2e4b5a8.tar.xz
vim-8baab3c8d7a6f22888bd581cd5c6098fd2e4b5a8.zip
Adding upstream version 2:8.1.0875.upstream/2%8.1.0875upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/message_test.c')
-rw-r--r--src/message_test.c107
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(&params, 0, sizeof(params));
+ params.argc = argc;
+ params.argv = argv;
+ common_init(&params);
+ init_chartab();
+
+ test_trunc_string();
+ return 0;
+}