summaryrefslogtreecommitdiff
path: root/mnv/src/kword_test.c
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-04 12:41:27 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-04 12:41:27 +0300
commit4f2d36194b4f299aa7509d815c07121039ea833b (patch)
treef3ded014bad3a4c76ff6a22b8726ebaab68c3d13 /mnv/src/kword_test.c
parent5b578e70c314723a3cde5c9bfc2be0bf1dadc93b (diff)
downloadProject-Tick-4f2d36194b4f299aa7509d815c07121039ea833b.tar.gz
Project-Tick-4f2d36194b4f299aa7509d815c07121039ea833b.zip
NOISSUE change uvim folder name to mnv
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'mnv/src/kword_test.c')
-rw-r--r--mnv/src/kword_test.c82
1 files changed, 82 insertions, 0 deletions
diff --git a/mnv/src/kword_test.c b/mnv/src/kword_test.c
new file mode 100644
index 0000000000..5ac5745825
--- /dev/null
+++ b/mnv/src/kword_test.c
@@ -0,0 +1,82 @@
+/* vi:set ts=8 sts=4 sw=4 noet:
+ *
+ * MNV - MNV is not Vim by Bram Moolenaar
+ *
+ * Do ":help uganda" in MNV to read copying and usage conditions.
+ * Do ":help credits" in MNV to see a list of people who contributed.
+ * See README.txt for an overview of the MNV source code.
+ */
+
+/*
+ * kword_test.c: Unittests for mnv_iswordc() and mnv_iswordp().
+ */
+
+#undef NDEBUG
+#include <assert.h>
+
+// Must include main.c because it contains much more than just main()
+#define NO_MNV_MAIN
+#include "main.c"
+
+// This file has to be included because the tested functions are static
+#include "charset.c"
+
+/*
+ * Test the results of mnv_iswordc() and mnv_iswordp() are matched.
+ */
+ static void
+test_isword_funcs_utf8(void)
+{
+ buf_T buf;
+ int c;
+
+ CLEAR_FIELD(buf);
+ p_enc = (char_u *)"utf-8";
+ p_isi = (char_u *)"";
+ p_isp = (char_u *)"";
+ p_isf = (char_u *)"";
+ buf.b_p_isk = (char_u *)"@,48-57,_,128-167,224-235";
+
+ curbuf = &buf;
+ mb_init(); // calls init_chartab()
+
+ for (c = 0; c < 0x10000; ++c)
+ {
+ char_u p[4] = {0};
+ int c1;
+ int retc;
+ int retp;
+
+ utf_char2bytes(c, p);
+ c1 = utf_ptr2char(p);
+ if (c != c1)
+ {
+ fprintf(stderr, "Failed: ");
+ fprintf(stderr,
+ "[c = %#04x, p = {%#02x, %#02x, %#02x}] ",
+ c, p[0], p[1], p[2]);
+ fprintf(stderr, "c != utf_ptr2char(p) (=%#04x)\n", c1);
+ abort();
+ }
+ retc = mnv_iswordc_buf(c, &buf);
+ retp = mnv_iswordp_buf(p, &buf);
+ if (retc != retp)
+ {
+ fprintf(stderr, "Failed: ");
+ fprintf(stderr,
+ "[c = %#04x, p = {%#02x, %#02x, %#02x}] ",
+ c, p[0], p[1], p[2]);
+ fprintf(stderr, "mnv_iswordc(c) (=%d) != mnv_iswordp(p) (=%d)\n",
+ retc, retp);
+ abort();
+ }
+ }
+}
+
+ int
+main(void)
+{
+ estack_init();
+ test_isword_funcs_utf8();
+ return 0;
+}