serialui/tests: Add initial tests.
This commit is contained in:
parent
59e816d82c
commit
8650c570a3
|
@ -441,6 +441,9 @@ dlls/secur32/tests/testlist.c
|
|||
dlls/sensapi/libsensapi.def
|
||||
dlls/serialui/libserialui.def
|
||||
dlls/serialui/serialui_rc.res
|
||||
dlls/serialui/tests/*.ok
|
||||
dlls/serialui/tests/serialui_crosstest.exe
|
||||
dlls/serialui/tests/testlist.c
|
||||
dlls/setupapi/libsetupapi.def
|
||||
dlls/setupapi/setupapi.res
|
||||
dlls/setupapi/tests/*.ok
|
||||
|
@ -830,6 +833,7 @@ programs/winetest/rpcrt4_test.exe
|
|||
programs/winetest/rsabase_test.exe
|
||||
programs/winetest/rsaenh_test.exe
|
||||
programs/winetest/secur32_test.exe
|
||||
programs/winetest/serialui_test.exe
|
||||
programs/winetest/setupapi_test.exe
|
||||
programs/winetest/shdocvw_test.exe
|
||||
programs/winetest/shell32_test.exe
|
||||
|
|
|
@ -340,6 +340,7 @@ ALL_MAKEFILES = \
|
|||
dlls/security/Makefile \
|
||||
dlls/sensapi/Makefile \
|
||||
dlls/serialui/Makefile \
|
||||
dlls/serialui/tests/Makefile \
|
||||
dlls/setupapi/Makefile \
|
||||
dlls/setupapi/tests/Makefile \
|
||||
dlls/sfc/Makefile \
|
||||
|
@ -672,6 +673,7 @@ dlls/secur32/tests/Makefile: dlls/secur32/tests/Makefile.in dlls/Maketest.rules
|
|||
dlls/security/Makefile: dlls/security/Makefile.in dlls/Makedll.rules
|
||||
dlls/sensapi/Makefile: dlls/sensapi/Makefile.in dlls/Makedll.rules
|
||||
dlls/serialui/Makefile: dlls/serialui/Makefile.in dlls/Makedll.rules
|
||||
dlls/serialui/tests/Makefile: dlls/serialui/tests/Makefile.in dlls/Maketest.rules
|
||||
dlls/setupapi/Makefile: dlls/setupapi/Makefile.in dlls/Makedll.rules
|
||||
dlls/setupapi/tests/Makefile: dlls/setupapi/tests/Makefile.in dlls/Maketest.rules
|
||||
dlls/sfc/Makefile: dlls/sfc/Makefile.in dlls/Makedll.rules
|
||||
|
|
|
@ -1711,6 +1711,7 @@ dlls/secur32/tests/Makefile
|
|||
dlls/security/Makefile
|
||||
dlls/sensapi/Makefile
|
||||
dlls/serialui/Makefile
|
||||
dlls/serialui/tests/Makefile
|
||||
dlls/setupapi/Makefile
|
||||
dlls/setupapi/tests/Makefile
|
||||
dlls/sfc/Makefile
|
||||
|
|
|
@ -263,6 +263,7 @@ TESTSUBDIRS = \
|
|||
rsabase/tests \
|
||||
rsaenh/tests \
|
||||
secur32/tests \
|
||||
serialui/tests \
|
||||
setupapi/tests \
|
||||
shdocvw/tests \
|
||||
shell32/tests \
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
TOPSRCDIR = @top_srcdir@
|
||||
TOPOBJDIR = ../../..
|
||||
SRCDIR = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
TESTDLL = serialui.dll
|
||||
IMPORTS = kernel32
|
||||
|
||||
CTESTS = \
|
||||
confdlg.c
|
||||
|
||||
@MAKE_TEST_RULES@
|
||||
|
||||
@DEPENDENCIES@ # everything below this line is overwritten by make depend
|
|
@ -0,0 +1,271 @@
|
|||
/*
|
||||
* Unit test suite for serialui API functions
|
||||
*
|
||||
* Copyright 2007 Detlef Riekenberg
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winerror.h"
|
||||
#include "winnls.h"
|
||||
|
||||
#include "wine/test.h"
|
||||
|
||||
|
||||
static HINSTANCE hdll;
|
||||
static DWORD (WINAPI *pGetDefaultCommConfigA)(LPCSTR, LPCOMMCONFIG, LPDWORD);
|
||||
static DWORD (WINAPI *pGetDefaultCommConfigW)(LPCWSTR, LPCOMMCONFIG, LPDWORD);
|
||||
|
||||
|
||||
static const CHAR com1A[] = "com1";
|
||||
static const CHAR emptyA[] = "";
|
||||
static const CHAR fmt_comA[] = "com%d";
|
||||
static const CHAR str_colonA[] = ":";
|
||||
|
||||
static const WCHAR com1W[] = {'c','o','m','1',0};
|
||||
static const WCHAR emptyW[] = {0};
|
||||
static const WCHAR fmt_comW[] = {'c','o','m','%','d',0};
|
||||
static const WCHAR str_colonW[] = {':',0};
|
||||
|
||||
/* ################# */
|
||||
|
||||
static LPCSTR load_functions(void)
|
||||
{
|
||||
LPCSTR ptr;
|
||||
|
||||
ptr = "serialui.dll";
|
||||
hdll = LoadLibraryA(ptr);
|
||||
if (!hdll) return ptr;
|
||||
|
||||
ptr = "drvGetDefaultCommConfigA";
|
||||
pGetDefaultCommConfigA = (VOID *) GetProcAddress(hdll, ptr);
|
||||
if (!pGetDefaultCommConfigA) return ptr;
|
||||
|
||||
ptr = "drvGetDefaultCommConfigW";
|
||||
pGetDefaultCommConfigW = (VOID *) GetProcAddress(hdll, ptr);
|
||||
if (!pGetDefaultCommConfigW) return ptr;
|
||||
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* ################# */
|
||||
|
||||
static void test_drvGetDefaultCommConfigA(void)
|
||||
{
|
||||
COMMCONFIG pCC[3];
|
||||
CHAR bufferA[16];
|
||||
DWORD i;
|
||||
DWORD res;
|
||||
DWORD len;
|
||||
|
||||
|
||||
/* off by one: one byte smaller */
|
||||
i = sizeof(COMMCONFIG);
|
||||
len = sizeof(COMMCONFIG) -1;
|
||||
ZeroMemory(pCC, sizeof(pCC));
|
||||
SetLastError(0xdeadbeef);
|
||||
res = pGetDefaultCommConfigA(com1A, pCC, &len);
|
||||
if (res == ERROR_CALL_NOT_IMPLEMENTED) {
|
||||
/* NT does not implement the ANSI API */
|
||||
skip("*A not implemented\n");
|
||||
return;
|
||||
}
|
||||
ok( (res == ERROR_INSUFFICIENT_BUFFER) && (len >= i),
|
||||
"returned %u with %u and %u (expected "
|
||||
"ERROR_INSUFFICIENT_BUFFER and '>= %u')\n", res, GetLastError(), len, i);
|
||||
|
||||
/* test ports "com0" - "com10" */
|
||||
for (i = 0; i < 11 ; i++) {
|
||||
sprintf(bufferA, fmt_comA, i);
|
||||
len = sizeof(pCC);
|
||||
ZeroMemory(pCC, sizeof(pCC));
|
||||
SetLastError(0xdeadbeef);
|
||||
res = pGetDefaultCommConfigA(bufferA, pCC, &len);
|
||||
if (i == 0) {
|
||||
ok( res == ERROR_BADKEY,
|
||||
"returned %u with %u and %u for %s (expected "
|
||||
"ERROR_BADKEY)\n", res, GetLastError(), len, bufferA);
|
||||
}
|
||||
else
|
||||
{
|
||||
ok((res == ERROR_SUCCESS) || (res == ERROR_BADKEY),
|
||||
"returned %u with %u and %u for %s (expected ERROR_SUCCESS or "
|
||||
"ERROR_BADKEY)\n", res, GetLastError(), len, bufferA);
|
||||
}
|
||||
|
||||
/* a name with a colon is invalid */
|
||||
if (res == ERROR_SUCCESS) {
|
||||
lstrcatA(bufferA, str_colonA);
|
||||
len = sizeof(pCC);
|
||||
ZeroMemory(pCC, sizeof(pCC));
|
||||
res = pGetDefaultCommConfigA(bufferA, pCC, &len);
|
||||
ok( res == ERROR_BADKEY,
|
||||
"returned %u with %u and %u for %s (expected '0' with "
|
||||
"ERROR_BADKEY)\n", res, GetLastError(), len, bufferA);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* an empty String is not allowed */
|
||||
len = sizeof(pCC);
|
||||
ZeroMemory(pCC, sizeof(pCC));
|
||||
SetLastError(0xdeadbeef);
|
||||
res = pGetDefaultCommConfigA(emptyA, pCC, &len);
|
||||
ok( res == ERROR_BADKEY,
|
||||
"returned %u with %u and %u for %s (expected ERROR_BADKEY)\n",
|
||||
res, GetLastError(), len, emptyA);
|
||||
|
||||
/* some NULL checks */
|
||||
len = sizeof(pCC);
|
||||
ZeroMemory(pCC, sizeof(pCC));
|
||||
SetLastError(0xdeadbeef);
|
||||
res = pGetDefaultCommConfigA(NULL, pCC, &len);
|
||||
ok( res == ERROR_INVALID_PARAMETER,
|
||||
"returned %u with %u and %u for NULL (expected ERROR_INVALID_PARAMETER)\n",
|
||||
res, GetLastError(), len);
|
||||
|
||||
|
||||
len = sizeof(pCC);
|
||||
SetLastError(0xdeadbeef);
|
||||
res = pGetDefaultCommConfigA(com1A, NULL, &len);
|
||||
ok( res == ERROR_INVALID_PARAMETER,
|
||||
"returned %u with %u and %u (expected ERROR_INVALID_PARAMETER)\n",
|
||||
res, GetLastError(), len);
|
||||
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
res = pGetDefaultCommConfigA(com1A, pCC, NULL);
|
||||
ok( res == ERROR_INVALID_PARAMETER,
|
||||
"returned %u with %u (expected ERROR_INVALID_PARAMETER)\n",
|
||||
res, GetLastError());
|
||||
}
|
||||
|
||||
/* ################# */
|
||||
|
||||
static void test_drvGetDefaultCommConfigW(void)
|
||||
{
|
||||
COMMCONFIG pCC[3];
|
||||
WCHAR bufferW[16];
|
||||
CHAR bufferA[16];
|
||||
DWORD i;
|
||||
DWORD res;
|
||||
DWORD len;
|
||||
|
||||
|
||||
/* off by one: one byte smaller */
|
||||
i = sizeof(COMMCONFIG);
|
||||
len = sizeof(COMMCONFIG) -1;
|
||||
ZeroMemory(pCC, sizeof(pCC));
|
||||
SetLastError(0xdeadbeef);
|
||||
res = pGetDefaultCommConfigW(com1W, pCC, &len);
|
||||
if (res == ERROR_CALL_NOT_IMPLEMENTED) {
|
||||
skip("*W not implemented\n");
|
||||
return;
|
||||
}
|
||||
ok( (res == ERROR_INSUFFICIENT_BUFFER) && (len >= i),
|
||||
"returned %u with %u and %u (expected "
|
||||
"ERROR_INSUFFICIENT_BUFFER and '>= %u')\n", res, GetLastError(), len, i);
|
||||
|
||||
/* test ports "com0" - "com10" */
|
||||
for (i = 0; i < 11 ; i++) {
|
||||
sprintf(bufferA, fmt_comA, i);
|
||||
MultiByteToWideChar( CP_ACP, 0, bufferA, -1, bufferW, sizeof(bufferW)/sizeof(WCHAR) );
|
||||
len = sizeof(pCC);
|
||||
ZeroMemory(pCC, sizeof(pCC));
|
||||
SetLastError(0xdeadbeef);
|
||||
res = pGetDefaultCommConfigW(bufferW, pCC, &len);
|
||||
if (i == 0) {
|
||||
ok( res == ERROR_BADKEY,
|
||||
"returned %u with %u and %u for %s (expected "
|
||||
"ERROR_BADKEY)\n", res, GetLastError(), len, bufferA);
|
||||
}
|
||||
else
|
||||
{
|
||||
ok((res == ERROR_SUCCESS) || (res == ERROR_BADKEY),
|
||||
"returned %u with %u and %u for %s (expected ERROR_SUCCESS or "
|
||||
"ERROR_BADKEY)\n", res, GetLastError(), len, bufferA);
|
||||
}
|
||||
|
||||
/* a name with a colon is invalid */
|
||||
if (res == ERROR_SUCCESS) {
|
||||
lstrcatA(bufferA, str_colonA);
|
||||
lstrcatW(bufferW, str_colonW);
|
||||
len = sizeof(pCC);
|
||||
ZeroMemory(pCC, sizeof(pCC));
|
||||
res = pGetDefaultCommConfigW(bufferW, pCC, &len);
|
||||
ok( res == ERROR_BADKEY,
|
||||
"returned %u with %u and %u for %s (expected '0' with "
|
||||
"ERROR_BADKEY)\n", res, GetLastError(), len, bufferA);
|
||||
}
|
||||
}
|
||||
|
||||
/* an empty String is not allowed */
|
||||
len = sizeof(pCC);
|
||||
ZeroMemory(pCC, sizeof(pCC));
|
||||
SetLastError(0xdeadbeef);
|
||||
res = pGetDefaultCommConfigW(emptyW, pCC, &len);
|
||||
ok( res == ERROR_BADKEY,
|
||||
"returned %u with %u and %u for %s (expected ERROR_BADKEY)\n",
|
||||
res, GetLastError(), len, emptyA);
|
||||
|
||||
/* some NULL checks */
|
||||
len = sizeof(pCC);
|
||||
ZeroMemory(pCC, sizeof(pCC));
|
||||
SetLastError(0xdeadbeef);
|
||||
res = pGetDefaultCommConfigW(NULL, pCC, &len);
|
||||
ok( res == ERROR_INVALID_PARAMETER,
|
||||
"returned %u with %u and %u for NULL (expected ERROR_INVALID_PARAMETER)\n",
|
||||
res, GetLastError(), len);
|
||||
|
||||
|
||||
len = sizeof(pCC);
|
||||
SetLastError(0xdeadbeef);
|
||||
res = pGetDefaultCommConfigW(com1W, NULL, &len);
|
||||
ok( res == ERROR_INVALID_PARAMETER,
|
||||
"returned %u with %u and %u (expected ERROR_INVALID_PARAMETER)\n",
|
||||
res, GetLastError(), len);
|
||||
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
res = pGetDefaultCommConfigW(com1W, pCC, NULL);
|
||||
ok( res == ERROR_INVALID_PARAMETER,
|
||||
"returned %u with %u (expected ERROR_INVALID_PARAMETER)\n",
|
||||
res, GetLastError());
|
||||
|
||||
}
|
||||
|
||||
/* ################# */
|
||||
|
||||
START_TEST(confdlg)
|
||||
{
|
||||
LPCSTR ptr;
|
||||
|
||||
ptr = load_functions();
|
||||
if (ptr) {
|
||||
skip("got NULL with %u for %s\n", GetLastError(), ptr);
|
||||
return;
|
||||
}
|
||||
|
||||
test_drvGetDefaultCommConfigA();
|
||||
test_drvGetDefaultCommConfigW();
|
||||
|
||||
}
|
|
@ -66,6 +66,7 @@ TESTBINS = \
|
|||
rsabase_test.exe \
|
||||
rsaenh_test.exe \
|
||||
secur32_test.exe \
|
||||
serialui_test.exe \
|
||||
setupapi_test.exe \
|
||||
shdocvw_test.exe \
|
||||
shell32_test.exe \
|
||||
|
@ -168,6 +169,8 @@ rsaenh_test.exe: $(DLLDIR)/rsaenh/tests/rsaenh_test.exe$(DLLEXT)
|
|||
cp $(DLLDIR)/rsaenh/tests/rsaenh_test.exe$(DLLEXT) $@ && $(STRIP) $@
|
||||
secur32_test.exe: $(DLLDIR)/secur32/tests/secur32_test.exe$(DLLEXT)
|
||||
cp $(DLLDIR)/secur32/tests/secur32_test.exe$(DLLEXT) $@ && $(STRIP) $@
|
||||
serialui_test.exe: $(DLLDIR)/serialui/tests/serialui_test.exe$(DLLEXT)
|
||||
cp $(DLLDIR)/serialui/tests/serialui_test.exe$(DLLEXT) $@ && $(STRIP) $@
|
||||
setupapi_test.exe: $(DLLDIR)/setupapi/tests/setupapi_test.exe$(DLLEXT)
|
||||
cp $(DLLDIR)/setupapi/tests/setupapi_test.exe$(DLLEXT) $@ && $(STRIP) $@
|
||||
shdocvw_test.exe: $(DLLDIR)/shdocvw/tests/shdocvw_test.exe$(DLLEXT)
|
||||
|
|
|
@ -189,6 +189,7 @@ rpcrt4_test.exe TESTRES "rpcrt4_test.exe"
|
|||
rsabase_test.exe TESTRES "rsabase_test.exe"
|
||||
rsaenh_test.exe TESTRES "rsaenh_test.exe"
|
||||
secur32_test.exe TESTRES "secur32_test.exe"
|
||||
serialui_test.exe TESTRES "serialui_test.exe"
|
||||
setupapi_test.exe TESTRES "setupapi_test.exe"
|
||||
shdocvw_test.exe TESTRES "shdocvw_test.exe"
|
||||
shell32_test.exe TESTRES "shell32_test.exe"
|
||||
|
|
Loading…
Reference in New Issue