Author: dchapyshev
Date: Fri Feb 27 19:45:02 2009
New Revision: 39791
URL:
http://svn.reactos.org/svn/reactos?rev=39791&view=rev
Log:
- Add winetests for msctf, msvfw32, ntdsapi, ntprint, oleacc
Added:
trunk/rostests/winetests/msctf/ (with props)
trunk/rostests/winetests/msctf/inputprocessor.c (with props)
trunk/rostests/winetests/msctf/msctf.rbuild (with props)
trunk/rostests/winetests/msctf/testlist.c (with props)
trunk/rostests/winetests/msvfw32/ (with props)
trunk/rostests/winetests/msvfw32/msvfw.c (with props)
trunk/rostests/winetests/msvfw32/msvfw32.rbuild (with props)
trunk/rostests/winetests/msvfw32/testlist.c (with props)
trunk/rostests/winetests/ntdsapi/ (with props)
trunk/rostests/winetests/ntdsapi/ntdsapi.c (with props)
trunk/rostests/winetests/ntdsapi/ntdsapi.rbuild (with props)
trunk/rostests/winetests/ntdsapi/testlist.c (with props)
trunk/rostests/winetests/ntprint/ (with props)
trunk/rostests/winetests/ntprint/ntprint.c (with props)
trunk/rostests/winetests/ntprint/ntprint.rbuild (with props)
trunk/rostests/winetests/ntprint/testlist.c (with props)
trunk/rostests/winetests/oleacc/ (with props)
trunk/rostests/winetests/oleacc/main.c (with props)
trunk/rostests/winetests/oleacc/oleacc.rbuild (with props)
trunk/rostests/winetests/oleacc/testlist.c (with props)
Modified:
trunk/rostests/winetests/directory.rbuild
Modified: trunk/rostests/winetests/directory.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/directory.rbuil…
==============================================================================
--- trunk/rostests/winetests/directory.rbuild [iso-8859-1] (original)
+++ trunk/rostests/winetests/directory.rbuild [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -91,6 +91,9 @@
<directory name="msacm32">
<xi:include href="msacm32/msacm32.rbuild" />
</directory>
+ <directory name="msctf">
+ <xi:include href="msctf/msctf.rbuild" />
+ </directory>
<directory name="mshtml">
<xi:include href="mshtml/mshtml.rbuild" />
</directory>
@@ -103,6 +106,9 @@
<directory name="msvcrt">
<xi:include href="msvcrt/msvcrt.rbuild" />
</directory>
+ <directory name="msvfw32">
+ <xi:include href="msvfw32/msvfw32.rbuild" />
+ </directory>
<directory name="msxml3">
<xi:include href="msxml3/msxml3.rbuild" />
</directory>
@@ -112,11 +118,20 @@
<directory name="ntdll">
<xi:include href="ntdll/ntdll.rbuild" />
</directory>
+ <directory name="ntdsapi">
+ <xi:include href="ntdsapi/ntdsapi.rbuild" />
+ </directory>
+ <directory name="ntprint">
+ <xi:include href="ntprint/ntprint.rbuild" />
+ </directory>
<directory name="odbccp32">
<xi:include href="odbccp32/odbccp32.rbuild" />
</directory>
<directory name="ole32">
<xi:include href="ole32/ole32.rbuild" />
+ </directory>
+ <directory name="oleacc">
+ <xi:include href="oleacc/oleacc.rbuild" />
</directory>
<directory name="oleaut32">
<xi:include href="oleaut32/oleaut32.rbuild" />
Propchange: trunk/rostests/winetests/msctf/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Fri Feb 27 19:45:02 2009
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)
Propchange: trunk/rostests/winetests/msctf/
------------------------------------------------------------------------------
bugtraq:message = See issue #%BUGID% for more details.
Propchange: trunk/rostests/winetests/msctf/
------------------------------------------------------------------------------
bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/rostests/winetests/msctf/
------------------------------------------------------------------------------
tsvn:logminsize = 10
Added: trunk/rostests/winetests/msctf/inputprocessor.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/msctf/inputproc…
==============================================================================
--- trunk/rostests/winetests/msctf/inputprocessor.c (added)
+++ trunk/rostests/winetests/msctf/inputprocessor.c [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,155 @@
+/*
+ * Unit tests for ITfInputProcessor
+ *
+ * Copyright 2009 Aric Stewart, CodeWeavers
+ *
+ * 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 <stdio.h>
+
+#define COBJMACROS
+#include "wine/test.h"
+#include "winuser.h"
+#include "shlwapi.h"
+#include "shlguid.h"
+#include "comcat.h"
+#include "initguid.h"
+#include "msctf.h"
+
+static ITfInputProcessorProfiles* g_ipp;
+static LANGID gLangid;
+static ITfCategoryMgr * g_cm;
+
+DEFINE_GUID(CLSID_FakeService,
0xEDE1A7AD,0x66DE,0x47E0,0xB6,0x20,0x3E,0x92,0xF8,0x24,0x6B,0xF3);
+DEFINE_GUID(CLSID_TF_InputProcessorProfiles,
0x33c53a50,0xf456,0x4884,0xb0,0x49,0x85,0xfd,0x64,0x3e,0xcf,0xed);
+DEFINE_GUID(CLSID_TF_CategoryMgr,
0xA4B544A1,0x438D,0x4B41,0x93,0x25,0x86,0x95,0x23,0xE2,0xD6,0xC7);
+DEFINE_GUID(GUID_TFCAT_TIP_KEYBOARD,
0x34745c63,0xb2f0,0x4784,0x8b,0x67,0x5e,0x12,0xc8,0x70,0x1a,0x31);
+DEFINE_GUID(GUID_TFCAT_TIP_SPEECH,
0xB5A73CD1,0x8355,0x426B,0xA1,0x61,0x25,0x98,0x08,0xF2,0x6B,0x14);
+DEFINE_GUID(GUID_TFCAT_TIP_HANDWRITING,
0x246ecb87,0xc2f2,0x4abe,0x90,0x5b,0xc8,0xb3,0x8a,0xdd,0x2c,0x43);
+DEFINE_GUID (GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER,
0x046B8C80,0x1647,0x40F7,0x9B,0x21,0xB9,0x3B,0x81,0xAA,0xBC,0x1B);
+DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
+
+
+static HRESULT initialize(void)
+{
+ HRESULT hr;
+ CoInitialize(NULL);
+ hr = CoCreateInstance (&CLSID_TF_InputProcessorProfiles, NULL,
+ CLSCTX_INPROC_SERVER, &IID_ITfInputProcessorProfiles, (void**)&g_ipp);
+ if (SUCCEEDED(hr))
+ hr = CoCreateInstance (&CLSID_TF_CategoryMgr, NULL,
+ CLSCTX_INPROC_SERVER, &IID_ITfCategoryMgr, (void**)&g_cm);
+ return hr;
+}
+
+static void cleanup(void)
+{
+ if (g_ipp)
+ ITfInputProcessorProfiles_Release(g_ipp);
+ if (g_cm)
+ ITfCategoryMgr_Release(g_cm);
+ CoUninitialize();
+}
+
+static void test_Register(void)
+{
+ HRESULT hr;
+
+ static const WCHAR szDesc[] = {'F','a','k','e','
','W','i','n','e','
','S','e','r','v','i','c','e',0};
+ static const WCHAR szFile[] = {'F','a','k','e','
','W','i','n','e','
','S','e','r','v','i','c','e','
','F','i','l','e',0};
+
+ hr = ITfInputProcessorProfiles_Register(g_ipp, &CLSID_FakeService);
+ ok(SUCCEEDED(hr),"Unable to register text service(%x)\n",hr);
+ hr = ITfInputProcessorProfiles_AddLanguageProfile(g_ipp, &CLSID_FakeService,
gLangid, &CLSID_FakeService, szDesc, sizeof(szDesc)/sizeof(WCHAR), szFile,
sizeof(szFile)/sizeof(WCHAR), 1);
+ ok(SUCCEEDED(hr),"Unable to add Language Profile (%x)\n",hr);
+}
+
+static void test_Unregister(void)
+{
+ HRESULT hr;
+ hr = ITfInputProcessorProfiles_Unregister(g_ipp, &CLSID_FakeService);
+ ok(SUCCEEDED(hr),"Unable to unregister text service(%x)\n",hr);
+}
+
+static void test_EnumInputProcessorInfo(void)
+{
+ IEnumGUID *ppEnum;
+ BOOL found = FALSE;
+
+ if (SUCCEEDED(ITfInputProcessorProfiles_EnumInputProcessorInfo(g_ipp, &ppEnum)))
+ {
+ ULONG fetched;
+ GUID g;
+ while (IEnumGUID_Next(ppEnum, 1, &g, &fetched) == S_OK)
+ {
+ if(IsEqualGUID(&g,&CLSID_FakeService))
+ found = TRUE;
+ }
+ }
+ ok(found,"Did not find registered text service\n");
+}
+
+static void test_EnumLanguageProfiles(void)
+{
+ BOOL found = FALSE;
+ IEnumTfLanguageProfiles *ppEnum;
+ if
(SUCCEEDED(ITfInputProcessorProfiles_EnumLanguageProfiles(g_ipp,gLangid,&ppEnum)))
+ {
+ TF_LANGUAGEPROFILE profile;
+ while (IEnumTfLanguageProfiles_Next(ppEnum,1,&profile,NULL)==S_OK)
+ {
+ if (IsEqualGUID(&profile.clsid,&CLSID_FakeService))
+ {
+ found = TRUE;
+ ok(profile.langid == gLangid, "LangId Incorrect\n");
+ todo_wine
ok(IsEqualGUID(&profile.catid,&GUID_TFCAT_TIP_KEYBOARD), "CatId
Incorrect\n");
+ ok(IsEqualGUID(&profile.guidProfile,&CLSID_FakeService),
"guidProfile Incorrect\n");
+ }
+ }
+ }
+ ok(found,"Registered text service not found\n");
+}
+
+static void test_RegisterCategory(void)
+{
+ HRESULT hr;
+ hr = ITfCategoryMgr_RegisterCategory(g_cm, &CLSID_FakeService,
&GUID_TFCAT_TIP_KEYBOARD, &CLSID_FakeService);
+ ok(SUCCEEDED(hr),"ITfCategoryMgr_RegisterCategory failed\n");
+}
+
+static void test_UnregisterCategory(void)
+{
+ HRESULT hr;
+ hr = ITfCategoryMgr_UnregisterCategory(g_cm, &CLSID_FakeService,
&GUID_TFCAT_TIP_KEYBOARD, &CLSID_FakeService);
+ todo_wine ok(SUCCEEDED(hr),"ITfCategoryMgr_UnregisterCategory failed\n");
+}
+
+START_TEST(inputprocessor)
+{
+ if (SUCCEEDED(initialize()))
+ {
+ gLangid = GetUserDefaultLCID();
+ test_Register();
+ test_RegisterCategory();
+ test_EnumInputProcessorInfo();
+ test_EnumLanguageProfiles();
+ test_UnregisterCategory();
+ test_Unregister();
+ }
+ else
+ skip("Unable to create InputProcessor\n");
+ cleanup();
+}
Propchange: trunk/rostests/winetests/msctf/inputprocessor.c
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/msctf/msctf.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/msctf/msctf.rbu…
==============================================================================
--- trunk/rostests/winetests/msctf/msctf.rbuild (added)
+++ trunk/rostests/winetests/msctf/msctf.rbuild [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,11 @@
+<module name="msctf_winetest" type="win32cui"
installbase="bin" installname="msctf_winetest.exe"
allowwarnings="true">
+ <compilerflag compiler="cc">-Wno-format</compilerflag>
+ <include base="msctf_winetest">.</include>
+ <file>inputprocessor.c</file>
+ <file>testlist.c</file>
+ <library>wine</library>
+ <library>ole32</library>
+ <library>user32</library>
+ <library>kernel32</library>
+ <library>ntdll</library>
+</module>
Propchange: trunk/rostests/winetests/msctf/msctf.rbuild
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/msctf/testlist.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/msctf/testlist.…
==============================================================================
--- trunk/rostests/winetests/msctf/testlist.c (added)
+++ trunk/rostests/winetests/msctf/testlist.c [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,15 @@
+/* Automatically generated file; DO NOT EDIT!! */
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+#define STANDALONE
+#include "wine/test.h"
+
+extern void func_inputprocessor(void);
+
+const struct test winetest_testlist[] =
+{
+ { "inputprocessor", func_inputprocessor },
+ { 0, 0 }
+};
Propchange: trunk/rostests/winetests/msctf/testlist.c
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/rostests/winetests/msvfw32/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Fri Feb 27 19:45:02 2009
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)
Propchange: trunk/rostests/winetests/msvfw32/
------------------------------------------------------------------------------
bugtraq:message = See issue #%BUGID% for more details.
Propchange: trunk/rostests/winetests/msvfw32/
------------------------------------------------------------------------------
bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/rostests/winetests/msvfw32/
------------------------------------------------------------------------------
tsvn:logminsize = 10
Added: trunk/rostests/winetests/msvfw32/msvfw.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/msvfw32/msvfw.c…
==============================================================================
--- trunk/rostests/winetests/msvfw32/msvfw.c (added)
+++ trunk/rostests/winetests/msvfw32/msvfw.c [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,59 @@
+/*
+ * Unit tests for video playback
+ *
+ * Copyright 2008 Jörg Höhle
+ * Copyright 2008 Austin English
+ *
+ * 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
+ */
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <vfw.h>
+
+#include "wine/test.h"
+
+static void test_OpenCase(void)
+{
+ HIC h;
+ /* Open a compressor with combinations of lowercase
+ * and uppercase compressortype and handler.
+ */
+ h =
ICOpen(mmioFOURCC('v','i','d','c'),mmioFOURCC('m','s','v','c'),ICMODE_DECOMPRESS);
+ ok(0!=h,"ICOpen(vidc.msvc) failed\n");
+ if (h) {
+ ok(ICClose(h)==ICERR_OK,"ICClose failed\n");
+ }
+ h =
ICOpen(mmioFOURCC('v','i','d','c'),mmioFOURCC('M','S','V','C'),ICMODE_DECOMPRESS);
+ ok(0!=h,"ICOpen(vidc.MSVC) failed\n");
+ if (h) {
+ ok(ICClose(h)==ICERR_OK,"ICClose failed\n");
+ }
+ h =
ICOpen(mmioFOURCC('V','I','D','C'),mmioFOURCC('m','s','v','c'),ICMODE_DECOMPRESS);
+ todo_wine ok(0!=h,"ICOpen(VIDC.msvc) failed\n");
+ if (h) {
+ ok(ICClose(h)==ICERR_OK,"ICClose failed\n");
+ }
+ h =
ICOpen(mmioFOURCC('V','I','D','C'),mmioFOURCC('M','S','V','C'),ICMODE_DECOMPRESS);
+ todo_wine ok(0!=h,"ICOpen(VIDC.MSVC) failed\n");
+ if (h) {
+ ok(ICClose(h)==ICERR_OK,"ICClose failed\n");
+ }
+}
+
+START_TEST(msvfw)
+{
+ test_OpenCase();
+}
Propchange: trunk/rostests/winetests/msvfw32/msvfw.c
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/msvfw32/msvfw32.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/msvfw32/msvfw32…
==============================================================================
--- trunk/rostests/winetests/msvfw32/msvfw32.rbuild (added)
+++ trunk/rostests/winetests/msvfw32/msvfw32.rbuild [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,10 @@
+<module name="msvfw32_winetest" type="win32cui"
installbase="bin" installname="msvfw32_winetest.exe"
allowwarnings="true">
+ <compilerflag compiler="cc">-Wno-format</compilerflag>
+ <include base="msvfw32_winetest">.</include>
+ <file>msvfw.c</file>
+ <file>testlist.c</file>
+ <library>wine</library>
+ <library>msvfw32</library>
+ <library>kernel32</library>
+ <library>ntdll</library>
+</module>
Propchange: trunk/rostests/winetests/msvfw32/msvfw32.rbuild
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/msvfw32/testlist.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/msvfw32/testlis…
==============================================================================
--- trunk/rostests/winetests/msvfw32/testlist.c (added)
+++ trunk/rostests/winetests/msvfw32/testlist.c [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,15 @@
+/* Automatically generated file; DO NOT EDIT!! */
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+#define STANDALONE
+#include "wine/test.h"
+
+extern void func_msvfw(void);
+
+const struct test winetest_testlist[] =
+{
+ { "msvfw", func_msvfw },
+ { 0, 0 }
+};
Propchange: trunk/rostests/winetests/msvfw32/testlist.c
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/rostests/winetests/ntdsapi/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Fri Feb 27 19:45:02 2009
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)
Propchange: trunk/rostests/winetests/ntdsapi/
------------------------------------------------------------------------------
bugtraq:message = See issue #%BUGID% for more details.
Propchange: trunk/rostests/winetests/ntdsapi/
------------------------------------------------------------------------------
bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/rostests/winetests/ntdsapi/
------------------------------------------------------------------------------
tsvn:logminsize = 10
Added: trunk/rostests/winetests/ntdsapi/ntdsapi.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdsapi/ntdsapi…
==============================================================================
--- trunk/rostests/winetests/ntdsapi/ntdsapi.c (added)
+++ trunk/rostests/winetests/ntdsapi/ntdsapi.c [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,99 @@
+/*
+ * Copyright (C) 2008 Robert Shearman (for CodeWeavers)
+ *
+ * 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 "windef.h"
+#include "winbase.h"
+#include "winerror.h"
+#include "winnls.h"
+#include "rpc.h"
+#include "rpcdce.h"
+#include "ntdsapi.h"
+
+#include "wine/test.h"
+
+static const char *wine_dbgstr_w(LPCWSTR str)
+{
+ static char buf[512];
+ if (!str)
+ return "(null)";
+ WideCharToMultiByte(CP_ACP, 0, str, -1, buf, sizeof(buf), NULL, NULL);
+ return buf;
+}
+
+static void test_DsMakeSpn(void)
+{
+ DWORD ret;
+ WCHAR spn[256];
+ DWORD spn_length;
+ static const WCHAR wszServiceClass[] =
{'c','l','a','s','s',0};
+ static const WCHAR wszServiceHost[] =
{'h','o','s','t',0};
+ static const WCHAR wszInstanceName[] =
{'i','n','s','t','a','n','c','e',0};
+ static const WCHAR wszReferrer[] =
{'r','e','f','e','r','r','e','r',0};
+ static const WCHAR wszSpn1[] =
{'c','l','a','s','s','/','h','o','s','t',0};
+ static const WCHAR wszSpn2[] =
{'c','l','a','s','s','/','i','n','s','t','a','n','c','e','/','h','o','s','t',0};
+ static const WCHAR wszSpn3[] =
{'c','l','a','s','s','/','i','n','s','t','a','n','c','e',':','5','5','5','/','h','o','s','t',0};
+ static const WCHAR wszSpn4[] =
{'c','l','a','s','s','/','i','n','s','t','a','n','c','e',':','5','5','5','/','h','o','s','t',0};
+ static const WCHAR wszSpn5[] =
{'c','l','a','s','s','/','h','o','s','t',':','5','5','5',0};
+
+ spn[0] = '\0';
+
+ spn_length = sizeof(spn)/sizeof(spn[0]);
+ ret = DsMakeSpnW(NULL, NULL, NULL, 0, NULL, &spn_length, spn);
+ ok(ret == ERROR_INVALID_PARAMETER, "DsMakeSpnW should have failed with
ERROR_INVALID_PARAMETER instead of %d\n", ret);
+
+ spn_length = sizeof(spn)/sizeof(spn[0]);
+ ret = DsMakeSpnW(NULL, wszServiceHost, NULL, 0, NULL, &spn_length, spn);
+ ok(ret == ERROR_INVALID_PARAMETER, "DsMakeSpnW should have failed with
ERROR_INVALID_PARAMETER instead of %d\n", ret);
+
+ spn_length = sizeof(spn)/sizeof(spn[0]);
+ ret = DsMakeSpnW(wszServiceClass, wszServiceHost, NULL, 0, NULL, &spn_length,
spn);
+ ok(ret == ERROR_SUCCESS, "DsMakeSpnW should have succeeded instead of failing
with %d\n", ret);
+ ok(!lstrcmpW(spn, wszSpn1), "DsMakeSpnW returned unexpected SPN %s\n",
wine_dbgstr_w(spn));
+ ok(spn_length == lstrlenW(wszSpn1) + 1, "DsMakeSpnW should have returned
spn_length of %d instead of %d\n", lstrlenW(wszSpn1) + 1, spn_length);
+
+ spn_length = sizeof(spn)/sizeof(spn[0]);
+ ret = DsMakeSpnW(wszServiceClass, wszServiceHost, wszInstanceName, 0, NULL,
&spn_length, spn);
+ ok(ret == ERROR_SUCCESS, "DsMakeSpnW should have succeeded instead of failing
with %d\n", ret);
+ ok(!lstrcmpW(spn, wszSpn2), "DsMakeSpnW returned unexpected SPN %s\n",
wine_dbgstr_w(spn));
+ ok(spn_length == lstrlenW(wszSpn2) + 1, "DsMakeSpnW should have returned
spn_length of %d instead of %d\n", lstrlenW(wszSpn2) + 1, spn_length);
+
+ spn_length = sizeof(spn)/sizeof(spn[0]);
+ ret = DsMakeSpnW(wszServiceClass, wszServiceHost, wszInstanceName, 555, NULL,
&spn_length, spn);
+ ok(ret == ERROR_SUCCESS, "DsMakeSpnW should have succeeded instead of failing
with %d\n", ret);
+ ok(!lstrcmpW(spn, wszSpn3), "DsMakeSpnW returned unexpected SPN %s\n",
wine_dbgstr_w(spn));
+ ok(spn_length == lstrlenW(wszSpn3) + 1, "DsMakeSpnW should have returned
spn_length of %d instead of %d\n", lstrlenW(wszSpn3) + 1, spn_length);
+
+ spn_length = sizeof(spn)/sizeof(spn[0]);
+ ret = DsMakeSpnW(wszServiceClass, wszServiceHost, wszInstanceName, 555, wszReferrer,
&spn_length, spn);
+ ok(ret == ERROR_SUCCESS, "DsMakeSpnW should have succeeded instead of failing
with %d\n", ret);
+ ok(!lstrcmpW(spn, wszSpn4), "DsMakeSpnW returned unexpected SPN %s\n",
wine_dbgstr_w(spn));
+ ok(spn_length == lstrlenW(wszSpn4) + 1, "DsMakeSpnW should have returned
spn_length of %d instead of %d\n", lstrlenW(wszSpn4) + 1, spn_length);
+
+ spn_length = sizeof(spn)/sizeof(spn[0]);
+ ret = DsMakeSpnW(wszServiceClass, wszServiceHost, NULL, 555, wszReferrer,
&spn_length, spn);
+ ok(ret == ERROR_SUCCESS, "DsMakeSpnW should have succeeded instead of failing
with %d\n", ret);
+ ok(!lstrcmpW(spn, wszSpn5), "DsMakeSpnW returned unexpected SPN %s\n",
wine_dbgstr_w(spn));
+ ok(spn_length == lstrlenW(wszSpn5) + 1, "DsMakeSpnW should have returned
spn_length of %d instead of %d\n", lstrlenW(wszSpn5) + 1, spn_length);
+}
+
+START_TEST( ntdsapi )
+{
+ test_DsMakeSpn();
+}
Propchange: trunk/rostests/winetests/ntdsapi/ntdsapi.c
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/ntdsapi/ntdsapi.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdsapi/ntdsapi…
==============================================================================
--- trunk/rostests/winetests/ntdsapi/ntdsapi.rbuild (added)
+++ trunk/rostests/winetests/ntdsapi/ntdsapi.rbuild [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,10 @@
+<module name="ntdsapi_winetest" type="win32cui"
installbase="bin" installname="ntdsapi_winetest.exe"
allowwarnings="true">
+ <compilerflag compiler="cc">-Wno-format</compilerflag>
+ <include base="ntdsapi_winetest">.</include>
+ <file>ntdsapi.c</file>
+ <file>testlist.c</file>
+ <library>wine</library>
+ <library>ntdsapi</library>
+ <library>kernel32</library>
+ <library>ntdll</library>
+</module>
Propchange: trunk/rostests/winetests/ntdsapi/ntdsapi.rbuild
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/ntdsapi/testlist.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdsapi/testlis…
==============================================================================
--- trunk/rostests/winetests/ntdsapi/testlist.c (added)
+++ trunk/rostests/winetests/ntdsapi/testlist.c [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,15 @@
+/* Automatically generated file; DO NOT EDIT!! */
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+#define STANDALONE
+#include "wine/test.h"
+
+extern void func_ntdsapi(void);
+
+const struct test winetest_testlist[] =
+{
+ { "ntdsapi", func_ntdsapi },
+ { 0, 0 }
+};
Propchange: trunk/rostests/winetests/ntdsapi/testlist.c
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/rostests/winetests/ntprint/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Fri Feb 27 19:45:02 2009
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)
Propchange: trunk/rostests/winetests/ntprint/
------------------------------------------------------------------------------
bugtraq:message = See issue #%BUGID% for more details.
Propchange: trunk/rostests/winetests/ntprint/
------------------------------------------------------------------------------
bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/rostests/winetests/ntprint/
------------------------------------------------------------------------------
tsvn:logminsize = 10
Added: trunk/rostests/winetests/ntprint/ntprint.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntprint/ntprint…
==============================================================================
--- trunk/rostests/winetests/ntprint/ntprint.c (added)
+++ trunk/rostests/winetests/ntprint/ntprint.c [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,230 @@
+/*
+ * Unit test suite for the Spooler Setup API (Printing)
+ *
+ * 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 "wingdi.h"
+#include "wine/test.h"
+
+
+/* ##### */
+
+static HMODULE hdll;
+static HANDLE (WINAPI *pPSetupCreateMonitorInfo)(LPVOID, LPVOID, LPVOID);
+static VOID (WINAPI *pPSetupDestroyMonitorInfo)(HANDLE);
+static BOOL (WINAPI *pPSetupEnumMonitor)(HANDLE, DWORD, LPWSTR, LPDWORD);
+
+/* ########################### */
+
+static LPCSTR load_functions(void)
+{
+ LPCSTR ptr;
+
+ ptr = "ntprint.dll";
+ hdll = LoadLibraryA(ptr);
+ if (!hdll) return ptr;
+
+ ptr = "PSetupCreateMonitorInfo";
+ pPSetupCreateMonitorInfo = (VOID *) GetProcAddress(hdll, ptr);
+ if (!pPSetupCreateMonitorInfo) return ptr;
+
+ ptr = "PSetupDestroyMonitorInfo";
+ pPSetupDestroyMonitorInfo = (VOID *) GetProcAddress(hdll, ptr);
+ if (!pPSetupDestroyMonitorInfo) return ptr;
+
+ ptr = "PSetupEnumMonitor";
+ pPSetupEnumMonitor = (VOID *) GetProcAddress(hdll, ptr);
+ if (!pPSetupEnumMonitor) return ptr;
+
+ return NULL;
+}
+
+/* ########################### */
+
+static void test_PSetupCreateMonitorInfo(VOID)
+{
+ HANDLE mi;
+ BYTE buffer[1024] ;
+
+ SetLastError(0xdeadbeef);
+ mi = pPSetupCreateMonitorInfo(NULL, NULL, NULL);
+ ok( mi != NULL, "got %p with %u (expected '!= NULL')\n", mi,
GetLastError());
+ if (mi) pPSetupDestroyMonitorInfo(mi);
+
+
+ memset(buffer, 0, sizeof(buffer));
+ SetLastError(0xdeadbeef);
+ mi = pPSetupCreateMonitorInfo(buffer, NULL, NULL);
+ ok( mi != NULL, "got %p with %u (expected '!= NULL')\n", mi,
GetLastError());
+ if (mi) pPSetupDestroyMonitorInfo(mi);
+
+}
+
+/* ########################### */
+
+static void test_PSetupDestroyMonitorInfo(VOID)
+{
+ HANDLE mi;
+
+
+ SetLastError(0xdeadbeef);
+ pPSetupDestroyMonitorInfo(NULL);
+ /* lasterror is returned */
+ trace("returned with %u\n", GetLastError());
+
+ SetLastError(0xdeadbeef);
+ mi = pPSetupCreateMonitorInfo(NULL, NULL, NULL);
+ ok( mi != NULL, "got %p with %u (expected '!= NULL')\n", mi,
GetLastError());
+
+ if (!mi) return;
+
+ SetLastError(0xdeadbeef);
+ pPSetupDestroyMonitorInfo(mi);
+ /* lasterror is returned */
+ trace("returned with %u\n", GetLastError());
+
+ /* Try to destroy the handle twice crash with native ntprint.dll */
+ if (0) {
+ SetLastError(0xdeadbeef);
+ pPSetupDestroyMonitorInfo(mi);
+ trace(" with %u\n", GetLastError());
+ }
+
+}
+
+/* ########################### */
+
+static void test_PSetupEnumMonitor(VOID)
+{
+ HANDLE mi;
+ WCHAR buffer[MAX_PATH+2];
+ DWORD minsize = 0;
+ DWORD size;
+ DWORD res;
+ DWORD index=0;
+
+ SetLastError(0xdeadbeef);
+ mi = pPSetupCreateMonitorInfo(NULL, NULL, NULL);
+ if (!mi) {
+ skip("PSetupCreateMonitorInfo\n");
+ return;
+ }
+
+ minsize = 0;
+ SetLastError(0xdeadbeef);
+ res = pPSetupEnumMonitor(mi, 0, NULL, &minsize);
+ ok( !res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER) && (minsize
> 0),
+ "got %u with %u and %u (expected '0' with ERROR_INSUFFICIENT_BUFFER
"
+ "and '> 0')\n", res, GetLastError(), minsize);
+
+
+ size = sizeof(buffer) / sizeof(buffer[0]);
+ if ((minsize + 1) > size) {
+ skip("overflow: %u\n", minsize);
+ pPSetupDestroyMonitorInfo(mi);
+ return;
+ }
+
+ if (0) {
+ /* XP: ERROR_INVALID_PARAMETER, w2k: Crash */
+ SetLastError(0xdeadbeef);
+ size = sizeof(buffer) / sizeof(buffer[0]);
+ res = pPSetupEnumMonitor(NULL, 0, buffer, &size);
+ ok( !res && (GetLastError() == ERROR_INVALID_PARAMETER),
+ "got %u with %u (expected '0' with
ERROR_INVALID_PARAMETER)\n",
+ res, GetLastError());
+ }
+
+ if (0) {
+ /* XP: Crash, w2k: Success (how can that work?) */
+ SetLastError(0xdeadbeef);
+ size = sizeof(buffer) / sizeof(buffer[0]);
+ res = pPSetupEnumMonitor(mi, 0, NULL, &size);
+ trace("got %u with %u and %u\n", res, GetLastError(), size);
+ }
+
+ if (0) {
+ /* XP: ERROR_INVALID_PARAMETER, w2k: Crash */
+ SetLastError(0xdeadbeef);
+ res = pPSetupEnumMonitor(mi, 0, buffer, NULL);
+ ok( !res && (GetLastError() == ERROR_INVALID_PARAMETER),
+ "got %u with %u (expected '0' with
ERROR_INVALID_PARAMETER)\n",
+ res, GetLastError());
+ }
+
+ SetLastError(0xdeadbeef);
+ size = minsize - 1;
+ res = pPSetupEnumMonitor(mi, 0, buffer, &size);
+ ok( !res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER),
+ "got %u with %u and %u (expected '0' with
ERROR_INSUFFICIENT_BUFFER)\n",
+ res, GetLastError(), size);
+
+
+ SetLastError(0xdeadbeef);
+ size = minsize;
+ res = pPSetupEnumMonitor(mi, 0, buffer, &size);
+ ok( res, "got %u with %u and %u (expected '!= 0')\n",
+ res, GetLastError(), size);
+
+ SetLastError(0xdeadbeef);
+ size = minsize + 1;
+ res = pPSetupEnumMonitor(mi, 0, buffer, &size);
+ ok( res, "got %u with %u and %u (expected '!= 0')\n",
+ res, GetLastError(), size);
+
+ /* try max. 20 monitors */
+ while (res && (index < 20)) {
+ SetLastError(0xdeadbeef);
+ buffer[0] = '\0';
+ size = sizeof(buffer) / sizeof(buffer[0]);
+ res = pPSetupEnumMonitor(mi, index, buffer, &size);
+ ok( res || (GetLastError() == ERROR_NO_MORE_ITEMS),
+ "(%u) got %u with %u and %u (expected '!=0' or: '0' with
"
+ "ERROR_NO_MORE_ITEMS)\n", index, res, GetLastError(), size);
+
+ if (res) index++;
+ }
+ pPSetupDestroyMonitorInfo(mi);
+
+}
+
+/* ########################### */
+
+START_TEST(ntprint)
+{
+ LPCSTR ptr;
+
+ /* ntprint.dll does not exist on win9x */
+ ptr = load_functions();
+ if (ptr) {
+ skip("%s not found\n", ptr);
+ return;
+ }
+
+ test_PSetupCreateMonitorInfo();
+ test_PSetupDestroyMonitorInfo();
+ test_PSetupEnumMonitor();
+
+}
Propchange: trunk/rostests/winetests/ntprint/ntprint.c
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/ntprint/ntprint.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntprint/ntprint…
==============================================================================
--- trunk/rostests/winetests/ntprint/ntprint.rbuild (added)
+++ trunk/rostests/winetests/ntprint/ntprint.rbuild [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,9 @@
+<module name="ntprint_winetest" type="win32cui"
installbase="bin" installname="ntprint_winetest.exe"
allowwarnings="true">
+ <compilerflag compiler="cc">-Wno-format</compilerflag>
+ <include base="ntprint_winetest">.</include>
+ <file>ntprint.c</file>
+ <file>testlist.c</file>
+ <library>wine</library>
+ <library>kernel32</library>
+ <library>ntdll</library>
+</module>
Propchange: trunk/rostests/winetests/ntprint/ntprint.rbuild
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/ntprint/testlist.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntprint/testlis…
==============================================================================
--- trunk/rostests/winetests/ntprint/testlist.c (added)
+++ trunk/rostests/winetests/ntprint/testlist.c [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,15 @@
+/* Automatically generated file; DO NOT EDIT!! */
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+#define STANDALONE
+#include "wine/test.h"
+
+extern void func_ntprint(void);
+
+const struct test winetest_testlist[] =
+{
+ { "ntprint", func_ntprint },
+ { 0, 0 }
+};
Propchange: trunk/rostests/winetests/ntprint/testlist.c
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/rostests/winetests/oleacc/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Fri Feb 27 19:45:02 2009
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)
Propchange: trunk/rostests/winetests/oleacc/
------------------------------------------------------------------------------
bugtraq:message = See issue #%BUGID% for more details.
Propchange: trunk/rostests/winetests/oleacc/
------------------------------------------------------------------------------
bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/rostests/winetests/oleacc/
------------------------------------------------------------------------------
tsvn:logminsize = 10
Added: trunk/rostests/winetests/oleacc/main.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/oleacc/main.c?r…
==============================================================================
--- trunk/rostests/winetests/oleacc/main.c (added)
+++ trunk/rostests/winetests/oleacc/main.c [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,141 @@
+/*
+ * oleacc tests
+ *
+ * Copyright 2008 Nikolay Sivov
+ *
+ * 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 <oleacc.h>
+#include "wine/test.h"
+
+static void test_getroletext(void)
+{
+ INT ret, role;
+ CHAR buf[2], *buff;
+ WCHAR bufW[2], *buffW;
+
+ /* wrong role number */
+ ret = GetRoleTextA(-1, NULL, 0);
+ ok(ret == 0, "GetRoleTextA doesn't return zero on wrong role number, got
%d\n", ret);
+ buf[0] = '*';
+ ret = GetRoleTextA(-1, buf, 2);
+ ok(ret == 0, "GetRoleTextA doesn't return zero on wrong role number, got
%d\n", ret);
+ ok(buf[0] == '*' ||
+ broken(buf[0] == 0), /* Win98 and WinMe */
+ "GetRoleTextA modified buffer on wrong role number\n");
+ buf[0] = '*';
+ ret = GetRoleTextA(-1, buf, 0);
+ ok(ret == 0, "GetRoleTextA doesn't return zero on wrong role number, got
%d\n", ret);
+ ok(buf[0] == '*', "GetRoleTextA modified buffer on wrong role
number\n");
+
+ ret = GetRoleTextW(-1, NULL, 0);
+ ok(ret == 0, "GetRoleTextW doesn't return zero on wrong role number, got
%d\n", ret);
+ bufW[0] = '*';
+ ret = GetRoleTextW(-1, bufW, 2);
+ ok(ret == 0, "GetRoleTextW doesn't return zero on wrong role number, got
%d\n", ret);
+ ok(bufW[0] == '\0' ||
+ broken(bufW[0] == '*'), /* Win98 and WinMe */
+ "GetRoleTextW doesn't return NULL char on wrong role number\n");
+ bufW[0] = '*';
+ ret = GetRoleTextW(-1, bufW, 0);
+ ok(ret == 0, "GetRoleTextW doesn't return zero on wrong role number, got
%d\n", ret);
+
+ /* zero role number - not documented */
+ ret = GetRoleTextA(0, NULL, 0);
+ ok(ret > 0, "GetRoleTextA doesn't return (>0) for zero role number,
got %d\n", ret);
+ ret = GetRoleTextW(0, NULL, 0);
+ ok(ret > 0, "GetRoleTextW doesn't return (>0) for zero role number,
got %d\n", ret);
+
+ /* NULL buffer, return length */
+ ret = GetRoleTextA(ROLE_SYSTEM_TITLEBAR, NULL, 0);
+ ok(ret > 0, "GetRoleTextA doesn't return length on NULL buffer, got
%d\n", ret);
+ ret = GetRoleTextA(ROLE_SYSTEM_TITLEBAR, NULL, 1);
+ ok(ret > 0, "GetRoleTextA doesn't return length on NULL buffer, got
%d\n", ret);
+ ret = GetRoleTextW(ROLE_SYSTEM_TITLEBAR, NULL, 0);
+ ok(ret > 0, "GetRoleTextW doesn't return length on NULL buffer, got
%d\n", ret);
+ ret = GetRoleTextW(ROLE_SYSTEM_TITLEBAR, NULL, 1);
+ ok(ret > 0, "GetRoleTextW doesn't return length on NULL buffer, got
%d\n", ret);
+
+ /* use a smaller buffer */
+ buf[0] = '*';
+ ret = GetRoleTextA(ROLE_SYSTEM_TITLEBAR, buf, 1);
+ ok(ret == 0, "GetRoleTextA returned wrong length\n");
+ ok(buf[0] == '\0', "GetRoleTextA returned not zero-length
buffer\n");
+ buf[1] = '*';
+ ret = GetRoleTextA(ROLE_SYSTEM_TITLEBAR, buf, 2);
+ ok(ret == 1 ||
+ ret == 0, /* Vista and W2K8 */
+ "GetRoleTextA returned wrong length, got %d, expected 0 or 1\n", ret);
+ if (ret == 1)
+ ok(buf[1] == '\0', "GetRoleTextA returned not zero-length buffer :
(%c)\n", buf[1]);
+
+ bufW[0] = '*';
+ ret = GetRoleTextW(ROLE_SYSTEM_TITLEBAR, bufW, 1);
+ ok(ret == 0, "GetRoleTextW returned wrong length, got %d, expected 1\n",
ret);
+ ok(bufW[0] == '\0', "GetRoleTextW returned not zero-length
buffer\n");
+ bufW[1] = '*';
+ ret = GetRoleTextW(ROLE_SYSTEM_TITLEBAR, bufW, 2);
+ ok(ret == 1, "GetRoleTextW returned wrong length, got %d, expected 1\n",
ret);
+ ok(bufW[1] == '\0', "GetRoleTextW returned not zero-length
buffer\n");
+
+ /* use bigger buffer */
+ ret = GetRoleTextA(ROLE_SYSTEM_TITLEBAR, NULL, 0);
+ buff = HeapAlloc(GetProcessHeap(), 0, 2*ret);
+ buff[2*ret-1] = '*';
+ ret = GetRoleTextA(ROLE_SYSTEM_TITLEBAR, buff, 2*ret);
+ ok(buff[2*ret-1] == '*', "GetRoleTextA shouldn't modify this part of
buffer\n");
+ HeapFree(GetProcessHeap(), 0, buff);
+
+ ret = GetRoleTextW(ROLE_SYSTEM_TITLEBAR, NULL, 0);
+ buffW = HeapAlloc(GetProcessHeap(), 0, 2*ret*sizeof(WCHAR));
+ buffW[2*ret-1] = '*';
+ ret = GetRoleTextW(ROLE_SYSTEM_TITLEBAR, buffW, 2*ret);
+ ok(buffW[2*ret-1] == '*', "GetRoleTextW shouldn't modify this part
of buffer\n");
+ HeapFree(GetProcessHeap(), 0, buffW);
+
+ /* check returned length for all roles */
+ for(role = 0; role <= ROLE_SYSTEM_OUTLINEBUTTON; role++){
+ CHAR buff2[100];
+ WCHAR buff2W[100];
+
+ /* NT4 and W2K don't clear the buffer on a nonexistent role in the A-call */
+ memset(buff2, 0, sizeof(buff2));
+
+ ret = GetRoleTextA(role, NULL, 0);
+ /* Win98 up to W2K miss some of the roles */
+ if (role >= ROLE_SYSTEM_SPLITBUTTON)
+ ok(ret > 0 || broken(ret == 0), "Expected the role %d to be
present\n", role);
+ else
+ ok(ret > 0, "Expected the role to be present\n");
+
+ GetRoleTextA(role, buff2, sizeof(buff2));
+ ok(ret == lstrlenA(buff2),
+ "GetRoleTextA: returned length doesn't match returned buffer for role
%d\n", role);
+
+ /* Win98 and WinMe don't clear the buffer on a nonexistent role in the W-call
*/
+ memset(buff2W, 0, sizeof(buff2W));
+
+ ret = GetRoleTextW(role, NULL, 0);
+ GetRoleTextW(role, buff2W, sizeof(buff2W)/sizeof(WCHAR));
+ ok(ret == lstrlenW(buff2W),
+ "GetRoleTextW: returned length doesn't match returned buffer for role
%d\n", role);
+ }
+}
+
+START_TEST(main)
+{
+ test_getroletext();
+}
Propchange: trunk/rostests/winetests/oleacc/main.c
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/oleacc/oleacc.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/oleacc/oleacc.r…
==============================================================================
--- trunk/rostests/winetests/oleacc/oleacc.rbuild (added)
+++ trunk/rostests/winetests/oleacc/oleacc.rbuild [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,10 @@
+<module name="oleacc_winetest" type="win32cui"
installbase="bin" installname="oleacc_winetest.exe"
allowwarnings="true">
+ <compilerflag compiler="cc">-Wno-format</compilerflag>
+ <include base="oleacc_winetest">.</include>
+ <file>main.c</file>
+ <file>testlist.c</file>
+ <library>wine</library>
+ <library>kernel32</library>
+ <library>oleacc</library>
+ <library>ntdll</library>
+</module>
Propchange: trunk/rostests/winetests/oleacc/oleacc.rbuild
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/rostests/winetests/oleacc/testlist.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/oleacc/testlist…
==============================================================================
--- trunk/rostests/winetests/oleacc/testlist.c (added)
+++ trunk/rostests/winetests/oleacc/testlist.c [iso-8859-1] Fri Feb 27 19:45:02 2009
@@ -1,0 +1,15 @@
+/* Automatically generated file; DO NOT EDIT!! */
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+#define STANDALONE
+#include "wine/test.h"
+
+extern void func_main(void);
+
+const struct test winetest_testlist[] =
+{
+ { "main", func_main },
+ { 0, 0 }
+};
Propchange: trunk/rostests/winetests/oleacc/testlist.c
------------------------------------------------------------------------------
svn:eol-style = native