serialui/tests: Add initial tests.

This commit is contained in:
Detlef Riekenberg 2007-02-22 21:15:29 +01:00 committed by Alexandre Julliard
parent 59e816d82c
commit 8650c570a3
9 changed files with 298 additions and 1 deletions

4
.gitignore vendored
View File

@ -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

View File

@ -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

3
configure vendored

File diff suppressed because one or more lines are too long

View File

@ -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

View File

@ -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 \

View File

@ -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

View File

@ -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();
}

View File

@ -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)

View File

@ -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"