From 16543cd058ad054c2b65d63747106a4a378128cc Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Sat, 24 Oct 2015 23:18:33 +0000 Subject: [PATCH] [CRT_APITEST] Add a few tests to show mbstowcs/wcstombs behavior will NULL ptr. CORE-10390 svn path=/trunk/; revision=69680 --- .../apitests/crt/crtdll_crt_apitest.cmake | 4 +-- rostests/apitests/crt/mbstowcs.c | 25 +++++++++++++++++++ .../apitests/crt/msvcrt_crt_apitest.cmake | 4 +-- rostests/apitests/crt/ntdll_crt_apitest.cmake | 4 +-- rostests/apitests/crt/testlist.c | 4 +++ rostests/apitests/crt/wcstombs.c | 25 +++++++++++++++++++ 6 files changed, 60 insertions(+), 6 deletions(-) create mode 100644 rostests/apitests/crt/mbstowcs.c create mode 100644 rostests/apitests/crt/wcstombs.c diff --git a/rostests/apitests/crt/crtdll_crt_apitest.cmake b/rostests/apitests/crt/crtdll_crt_apitest.cmake index 61f2af57e8e..4556838e2ac 100644 --- a/rostests/apitests/crt/crtdll_crt_apitest.cmake +++ b/rostests/apitests/crt/crtdll_crt_apitest.cmake @@ -425,7 +425,7 @@ list(APPEND SOURCE_CRTDLL # longjmp.c # malloc.c # mblen.c -# mbstowcs.c + mbstowcs.c # mbtowc.c # memchr.c # memcmp.c @@ -517,7 +517,7 @@ list(APPEND SOURCE_CRTDLL # wcstod.c # wcstok.c # wcstol.c -# wcstombs.c + wcstombs.c # wcstoul.c # wcsxfrm.c # wctomb.c diff --git a/rostests/apitests/crt/mbstowcs.c b/rostests/apitests/crt/mbstowcs.c new file mode 100644 index 00000000000..012fc7b748f --- /dev/null +++ b/rostests/apitests/crt/mbstowcs.c @@ -0,0 +1,25 @@ +/* + * PROJECT: ReactOS api tests + * LICENSE: GPL - See COPYING in the top level directory + * PURPOSE: Test for mbstowcs + */ + +#include + +#define WIN32_NO_STATUS +#include +#include +#include + +#define StrROS "ReactOS" + + +START_TEST(mbstowcs) +{ + size_t len; + + len = mbstowcs(NULL, StrROS, sizeof(StrROS) / sizeof(StrROS[0])); + ok(len == 7, "Got len = %u, excepting 7\n", len); + len = mbstowcs(NULL, StrROS, sizeof(StrROS) / sizeof(StrROS[0]) - 1); + ok(len == 7, "Got len = %u, excepting 7\n", len); +} diff --git a/rostests/apitests/crt/msvcrt_crt_apitest.cmake b/rostests/apitests/crt/msvcrt_crt_apitest.cmake index 6da1664fe35..1f387597a7d 100644 --- a/rostests/apitests/crt/msvcrt_crt_apitest.cmake +++ b/rostests/apitests/crt/msvcrt_crt_apitest.cmake @@ -1117,7 +1117,7 @@ list(APPEND SOURCE_MSVCRT # mbsdup_dbg # mbsrtowcs # mbsrtowcs_s -# mbstowcs.c + mbstowcs.c # mbstowcs_s Not exported in 2k3 Sp1 # mbtowc.c # memchr.c @@ -1250,7 +1250,7 @@ list(APPEND SOURCE_MSVCRT # wcstok.c # wcstok_s.c # wcstol.c -# wcstombs.c + wcstombs.c # wcstombs_s.c Not exported in 2k3 Sp1 # wcstoul.c # wcsxfrm.c diff --git a/rostests/apitests/crt/ntdll_crt_apitest.cmake b/rostests/apitests/crt/ntdll_crt_apitest.cmake index a6432a36e7d..93a27f9a013 100644 --- a/rostests/apitests/crt/ntdll_crt_apitest.cmake +++ b/rostests/apitests/crt/ntdll_crt_apitest.cmake @@ -71,7 +71,7 @@ list(APPEND SOURCE_NTDLL # isxdigit.c # labs.c # log.c -# mbstowcs.c + mbstowcs.c # memchr.c # memcmp.c # memcpy == memmove @@ -120,7 +120,7 @@ list(APPEND SOURCE_NTDLL # wcsstr.c # wcstok.c # wcstol.c -# wcstombs.c + wcstombs.c # wcstoul.c ) diff --git a/rostests/apitests/crt/testlist.c b/rostests/apitests/crt/testlist.c index 13670f0200a..49eabd6b49c 100644 --- a/rostests/apitests/crt/testlist.c +++ b/rostests/apitests/crt/testlist.c @@ -12,15 +12,19 @@ extern void func__vscwprintf(void); #endif extern void func__vsnprintf(void); extern void func__vsnwprintf(void); +extern void func_mbstowcs(void); extern void func_sprintf(void); extern void func_strcpy(void); +extern void func_wcstombs(void); const struct test winetest_testlist[] = { { "_vsnprintf", func__vsnprintf }, { "_vsnwprintf", func__vsnwprintf }, + { "mbstowcs", func_mbstowcs }, { "sprintf", func_sprintf }, { "strcpy", func_strcpy }, + { "wcstombs", func_wcstombs }, #if defined(TEST_CRTDLL) || defined(TEST_MSVCRT) || defined(TEST_STATIC_CRT) // ... #endif diff --git a/rostests/apitests/crt/wcstombs.c b/rostests/apitests/crt/wcstombs.c new file mode 100644 index 00000000000..1d21612e6eb --- /dev/null +++ b/rostests/apitests/crt/wcstombs.c @@ -0,0 +1,25 @@ +/* + * PROJECT: ReactOS api tests + * LICENSE: GPL - See COPYING in the top level directory + * PURPOSE: Test for wcstombs + */ + +#include + +#define WIN32_NO_STATUS +#include +#include +#include + +#define StrROS L"ReactOS" + + +START_TEST(wcstombs) +{ + size_t len; + + len = wcstombs(NULL, StrROS, sizeof(StrROS) / sizeof(StrROS[0])); + ok(len == 7, "Got len = %u, excepting 7\n", len); + len = wcstombs(NULL, StrROS, sizeof(StrROS) / sizeof(StrROS[0]) - 1); + ok(len == 7, "Got len = %u, excepting 7\n", len); +} -- 2.17.1