From 6fff5f32bbe7010367dbb512c9132400dae16b3b Mon Sep 17 00:00:00 2001 From: "Steven G. Johnson" Date: Sat, 28 Mar 2020 10:00:18 -0400 Subject: [PATCH] compile more tests on Windows (#183) * compile more tests on Windows * still disable charwidth tests * silence warnings on MSVC about sscanf * whoops * silence warning --- CMakeLists.txt | 14 +++++++------- test/graphemetest.c | 8 ++++---- test/tests.h | 5 ++++- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bfc3f9b..1ed9716 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,15 +82,15 @@ if(UTF8PROC_ENABLE_TESTING) add_test(testprintproperty printproperty) add_test(testvalid valid) if (NOT WIN32) - # Some test disabled, because they don't compile on Windows, missing getline, ... + # no wcwidth function on Windows add_executable(charwidth test/tests.h test/tests.c utf8proc.h test/charwidth.c) target_link_libraries(charwidth utf8proc) - add_executable(graphemetest test/tests.h test/tests.c utf8proc.h test/graphemetest.c) - target_link_libraries(graphemetest utf8proc) - add_executable(normtest test/tests.h test/tests.c utf8proc.h test/normtest.c) - target_link_libraries(normtest utf8proc) add_test(testcharwidth charwidth) - #add_test(testgraphemetest graphemetest data/GraphemeBreakTest.txt) - #add_test(testnormtest normtest data/NormalizationTest.txt) endif() + add_executable(graphemetest test/tests.h test/tests.c utf8proc.h test/graphemetest.c) + target_link_libraries(graphemetest utf8proc) + add_executable(normtest test/tests.h test/tests.c utf8proc.h test/normtest.c) + target_link_libraries(normtest utf8proc) + #add_test(testgraphemetest graphemetest data/GraphemeBreakTest.txt) + #add_test(testnormtest normtest data/NormalizationTest.txt) endif() diff --git a/test/graphemetest.c b/test/graphemetest.c index 25c7ddb..f9b8e3e 100644 --- a/test/graphemetest.c +++ b/test/graphemetest.c @@ -42,7 +42,7 @@ int main(int argc, char **argv) if (si) { utf8proc_uint8_t utf8[1024]; /* copy src without 0xff grapheme separators */ size_t i = 0, j = 0; - utf8proc_ssize_t glen; + utf8proc_ssize_t glen, k; utf8proc_uint8_t *g; /* utf8proc_map grapheme results */ while (i < si) { if (src[i] != '/') @@ -58,9 +58,9 @@ int main(int argc, char **argv) else { check(glen >= 0, "utf8proc_map error = %s", utf8proc_errmsg(glen)); - for (i = 0; i <= glen; ++i) - if (g[i] == 0xff) - g[i] = '/'; /* easier-to-read output (/ is not in test strings) */ + for (k = 0; k <= glen; ++k) + if (g[k] == 0xff) + g[k] = '/'; /* easier-to-read output (/ is not in test strings) */ check(!strcmp((char*)g, (char*)src), "grapheme mismatch: \"%s\" instead of \"%s\"", (char*)g, (char*)src); } diff --git a/test/tests.h b/test/tests.h index 8447e86..9bb35a3 100644 --- a/test/tests.h +++ b/test/tests.h @@ -1,13 +1,16 @@ /* Common functions and includes for our test programs. */ /* - * Set feature macro to enable getline() and wcwidth(). + * Set feature macro to enable wcwidth(). * * Please refer to section 2.2.1 of POSIX.1-2008: * http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_02_01_02 */ #define _XOPEN_SOURCE 700 +/* silence warnings about sscanf on Windows */ +#define _CRT_SECURE_NO_WARNINGS + #include #include #include