From 9b7d4ccbd01c3ec41bdeeb457938af12aaa592d9 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 16 Sep 2013 15:08:03 +0000 Subject: [PATCH] [FAULTREP_WINETEST] * Import from Wine 1.7.1. svn path=/trunk/; revision=60168 --- rostests/winetests/CMakeLists.txt | 1 + rostests/winetests/faultrep/CMakeLists.txt | 5 ++ rostests/winetests/faultrep/faultrep.c | 90 ++++++++++++++++++++++ rostests/winetests/faultrep/testlist.c | 12 +++ 4 files changed, 108 insertions(+) create mode 100644 rostests/winetests/faultrep/CMakeLists.txt create mode 100644 rostests/winetests/faultrep/faultrep.c create mode 100644 rostests/winetests/faultrep/testlist.c diff --git a/rostests/winetests/CMakeLists.txt b/rostests/winetests/CMakeLists.txt index b0e58b299fc..964d0e6b2df 100644 --- a/rostests/winetests/CMakeLists.txt +++ b/rostests/winetests/CMakeLists.txt @@ -21,6 +21,7 @@ add_subdirectory(cryptui) add_subdirectory(dinput) add_subdirectory(dnsapi) add_subdirectory(dsound) +add_subdirectory(faultrep) add_subdirectory(fusion) add_subdirectory(gdi32) add_subdirectory(gdiplus) diff --git a/rostests/winetests/faultrep/CMakeLists.txt b/rostests/winetests/faultrep/CMakeLists.txt new file mode 100644 index 00000000000..aa56b3fed3c --- /dev/null +++ b/rostests/winetests/faultrep/CMakeLists.txt @@ -0,0 +1,5 @@ + +add_executable(faultrep_winetest faultrep.c testlist.c) +set_module_type(faultrep_winetest win32cui) +add_importlibs(faultrep_winetest faultrep advapi32 msvcrt kernel32) +add_cd_file(TARGET faultrep_winetest DESTINATION reactos/bin FOR all) diff --git a/rostests/winetests/faultrep/faultrep.c b/rostests/winetests/faultrep/faultrep.c new file mode 100644 index 00000000000..948310da4fe --- /dev/null +++ b/rostests/winetests/faultrep/faultrep.c @@ -0,0 +1,90 @@ +/* + * Unit test suite for fault reporting in XP and above + * + * Copyright 2010 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 +#include + +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "winreg.h" + +#include "errorrep.h" +#include "wine/test.h" + +static char regpath_root[] = "Software\\Microsoft\\PCHealth\\ErrorReporting"; +static char regpath_exclude[] = "ExclusionList"; + +/* ###### */ + +static void test_AddERExcludedApplicationA(void) +{ + BOOL res; + LONG lres; + HKEY hroot; + HKEY hexclude = 0; + + /* clean state */ + lres = RegCreateKeyA(HKEY_LOCAL_MACHINE, regpath_root, &hroot); + if (lres == ERROR_ACCESS_DENIED) + { + skip("Not enough access rights\n"); + return; + } + + if (!lres) + lres = RegOpenKeyA(hroot, regpath_exclude, &hexclude); + + if (!lres) + RegDeleteValueA(hexclude, "winetest_faultrep.exe"); + + + SetLastError(0xdeadbeef); + res = AddERExcludedApplicationA(NULL); + ok(!res, "got %d and 0x%x (expected FALSE)\n", res, GetLastError()); + + SetLastError(0xdeadbeef); + res = AddERExcludedApplicationA(""); + ok(!res, "got %d and 0x%x (expected FALSE)\n", res, GetLastError()); + + SetLastError(0xdeadbeef); + /* existence of the path doesn't matter this function succeeded */ + res = AddERExcludedApplicationA("winetest_faultrep.exe"); + ok(res, "got %d and 0x%x (expected TRUE)\n", res, GetLastError()); + + /* add, when already present */ + SetLastError(0xdeadbeef); + res = AddERExcludedApplicationA("winetest_faultrep.exe"); + ok(res, "got %d and 0x%x (expected TRUE)\n", res, GetLastError()); + + /* cleanup */ + RegDeleteValueA(hexclude, "winetest_faultrep.exe"); + + RegCloseKey(hexclude); + RegCloseKey(hroot); +} + +/* ########################### */ + +START_TEST(faultrep) +{ + test_AddERExcludedApplicationA(); +} diff --git a/rostests/winetests/faultrep/testlist.c b/rostests/winetests/faultrep/testlist.c new file mode 100644 index 00000000000..a47455f02fe --- /dev/null +++ b/rostests/winetests/faultrep/testlist.c @@ -0,0 +1,12 @@ +/* Automatically generated file; DO NOT EDIT!! */ + +#define STANDALONE +#include + +extern void func_faultrep(void); + +const struct test winetest_testlist[] = +{ + { "faultrep", func_faultrep }, + { 0, 0 } +};