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/sensapi/libsensapi.def
|
||||||
dlls/serialui/libserialui.def
|
dlls/serialui/libserialui.def
|
||||||
dlls/serialui/serialui_rc.res
|
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/libsetupapi.def
|
||||||
dlls/setupapi/setupapi.res
|
dlls/setupapi/setupapi.res
|
||||||
dlls/setupapi/tests/*.ok
|
dlls/setupapi/tests/*.ok
|
||||||
|
@ -830,6 +833,7 @@ programs/winetest/rpcrt4_test.exe
|
||||||
programs/winetest/rsabase_test.exe
|
programs/winetest/rsabase_test.exe
|
||||||
programs/winetest/rsaenh_test.exe
|
programs/winetest/rsaenh_test.exe
|
||||||
programs/winetest/secur32_test.exe
|
programs/winetest/secur32_test.exe
|
||||||
|
programs/winetest/serialui_test.exe
|
||||||
programs/winetest/setupapi_test.exe
|
programs/winetest/setupapi_test.exe
|
||||||
programs/winetest/shdocvw_test.exe
|
programs/winetest/shdocvw_test.exe
|
||||||
programs/winetest/shell32_test.exe
|
programs/winetest/shell32_test.exe
|
||||||
|
|
|
@ -340,6 +340,7 @@ ALL_MAKEFILES = \
|
||||||
dlls/security/Makefile \
|
dlls/security/Makefile \
|
||||||
dlls/sensapi/Makefile \
|
dlls/sensapi/Makefile \
|
||||||
dlls/serialui/Makefile \
|
dlls/serialui/Makefile \
|
||||||
|
dlls/serialui/tests/Makefile \
|
||||||
dlls/setupapi/Makefile \
|
dlls/setupapi/Makefile \
|
||||||
dlls/setupapi/tests/Makefile \
|
dlls/setupapi/tests/Makefile \
|
||||||
dlls/sfc/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/security/Makefile: dlls/security/Makefile.in dlls/Makedll.rules
|
||||||
dlls/sensapi/Makefile: dlls/sensapi/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/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/Makefile: dlls/setupapi/Makefile.in dlls/Makedll.rules
|
||||||
dlls/setupapi/tests/Makefile: dlls/setupapi/tests/Makefile.in dlls/Maketest.rules
|
dlls/setupapi/tests/Makefile: dlls/setupapi/tests/Makefile.in dlls/Maketest.rules
|
||||||
dlls/sfc/Makefile: dlls/sfc/Makefile.in dlls/Makedll.rules
|
dlls/sfc/Makefile: dlls/sfc/Makefile.in dlls/Makedll.rules
|
||||||
|
|
|
@ -1711,6 +1711,7 @@ dlls/secur32/tests/Makefile
|
||||||
dlls/security/Makefile
|
dlls/security/Makefile
|
||||||
dlls/sensapi/Makefile
|
dlls/sensapi/Makefile
|
||||||
dlls/serialui/Makefile
|
dlls/serialui/Makefile
|
||||||
|
dlls/serialui/tests/Makefile
|
||||||
dlls/setupapi/Makefile
|
dlls/setupapi/Makefile
|
||||||
dlls/setupapi/tests/Makefile
|
dlls/setupapi/tests/Makefile
|
||||||
dlls/sfc/Makefile
|
dlls/sfc/Makefile
|
||||||
|
|
|
@ -263,6 +263,7 @@ TESTSUBDIRS = \
|
||||||
rsabase/tests \
|
rsabase/tests \
|
||||||
rsaenh/tests \
|
rsaenh/tests \
|
||||||
secur32/tests \
|
secur32/tests \
|
||||||
|
serialui/tests \
|
||||||
setupapi/tests \
|
setupapi/tests \
|
||||||
shdocvw/tests \
|
shdocvw/tests \
|
||||||
shell32/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 \
|
rsabase_test.exe \
|
||||||
rsaenh_test.exe \
|
rsaenh_test.exe \
|
||||||
secur32_test.exe \
|
secur32_test.exe \
|
||||||
|
serialui_test.exe \
|
||||||
setupapi_test.exe \
|
setupapi_test.exe \
|
||||||
shdocvw_test.exe \
|
shdocvw_test.exe \
|
||||||
shell32_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) $@
|
cp $(DLLDIR)/rsaenh/tests/rsaenh_test.exe$(DLLEXT) $@ && $(STRIP) $@
|
||||||
secur32_test.exe: $(DLLDIR)/secur32/tests/secur32_test.exe$(DLLEXT)
|
secur32_test.exe: $(DLLDIR)/secur32/tests/secur32_test.exe$(DLLEXT)
|
||||||
cp $(DLLDIR)/secur32/tests/secur32_test.exe$(DLLEXT) $@ && $(STRIP) $@
|
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)
|
setupapi_test.exe: $(DLLDIR)/setupapi/tests/setupapi_test.exe$(DLLEXT)
|
||||||
cp $(DLLDIR)/setupapi/tests/setupapi_test.exe$(DLLEXT) $@ && $(STRIP) $@
|
cp $(DLLDIR)/setupapi/tests/setupapi_test.exe$(DLLEXT) $@ && $(STRIP) $@
|
||||||
shdocvw_test.exe: $(DLLDIR)/shdocvw/tests/shdocvw_test.exe$(DLLEXT)
|
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"
|
rsabase_test.exe TESTRES "rsabase_test.exe"
|
||||||
rsaenh_test.exe TESTRES "rsaenh_test.exe"
|
rsaenh_test.exe TESTRES "rsaenh_test.exe"
|
||||||
secur32_test.exe TESTRES "secur32_test.exe"
|
secur32_test.exe TESTRES "secur32_test.exe"
|
||||||
|
serialui_test.exe TESTRES "serialui_test.exe"
|
||||||
setupapi_test.exe TESTRES "setupapi_test.exe"
|
setupapi_test.exe TESTRES "setupapi_test.exe"
|
||||||
shdocvw_test.exe TESTRES "shdocvw_test.exe"
|
shdocvw_test.exe TESTRES "shdocvw_test.exe"
|
||||||
shell32_test.exe TESTRES "shell32_test.exe"
|
shell32_test.exe TESTRES "shell32_test.exe"
|
||||||
|
|
Loading…
Reference in New Issue