Module: wine Branch: master Commit: ca3cb9e2f5c6e6a8134b88f400ba6ae0f43767d9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ca3cb9e2f5c6e6a8134b88f400...
Author: Piotr Caban piotr@codeweavers.com Date: Thu Apr 22 17:56:24 2010 +0200
msvcrt/tests: Added sscanf_s tests.
---
dlls/msvcrt/tests/scanf.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/dlls/msvcrt/tests/scanf.c b/dlls/msvcrt/tests/scanf.c index 0ec89ff..e9cb987 100644 --- a/dlls/msvcrt/tests/scanf.c +++ b/dlls/msvcrt/tests/scanf.c @@ -198,7 +198,49 @@ static void test_sscanf( void ) ok(number_so_far == 4, "%%n yielded wrong result: %d\n", number_so_far); }
+static void test_sscanf_s(void) +{ + int (__cdecl *psscanf_s)(const char*,const char*,...); + HMODULE hmod = GetModuleHandleA("msvcrt.dll"); + int i, ret; + char buf[100]; + + psscanf_s = (void*)GetProcAddress(hmod, "sscanf_s"); + if(!psscanf_s) { + win_skip("sscanf_s not available\n"); + return; + } + + ret = psscanf_s("123", "%d", &i); + ok(ret == 1, "Wrong number of arguments read: %d\n", ret); + ok(i == 123, "i = %d\n", i); + + ret = psscanf_s("123", "%s", buf, 100); + ok(ret == 1, "Wrong number of arguments read: %d\n", ret); + ok(!strcmp("123", buf), "buf = %s\n", buf); + + ret = psscanf_s("123", "%s", buf, 3); + ok(ret == 0, "Wrong number of arguments read: %d\n", ret); + ok(buf[0]=='\0', "buf = %s\n", buf); + + buf[0] = 'a'; + ret = psscanf_s("123", "%3c", buf, 2); + ok(ret == 0, "Wrong number of arguments read: %d\n", ret); + ok(buf[0]=='\0', "buf = %s\n", buf); + + i = 1; + ret = psscanf_s("123 123", "%s %d", buf, 2, &i); + ok(ret == 0, "Wrong number of arguments read: %d\n", ret); + ok(i==1, "i = %d\n", i); + + i = 1; + ret = psscanf_s("123 123", "%d %s", &i, buf, 2); + ok(ret == 1, "Wrong number of arguments read: %d\n", ret); + ok(i==123, "i = %d\n", i); +} + START_TEST(scanf) { test_sscanf(); + test_sscanf_s(); }