diff options
Diffstat (limited to 'winsup/mingw/mingwex/testwmem.c')
-rw-r--r-- | winsup/mingw/mingwex/testwmem.c | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/winsup/mingw/mingwex/testwmem.c b/winsup/mingw/mingwex/testwmem.c new file mode 100644 index 000000000..1310718c9 --- /dev/null +++ b/winsup/mingw/mingwex/testwmem.c @@ -0,0 +1,104 @@ +#include <memory.h> +#include <wchar.h> +#include <stdio.h> + +wchar_t fmt1[] = L" 1 2 3 4 5"; +wchar_t fmt2[] = L"12345678901234567890123456789012345678901234567890"; + +void test_wmemchr( void ) +{ + wchar_t* dest; + wint_t result; + wint_t ch = L'r'; + wchar_t str[] = L"lazy"; + wchar_t string1[60] = L"The quick brown dog jumps over the lazy fox"; + + wprintf( L"Wmemchr\n" ); + wprintf( L"String to be searched:\n\t\t%s\n", string1 ); + wprintf( L"\t\t%s\n\t\t%s\n\n", fmt1, fmt2 ); + + wprintf( L"Search char:\t%c\n", ch ); + dest = wmemchr( string1, ch, sizeof( string1 ) ); + result = dest - string1 + 1; + if( dest != NULL ) + wprintf( L"Result:\t\t%c found at position %d\n\n", ch, result ); + else + wprintf( L"Result:\t\t%c not found\n\n" ); +return; +} +void test_wmemset( void ) +{/* 1 2 + 0123456789012345678901234567890 */ + wchar_t buffer[] = L"This is a test of the wmemset function"; + wprintf( L"Before: %s\n", buffer ); + wmemset( buffer+22, L'*', 7 ); + wprintf( L"After: %s\n\n", buffer ); +return; +} + +void test_wmemmove( void ) +{ + wchar_t string1[60] = L"The quick brown dog jumps over the lazy fox"; + wchar_t string2[60] = L"The quick brown fox jumps over the lazy dog"; + + wprintf( L"Wmemcpy without overlap\n" ); + wprintf( L"Source:\t\t%s\n", string1 + 40 ); + wprintf( L"Destination:\t%s\n", string1 + 16 ); + wmemcpy( string1 + 16, string1 + 40, 3 ); + wprintf( L"Result:\t\t%s\n", string1 ); + wprintf( L"Length:\t\t%d characters\n\n", wcslen( string1 ) ); + wmemcpy( string1 + 16, string2 + 40, 3 ); + + wprintf( L"Wmemmove with overlap\n" ); + wprintf( L"Source:\t\t%s\n", string2 + 4 ); + wprintf( L"Destination:\t%s\n", string2 + 10 ); + wmemmove( string2 + 10, string2 + 4, 40 ); + wprintf( L"Result:\t\t%s\n", string2 ); + wprintf( L"Length:\t\t%d characters\n\n", wcslen( string2 ) ); + + wprintf( L"Wmemcpy with overlap\n" ); + wprintf( L"Source:\t\t%s\n", string1 + 4 ); + wprintf( L"Destination:\t%s\n", string1 + 10 ); + wmemcpy( string1 + 10, string1 + 4, 40 ); + wprintf( L"Result:\t\t%s\n", string1 ); + wprintf( L"Length:\t\t%d characters\n\n", wcslen( string1 ) ); +} + + +void test_wmemcmp( void ) +{ + wchar_t first[] = L"12345678901234567890"; + wchar_t second[] = L"12345678901234567891"; + wint_t result; + wprintf(L"Wmemcmp\n"); + wprintf( L"Compare '%.19s' to '%.19s':\n", first, second ); + result = wmemcmp( first, second, 19 ); + if( result < 0 ) + wprintf( L"First is less than second.\n" ); + else if( result == 0 ) + wprintf( L"First is equal to second.\n" ); + else if( result > 0 ) + wprintf( L"First is greater than second.\n" ); + wprintf( L"\nCompare '%.20s' to '%.20s':\n", first, second ); + result = wmemcmp( first, second, 20 ); + if( result < 0 ) + wprintf( L"First is less than second.\n\n" ); + else if( result == 0 ) + wprintf( L"First is equal to second.\n\n" ); + else if( result > 0 ) + wprintf( L"First is greater than second.\n\n" ); +} + + + +int main(){ +test_wmemset(); +test_wmemmove(); +test_wmemchr(); +test_wmemcmp(); +return 0; +} + + + + |