[PATCH] rasapi32: Add tests for RasGetErrorStringA

Vijay Kiran Kamuju infyquest at gmail.com
Fri Nov 22 16:16:59 CST 2019


Signed-off-by: Vijay Kiran Kamuju <infyquest at gmail.com>
---
 dlls/rasapi32/rasapi.c       | 14 ++++++++++++--
 dlls/rasapi32/tests/rasapi.c | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+), 2 deletions(-)

diff --git a/dlls/rasapi32/rasapi.c b/dlls/rasapi32/rasapi.c
index 791b0dab133e..6f0dfaa06b33 100644
--- a/dlls/rasapi32/rasapi.c
+++ b/dlls/rasapi32/rasapi.c
@@ -458,14 +458,24 @@ DWORD WINAPI RasGetEntryPropertiesW(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry, LP
 
 DWORD WINAPI RasGetErrorStringA(UINT uErrorValue, LPSTR lpszErrorString, DWORD cBufSize)
 {
+    DWORD ret = 1;
+
     FIXME("(0x%08x,%p,0x%08x), stub!\n", uErrorValue, lpszErrorString, cBufSize);
-    return 1;
+    if (uErrorValue < RASBASE || uErrorValue > RASBASEEND || !lpszErrorString)
+        ret = ERROR_INVALID_PARAMETER;
+
+    return ret;
 }
 
 DWORD WINAPI RasGetErrorStringW(UINT uErrorValue, LPWSTR lpszErrorString, DWORD cBufSize)
 {
+    DWORD ret = 1;
+
     FIXME("(0x%08x,%p,0x%08x), stub!\n", uErrorValue, lpszErrorString, cBufSize);
-    return 1;
+    if (uErrorValue < RASBASE || uErrorValue > RASBASEEND || !lpszErrorString)
+        ret = ERROR_INVALID_PARAMETER;
+
+    return ret;
 }
 
 DWORD WINAPI RasGetProjectionInfoA(HRASCONN hrasconn, RASPROJECTION rasprojection,
diff --git a/dlls/rasapi32/tests/rasapi.c b/dlls/rasapi32/tests/rasapi.c
index 5171bb2762ca..d0850b8055af 100644
--- a/dlls/rasapi32/tests/rasapi.c
+++ b/dlls/rasapi32/tests/rasapi.c
@@ -28,6 +28,7 @@
 
 static HMODULE hmodule;
 static DWORD (WINAPI *pRasEnumDevicesA)(LPRASDEVINFOA, LPDWORD, LPDWORD);
+static DWORD (WINAPI *pRasGetErrorStringA)(UINT, LPSTR, DWORD);
 
 #define RASAPI32_GET_PROC(func) \
     p ## func = (void*)GetProcAddress(hmodule, #func); \
@@ -39,6 +40,7 @@ static void InitFunctionPtrs(void)
     hmodule = LoadLibraryA("rasapi32.dll");
 
     RASAPI32_GET_PROC(RasEnumDevicesA)
+    RASAPI32_GET_PROC(RasGetErrorStringA)
 }
 
 static void test_rasenum(void)
@@ -176,11 +178,44 @@ static void test_rasenum(void)
     HeapFree(GetProcessHeap(), 0, rasDevInfo);
 }
 
+static void test_rasgeterrorstring(void)
+{
+    DWORD result;
+    UINT errcode;
+    CHAR buffer[512];
+
+    errcode = 87;
+    result = pRasGetErrorStringA(errcode, buffer, 256);
+    ok(result == ERROR_INVALID_PARAMETER,
+    "Expected ERROR_INVALID_PARAMETER, got %08d\n", result);
+
+    errcode = 600;
+    result = pRasGetErrorStringA(errcode, NULL, 256);
+    ok(result == ERROR_INVALID_PARAMETER,
+    "Expected ERROR_INVALID_PARAMETER, got %08d\n", result);
+
+    errcode = 600;
+    result = pRasGetErrorStringA(errcode, buffer, 10);
+    todo_wine ok(result == ERROR_INSUFFICIENT_BUFFER,
+    "Expected ERROR_INSUFFICIENT_BUFFER, got %08d\n", result);
+
+    errcode = 600;
+    result = pRasGetErrorStringA(errcode, buffer, 256);
+    todo_wine ok(result == ERROR_SUCCESS,
+    "Expected ERROR_SUCCESS, got %08d\n", result);
+
+    errcode = 999;
+    result = pRasGetErrorStringA(errcode, buffer, 256);
+    ok(result == ERROR_INVALID_PARAMETER,
+    "Expected ERROR_INVALID_PARAMETER, got %08d\n", result);
+}
+
 START_TEST(rasapi)
 {
     InitFunctionPtrs();
 
     test_rasenum();
+    test_rasgeterrorstring();
 
     FreeLibrary(hmodule);
 }
-- 
2.21.0




More information about the wine-devel mailing list