Stefan Leichter : rasapi32: Added some more tests for RasEnumDevicesA, fix Wine not to crash on the tests.
Alexandre Julliard
julliard at winehq.org
Wed Jul 9 06:10:33 CDT 2008
Module: wine
Branch: master
Commit: 5e15187fd07754277c9643e47379a0fafdca432a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5e15187fd07754277c9643e47379a0fafdca432a
Author: Stefan Leichter <Stefan.Leichter at camline.com>
Date: Sun Jul 6 15:15:37 2008 +0200
rasapi32: Added some more tests for RasEnumDevicesA, fix Wine not to crash on the tests.
---
dlls/rasapi32/rasapi.c | 2 +-
dlls/rasapi32/tests/rasapi.c | 64 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 65 insertions(+), 1 deletions(-)
diff --git a/dlls/rasapi32/rasapi.c b/dlls/rasapi32/rasapi.c
index 2ba62e9..f14694a 100644
--- a/dlls/rasapi32/rasapi.c
+++ b/dlls/rasapi32/rasapi.c
@@ -249,7 +249,7 @@ DWORD WINAPI RasEnumDevicesA(LPRASDEVINFOA lpRasDevinfo, LPDWORD lpcb, LPDWORD l
return ERROR_INVALID_PARAMETER;
FIXME("(%p,%p,%p),stub!\n",lpRasDevinfo,lpcb,lpcDevices);
- if (*lpcb < sizeof(RASDEVINFOA)) {
+ if (!lpRasDevinfo || (*lpcb < sizeof(RASDEVINFOA))) {
*lpcb = sizeof(RASDEVINFOA);
return ERROR_BUFFER_TOO_SMALL;
}
diff --git a/dlls/rasapi32/tests/rasapi.c b/dlls/rasapi32/tests/rasapi.c
index a435180..eba492f 100644
--- a/dlls/rasapi32/tests/rasapi.c
+++ b/dlls/rasapi32/tests/rasapi.c
@@ -53,14 +53,78 @@ static void test_rasenum(void)
return;
}
+ /* test first parameter */
result = pRasEnumDevicesA(NULL, &cb, &cDevices);
trace("RasEnumDevicesA: buffersize %d\n", cb);
ok(result == ERROR_BUFFER_TOO_SMALL,
"Expected ERROR_BUFFER_TOO_SMALL, got %08d\n", result);
+ cb = sizeof(rasDevInfo);
+ result = pRasEnumDevicesA(NULL, &cb, &cDevices);
+ ok(result == ERROR_BUFFER_TOO_SMALL,
+ "Expected ERROR_BUFFER_TOO_SMALL, got %08d\n", result);
+
+ rasDevInfo.dwSize = 0;
+ result = pRasEnumDevicesA(&rasDevInfo, &cb, &cDevices);
+ todo_wine
+ ok(result == ERROR_INVALID_SIZE,
+ "Expected ERROR_INVALID_SIZE, got %08d\n", result);
+
+ rasDevInfo.dwSize = sizeof(rasDevInfo) -1;
+ result = pRasEnumDevicesA(&rasDevInfo, &cb, &cDevices);
+ todo_wine
+ ok(result == ERROR_INVALID_SIZE,
+ "Expected ERROR_INVALID_SIZE, got %08d\n", result);
+
+ rasDevInfo.dwSize = sizeof(rasDevInfo) +1;
+ result = pRasEnumDevicesA(&rasDevInfo, &cb, &cDevices);
+ todo_wine
+ ok(result == ERROR_INVALID_SIZE,
+ "Expected ERROR_INVALID_SIZE, got %08d\n", result);
+
+ /* test second parameter */
+ rasDevInfo.dwSize = sizeof(rasDevInfo);
result = pRasEnumDevicesA(&rasDevInfo, NULL, &cDevices);
ok(result == ERROR_INVALID_PARAMETER,
"Expected ERROR_INVALID_PARAMETER, got %08d\n", result);
+
+ cb = 0;
+ result = pRasEnumDevicesA(&rasDevInfo, &cb, &cDevices);
+ ok(result == ERROR_BUFFER_TOO_SMALL,
+ "Expected ERROR_BUFFER_TOO_SMALL, got %08d\n", result);
+
+ cb = sizeof(rasDevInfo) -1;
+ result = pRasEnumDevicesA(&rasDevInfo, &cb, &cDevices);
+ ok(result == ERROR_BUFFER_TOO_SMALL,
+ "Expected ERROR_BUFFER_TOO_SMALL, got %08d\n", result);
+
+ cb = sizeof(rasDevInfo) +1;
+ result = pRasEnumDevicesA(&rasDevInfo, &cb, &cDevices);
+ todo_wine
+ ok(result == ERROR_BUFFER_TOO_SMALL,
+ "Expected ERROR_BUFFER_TOO_SMALL, got %08d\n", result);
+
+ /* test third parameter */
+ cb = sizeof(rasDevInfo);
+ result = pRasEnumDevicesA(&rasDevInfo, &cb, NULL);
+ ok(result == ERROR_INVALID_PARAMETER,
+ "Expected ERROR_INVALID_PARAMETER, got %08d\n", result);
+
+ /* test combinations of invalid parameters */
+ result = pRasEnumDevicesA(NULL, NULL, &cDevices);
+ ok(result == ERROR_INVALID_PARAMETER,
+ "Expected ERROR_INVALID_PARAMETER, got %08d\n", result);
+
+ result = pRasEnumDevicesA(NULL, &cb, NULL);
+ ok(result == ERROR_INVALID_PARAMETER,
+ "Expected ERROR_INVALID_PARAMETER, got %08d\n", result);
+
+ cb = 0;
+ rasDevInfo.dwSize = 0;
+ result = pRasEnumDevicesA(&rasDevInfo, &cb, &cDevices);
+ todo_wine
+ ok(result == ERROR_INVALID_SIZE,
+ "Expected ERROR_INVALID_SIZE, got %08d\n", result);
}
START_TEST(rasapi)
More information about the wine-cvs
mailing list