Author: tkreuzer Date: Thu Sep 27 21:46:39 2012 New Revision: 57403
URL: http://svn.reactos.org/svn/reactos?rev=57403&view=rev Log: [CRT_APITEST] - Add tests for wcstombs_s - Improve tests for mbstowcs_s
Added: trunk/rostests/apitests/crt/wcstombs_s.c (with props) Modified: trunk/rostests/apitests/crt/mbstowcs_s.c trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake trunk/rostests/apitests/crt/testlist.c
Modified: trunk/rostests/apitests/crt/mbstowcs_s.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/mbstowcs_s.c?... ============================================================================== --- trunk/rostests/apitests/crt/mbstowcs_s.c [iso-8859-1] (original) +++ trunk/rostests/apitests/crt/mbstowcs_s.c [iso-8859-1] Thu Sep 27 21:46:39 2012 @@ -11,141 +11,18 @@ #include <specstrings.h>
#define ok_errno(x) ok_hex(errno, (x)) +#define ok_wchar(x,y) ok_int(x,y)
errno_t mbstowcs_s( - size_t *returnval, + size_t *cchConverted, wchar_t *widechar, size_t charoutct, const char *multibyte, size_t count);
-void -_invalid_parameter( - const wchar_t * expression, - const wchar_t * function, - const wchar_t * file, - unsigned int line, - uintptr_t pReserved); - -void -_invalid_parameterA( - const char * expression, - const char * function, - const char * file, - unsigned int line, - uintptr_t pReserved) -{ - // call _invalid_parameter -} - #define MSVCRT_INVALID_PMT(x) _invalid_parameterA(#x, __FUNCTION__, __FILE__, __LINE__, 0) #define MSVCRT_CHECK_PMT(x) ((x) || (MSVCRT_INVALID_PMT(x),0)) - -#define _mbsnlen strnlen - -errno_t -mbstowcs_s( - _Out_opt_ size_t *pReturnValue, - _Out_ wchar_t *pwcstr, - _In_ size_t sizeInWords, - _In_ const char *pmbstr, - _In_ size_t count) -{ - size_t cchMax, cwcWritten; - errno_t retval = 0; - - if (!MSVCRT_CHECK_PMT( ((sizeInWords != 0) && (pwcstr != 0)) || - ((sizeInWords == 0) && (pwcstr == 0)) )) - { - _set_errno(EINVAL); - return EINVAL; - } - - /* Check if we have a return value pointer */ - if (pReturnValue) - { - /* Default to 0 bytes written */ - *pReturnValue = 0; - } - - if (!MSVCRT_CHECK_PMT((count == 0) || (pmbstr != 0))) - { - _set_errno(EINVAL); - return EINVAL; - } - - /* Check if there is anything to do */ - if ((pwcstr == 0) && (pmbstr == 0)) - { - _set_errno(EINVAL); - return EINVAL; - } - - /* Check if we have a source string */ - if (pmbstr) - { - /* Check if we also have a wchar buffer */ - if (pwcstr) - { - /* Calculate the maximum the we can write */ - cchMax = (count < sizeInWords) ? count + 1 : sizeInWords; - - /* Now do the conversion */ - cwcWritten = mbstowcs(pwcstr, pmbstr, cchMax); - - /* Check if the buffer was not zero terminated */ - if (cwcWritten == cchMax) - { - /* Check if we reached the max size of the dest buffer */ - if (cwcWritten == sizeInWords) - { - /* Does the caller allow this? */ - if (count != _TRUNCATE) - { - /* Not allowed, truncate to 0 length */ - pwcstr[0] = L'\0'; - - /* Return error */ - _set_errno(ERANGE); - return ERANGE; - } - - /* Inform the caller about truncation */ - retval = STRUNCATE; - } - - /* zero teminate the buffer */ - pwcstr[cwcWritten - 1] = L'\0'; - } - else - { - /* The buffer is zero terminated, count the terminating char */ - cwcWritten++; - } - } - else - { - /* Get the length of the string, plus 0 terminator */ - cwcWritten = _mbsnlen(pmbstr, count) + 1; - } - } - else - { - cwcWritten = count + 1; - } - - /* Check if we have a return value pointer */ - if (pReturnValue) - { - /* Default to 0 bytes written */ - *pReturnValue = cwcWritten; - } - - return retval; -} - -
wchar_t g_expression[64]; wchar_t g_function[64]; @@ -173,64 +50,64 @@ // _set_invalid_parameter_handler(_test_invalid_parameter);
errno_t ret; - size_t returnval; + size_t cchConverted; wchar_t widechar[10]; -#if 1 - _set_errno(0); - returnval = 0xf00bac; + + _set_errno(0); + cchConverted = 0xf00bac; widechar[5] = 0xFF; - ret = mbstowcs_s(&returnval, widechar, 6, "hallo", 5); - ok_long(ret, 0); - ok_size_t(returnval, 6); - ok_char(widechar[5], 0); + ret = mbstowcs_s(&cchConverted, widechar, 6, "hallo", 5); + ok_long(ret, 0); + ok_size_t(cchConverted, 6); + ok_wchar(widechar[5], 0); ok_wstr(widechar, L"hallo"); ok_errno(0);
_set_errno(0); - returnval = 0xf00bac; + cchConverted = 0xf00bac; widechar[0] = 0xFF; - ret = mbstowcs_s(&returnval, widechar, 1, "", 0); - ok_long(ret, 0); - ok_size_t(returnval, 1); - ok_char(widechar[0], 0); - ok_errno(0); - - _set_errno(0); - returnval = 0xf00bac; + ret = mbstowcs_s(&cchConverted, widechar, 1, "", 0); + ok_long(ret, 0); + ok_size_t(cchConverted, 1); + ok_wchar(widechar[0], 0); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; widechar[0] = 0xFF; widechar[1] = 0xFF; widechar[2] = 0xFF; widechar[3] = 0xFF; widechar[4] = 0xFF; widechar[5] = 0xFF; - ret = mbstowcs_s(&returnval, widechar, 5, "hallo", 5); + ret = mbstowcs_s(&cchConverted, widechar, 5, "hallo", 5); ok_long(ret, ERANGE); - ok_size_t(returnval, 0); - ok_char(widechar[5], 0xFF); - ok_char(widechar[4], L'o'); - ok_char(widechar[3], L'l'); - ok_char(widechar[2], L'l'); - ok_char(widechar[1], L'a'); - ok_char(widechar[0], 0); + ok_size_t(cchConverted, 0); + ok_wchar(widechar[5], 0xFF); + ok_wchar(widechar[4], L'o'); + ok_wchar(widechar[3], L'l'); + ok_wchar(widechar[2], L'l'); + ok_wchar(widechar[1], L'a'); + ok_wchar(widechar[0], 0); ok_errno(ERANGE);
_set_errno(0); - returnval = 0xf00bac; + cchConverted = 0xf00bac; widechar[0] = 0xFF; widechar[1] = 0xFF; widechar[2] = 0xFF; widechar[3] = 0xFF; widechar[4] = 0xFF; widechar[5] = 0xFF; - ret = mbstowcs_s(&returnval, widechar, 3, "hallo", 5); + ret = mbstowcs_s(&cchConverted, widechar, 3, "hallo", 5); ok_long(ret, ERANGE); - ok_size_t(returnval, 0); - ok_char(widechar[5], 0xFF); - ok_char(widechar[4], 0xFF); - ok_char(widechar[3], 0xFF); - ok_char(widechar[2], L'l'); - ok_char(widechar[1], L'a'); - ok_char(widechar[0], 0); + ok_size_t(cchConverted, 0); + ok_wchar(widechar[5], 0xFF); + ok_wchar(widechar[4], 0xFF); + ok_wchar(widechar[3], 0xFF); + ok_wchar(widechar[2], L'l'); + ok_wchar(widechar[1], L'a'); + ok_wchar(widechar[0], 0); ok_errno(ERANGE);
_set_errno(0); @@ -239,17 +116,17 @@ ok_errno(EINVAL);
_set_errno(0); - returnval = 0xf00bac; - ret = mbstowcs_s(&returnval, 0, 0, 0, 0); - ok_long(ret, EINVAL); - ok_size_t(returnval, 0); + cchConverted = 0xf00bac; + ret = mbstowcs_s(&cchConverted, 0, 0, 0, 0); + ok_long(ret, EINVAL); + ok_size_t(cchConverted, 0); ok_errno(EINVAL);
_set_errno(0); widechar[0] = L'x'; ret = mbstowcs_s(0, widechar, 0, 0, 0); ok_long(ret, EINVAL); - ok_char(widechar[0], L'x'); + ok_wchar(widechar[0], L'x'); ok_errno(EINVAL);
_set_errno(0); @@ -263,98 +140,96 @@ ok_errno(EINVAL);
_set_errno(0); - returnval = 0xf00bac; - ret = mbstowcs_s(&returnval, 0, 10, "hallo", 5); - ok_long(ret, EINVAL); - ok_size_t(returnval, 0xf00bac); - ok_errno(EINVAL); - - _set_errno(0); - returnval = 0xf00bac; - ret = mbstowcs_s(&returnval, 0, 0, "hallo", 5); - ok_long(ret, 0); - ok_size_t(returnval, 6); - ok_errno(0); - - _set_errno(0); - returnval = 0xf00bac; - ret = mbstowcs_s(&returnval, widechar, 10, 0, 5); - ok_long(ret, EINVAL); - ok_size_t(returnval, 0); - ok_errno(EINVAL); - - _set_errno(0); - returnval = 0xf00bac; - ret = mbstowcs_s(&returnval, widechar, 10, "hallo", 0); - ok_long(ret, 0); - ok_size_t(returnval, 1); - ok_errno(0); -#endif - _set_errno(0); - returnval = 0xf00bac; + cchConverted = 0xf00bac; + ret = mbstowcs_s(&cchConverted, 0, 10, "hallo", 5); + ok_long(ret, EINVAL); + ok_size_t(cchConverted, 0xf00bac); + ok_errno(EINVAL); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = mbstowcs_s(&cchConverted, 0, 0, "hallo", 5); + ok_long(ret, 0); + ok_size_t(cchConverted, 6); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = mbstowcs_s(&cchConverted, widechar, 10, 0, 5); + ok_long(ret, EINVAL); + ok_size_t(cchConverted, 0); + ok_errno(EINVAL); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = mbstowcs_s(&cchConverted, widechar, 10, "hallo", 0); + ok_long(ret, 0); + ok_size_t(cchConverted, 1); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; widechar[0] = 0xABCD; widechar[1] = 0xABCD; widechar[2] = 0xABCD; widechar[3] = 0xABCD; widechar[4] = 0xABCD; widechar[5] = 0xABCD; - ret = mbstowcs_s(&returnval, widechar, 10, "hallo", 2); - ok_long(ret, 0); - ok_size_t(returnval, 3); - ok_char(widechar[5], 0xABCD); - ok_char(widechar[4], 0xABCD); - ok_char(widechar[3], 0xABCD); - ok_char(widechar[2], 0); - ok_char(widechar[1], L'a'); - ok_char(widechar[0], L'h'); - ok_errno(0); -#if 1 - _set_errno(0); - returnval = 0xf00bac; - ret = mbstowcs_s(&returnval, widechar, 10, 0, 0); - ok_long(ret, 0); - ok_size_t(returnval, 1); - ok_errno(0); - - _set_errno(0); - returnval = 0xf00bac; - ret = mbstowcs_s(&returnval, widechar, 10, "hallo", 7); - ok_long(ret, 0); - ok_size_t(returnval, 6); - ok_errno(0); - - _set_errno(0); - returnval = 0xf00bac; - ret = mbstowcs_s(&returnval, 0, 0, "hallo", 7); - ok_long(ret, 0); - ok_size_t(returnval, 6); - ok_errno(0); - - _set_errno(0); - returnval = 0xf00bac; + ret = mbstowcs_s(&cchConverted, widechar, 10, "hallo", 2); + ok_long(ret, 0); + ok_size_t(cchConverted, 3); + ok_wchar(widechar[5], 0xABCD); + ok_wchar(widechar[4], 0xABCD); + ok_wchar(widechar[3], 0xABCD); + ok_wchar(widechar[2], 0); + ok_wchar(widechar[1], L'a'); + ok_wchar(widechar[0], L'h'); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = mbstowcs_s(&cchConverted, widechar, 10, 0, 0); + ok_long(ret, 0); + ok_size_t(cchConverted, 1); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = mbstowcs_s(&cchConverted, widechar, 10, "hallo", 7); + ok_long(ret, 0); + ok_size_t(cchConverted, 6); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = mbstowcs_s(&cchConverted, 0, 0, "hallo", 7); + ok_long(ret, 0); + ok_size_t(cchConverted, 6); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; widechar[0] = 0xABCD; widechar[1] = 0xABCD; widechar[2] = 0xABCD; widechar[3] = 0xABCD; widechar[4] = 0xABCD; widechar[5] = 0xABCD; - ret = mbstowcs_s(&returnval, widechar, 5, "hallo", _TRUNCATE); + ret = mbstowcs_s(&cchConverted, widechar, 5, "hallo", _TRUNCATE); ok_long(ret, STRUNCATE); - ok_size_t(returnval, 5); - ok_char(widechar[5], 0xABCD); - ok_char(widechar[4], 0); - ok_char(widechar[3], L'l'); - ok_char(widechar[2], L'l'); - ok_char(widechar[1], L'a'); - ok_char(widechar[0], L'h'); - ok_errno(0); - - _set_errno(0); - returnval = 0xf00bac; - ret = mbstowcs_s(&returnval, widechar, 10, "hallo", -1); - ok_long(ret, 0); - ok_size_t(returnval, 6); - ok_errno(0); -#endif - + ok_size_t(cchConverted, 5); + ok_wchar(widechar[5], 0xABCD); + ok_wchar(widechar[4], 0); + ok_wchar(widechar[3], L'l'); + ok_wchar(widechar[2], L'l'); + ok_wchar(widechar[1], L'a'); + ok_wchar(widechar[0], L'h'); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = mbstowcs_s(&cchConverted, widechar, 10, "hallo", -1); + ok_long(ret, 0); + ok_size_t(cchConverted, 6); + ok_errno(0); }
Modified: trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/msvcrt_crt_ap... ============================================================================== --- trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake [iso-8859-1] (original) +++ trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake [iso-8859-1] Thu Sep 27 21:46:39 2012 @@ -1251,7 +1251,7 @@ # wcstok_s.c # wcstol.c # wcstombs.c -# wcstombs_s.c + wcstombs_s.c # wcstoul.c # wcsxfrm.c # wctob
Modified: trunk/rostests/apitests/crt/testlist.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/testlist.c?re... ============================================================================== --- trunk/rostests/apitests/crt/testlist.c [iso-8859-1] (original) +++ trunk/rostests/apitests/crt/testlist.c [iso-8859-1] Thu Sep 27 21:46:39 2012 @@ -7,6 +7,7 @@
#if defined(TEST_MSVCRT) extern void func_mbstowcs_s(void); +extern void func_wcstombs_s(void); extern void func__vscprintf(void); extern void func__vscwprintf(void); #endif @@ -33,6 +34,7 @@ #if defined(TEST_STATIC_CRT) #elif defined(TEST_MSVCRT) { "mbstowcs_s", func_mbstowcs_s }, + { "wcstombs_s", func_wcstombs_s }, { "_vscprintf", func__vscprintf }, { "_vscwprintf", func__vscwprintf }, #elif defined(TEST_NTDLL)
Added: trunk/rostests/apitests/crt/wcstombs_s.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/wcstombs_s.c?... ============================================================================== --- trunk/rostests/apitests/crt/wcstombs_s.c (added) +++ trunk/rostests/apitests/crt/wcstombs_s.c [iso-8859-1] Thu Sep 27 21:46:39 2012 @@ -1,0 +1,218 @@ +/* + * PROJECT: ReactOS api tests + * LICENSE: GPL - See COPYING in the top level directory + * PURPOSE: Test for wcstombs_s + */ + +#define WIN32_NO_STATUS +#include <stdio.h> +#include <stdlib.h> +#include <wine/test.h> +#include <specstrings.h> + +#define ok_errno(x) ok_hex(errno, (x)) + +#undef ok_char +#define ok_char(x,y) ok_int((unsigned)(unsigned char)(x),(unsigned)(unsigned char)(y)) +#define ok_wchar(x,y) ok_int((unsigned)(unsigned short)(x),(unsigned)(unsigned short)(y)) + +_Check_return_wat_ +_CRTIMP +errno_t +__cdecl +wcstombs_s( + _Out_opt_ size_t * pcchConverted, + _Out_writes_bytes_to_opt_(cjDstSize, *pcchConverted) + char * pmbsDst, + _In_ size_t cjDstSize, + _In_z_ const wchar_t * pwszSrc, + _In_ size_t cjMaxCount); + + +START_TEST(wcstombs_s) +{ + errno_t ret; + size_t cchConverted; + char mbsbuffer[10]; + + _set_errno(0); + cchConverted = 0xf00bac; + mbsbuffer[5] = 0xFF; + ret = wcstombs_s(&cchConverted, mbsbuffer, 6, L"hallo", 5); + ok_long(ret, 0); + ok_size_t(cchConverted, 6); + ok_char(mbsbuffer[5], 0); + ok_str(mbsbuffer, "hallo"); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + mbsbuffer[0] = 0xFF; + ret = wcstombs_s(&cchConverted, mbsbuffer, 1, L"", 0); + ok_long(ret, 0); + ok_size_t(cchConverted, 1); + ok_wchar(mbsbuffer[0], 0); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + mbsbuffer[0] = 0xFF; + mbsbuffer[1] = 0xFF; + mbsbuffer[2] = 0xFF; + mbsbuffer[3] = 0xFF; + mbsbuffer[4] = 0xFF; + mbsbuffer[5] = 0xFF; + ret = wcstombs_s(&cchConverted, mbsbuffer, 5, L"hallo", 5); + ok_long(ret, ERANGE); + ok_size_t(cchConverted, 0); + ok_char(mbsbuffer[5], 0xFF); + ok_char(mbsbuffer[4], L'o'); + ok_char(mbsbuffer[3], L'l'); + ok_char(mbsbuffer[2], L'l'); + ok_char(mbsbuffer[1], L'a'); + ok_char(mbsbuffer[0], 0); + ok_errno(ERANGE); + + _set_errno(0); + cchConverted = 0xf00bac; + mbsbuffer[0] = 0xFF; + mbsbuffer[1] = 0xFF; + mbsbuffer[2] = 0xFF; + mbsbuffer[3] = 0xFF; + mbsbuffer[4] = 0xFF; + mbsbuffer[5] = 0xFF; + ret = wcstombs_s(&cchConverted, mbsbuffer, 3, L"hallo", 5); + ok_long(ret, ERANGE); + ok_size_t(cchConverted, 0); + ok_char(mbsbuffer[5], 0xFF); + ok_char(mbsbuffer[4], 0xFF); + ok_char(mbsbuffer[3], 0xFF); + ok_char(mbsbuffer[2], L'l'); + ok_char(mbsbuffer[1], L'a'); + ok_char(mbsbuffer[0], 0); + ok_errno(ERANGE); + + _set_errno(0); + ret = wcstombs_s(0, 0, 0, 0, 0); + ok_long(ret, EINVAL); + ok_errno(EINVAL); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = wcstombs_s(&cchConverted, 0, 0, 0, 0); + ok_long(ret, EINVAL); + ok_size_t(cchConverted, 0); + ok_errno(EINVAL); + + _set_errno(0); + mbsbuffer[0] = L'x'; + ret = wcstombs_s(0, mbsbuffer, 0, 0, 0); + ok_long(ret, EINVAL); + ok_char(mbsbuffer[0], L'x'); + ok_errno(EINVAL); + + _set_errno(0); + ret = wcstombs_s(0, mbsbuffer, 10, L"hallo", 5); + ok_long(ret, 0); + ok_errno(0); + + _set_errno(0); + ret = wcstombs_s(0, mbsbuffer, 0, L"hallo", 5); + ok_long(ret, EINVAL); + ok_errno(EINVAL); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = wcstombs_s(&cchConverted, 0, 10, L"hallo", 5); + ok_long(ret, EINVAL); + ok_size_t(cchConverted, 0xf00bac); + ok_errno(EINVAL); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = wcstombs_s(&cchConverted, 0, 0, L"hallo", 5); + ok_long(ret, 0); + ok_size_t(cchConverted, 6); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = wcstombs_s(&cchConverted, mbsbuffer, 10, 0, 5); + ok_long(ret, EINVAL); + ok_size_t(cchConverted, 0); + ok_errno(EINVAL); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = wcstombs_s(&cchConverted, mbsbuffer, 10, L"hallo", 0); + ok_long(ret, 0); + ok_size_t(cchConverted, 1); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + mbsbuffer[0] = 0xAB; + mbsbuffer[1] = 0xCD; + mbsbuffer[2] = 0xAB; + mbsbuffer[3] = 0xCD; + mbsbuffer[4] = 0xAB; + mbsbuffer[5] = 0xCD; + ret = wcstombs_s(&cchConverted, mbsbuffer, 10, L"hallo", 2); + ok_long(ret, 0); + ok_size_t(cchConverted, 3); + ok_char(mbsbuffer[5], 0xCD); + ok_char(mbsbuffer[4], 0xAB); + ok_char(mbsbuffer[3], 0xCD); + ok_char(mbsbuffer[2], 0); + ok_char(mbsbuffer[1], L'a'); + ok_char(mbsbuffer[0], L'h'); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = wcstombs_s(&cchConverted, mbsbuffer, 10, 0, 0); + ok_long(ret, 0); + ok_size_t(cchConverted, 1); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = wcstombs_s(&cchConverted, mbsbuffer, 10, L"hallo", 7); + ok_long(ret, 0); + ok_size_t(cchConverted, 6); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = wcstombs_s(&cchConverted, 0, 0, L"hallo", 7); + ok_long(ret, 0); + ok_size_t(cchConverted, 6); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + mbsbuffer[0] = 0xAB; + mbsbuffer[1] = 0xCD; + mbsbuffer[2] = 0xAB; + mbsbuffer[3] = 0xCD; + mbsbuffer[4] = 0xAB; + mbsbuffer[5] = 0xCD; + ret = wcstombs_s(&cchConverted, mbsbuffer, 5, L"hallo", _TRUNCATE); + ok_long(ret, STRUNCATE); + ok_size_t(cchConverted, 5); + ok_char(mbsbuffer[5], 0xCD); + ok_char(mbsbuffer[4], 0); + ok_char(mbsbuffer[3], L'l'); + ok_char(mbsbuffer[2], L'l'); + ok_char(mbsbuffer[1], L'a'); + ok_char(mbsbuffer[0], L'h'); + ok_errno(0); + + _set_errno(0); + cchConverted = 0xf00bac; + ret = wcstombs_s(&cchConverted, mbsbuffer, 10, L"hallo", -1); + ok_long(ret, 0); + ok_size_t(cchConverted, 6); + ok_errno(0); + +}
Propchange: trunk/rostests/apitests/crt/wcstombs_s.c ------------------------------------------------------------------------------ svn:eol-style = native