From 6996a9c83f365d110247ca6f494ebd6805c16490 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Sun, 25 Jan 2009 17:08:20 +0100 Subject: [PATCH] comcat/tests: Skip tests if we can't create a test category. --- dlls/comcat/tests/comcat.c | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/dlls/comcat/tests/comcat.c b/dlls/comcat/tests/comcat.c index 80f774cb480..49e5afe7c41 100644 --- a/dlls/comcat/tests/comcat.c +++ b/dlls/comcat/tests/comcat.c @@ -31,19 +31,19 @@ #define ok_ole_success(hr, func) ok(hr == S_OK, func " failed with error 0x%08x \n", hr) -static void register_testentry(void) +static BOOL register_testentry(void) { - HKEY hkey,hkey2; - - RegCreateKeyA(HKEY_CLASSES_ROOT,"CLSID\\{deadcafe-beed-bead-dead-cafebeaddead}", - &hkey); - RegSetValueA(hkey,NULL,REG_SZ,"ComCat Test key",16); - RegCreateKeyA(hkey, - "Implemented Categories\\{deadcafe-0000-0000-0000-000000000000}", - &hkey2); - + HKEY hkey = 0, hkey2 = 0; + DWORD ret; + + ret = RegCreateKeyA(HKEY_CLASSES_ROOT,"CLSID\\{deadcafe-beed-bead-dead-cafebeaddead}", &hkey); + if (!ret) ret = RegSetValueA(hkey,NULL,REG_SZ,"ComCat Test key",16); + if (!ret) ret = RegCreateKeyA(hkey, + "Implemented Categories\\{deadcafe-0000-0000-0000-000000000000}", + &hkey2); RegCloseKey(hkey); RegCloseKey(hkey2); + return !ret; } static void unregister_testentry(void) @@ -106,19 +106,22 @@ static void do_enum(void) hr = IEnumGUID_Next(pIEnum,1,the_guid, &fetched); ok (fetched == 0,"Fetched wrong number of guids %u\n",fetched); IEnumGUID_Release(pIEnum); - - register_testentry(); - hr = ICatInformation_EnumClassesOfCategories(pICat, 1, the_cat, -1, NULL, - &pIEnum); - ok_ole_success(hr,"ICatInformation_EnumClassesOfCategories"); - hr = IEnumGUID_Next(pIEnum,1,the_guid, &fetched); - ok (fetched == 1,"Fetched wrong number of guids %u\n",fetched); - ok (IsEqualGUID(the_guid,&wanted_guid),"Guids do not match\n"); + if (register_testentry()) + { + hr = ICatInformation_EnumClassesOfCategories(pICat, 1, the_cat, -1, NULL, &pIEnum); + ok_ole_success(hr,"ICatInformation_EnumClassesOfCategories"); + + hr = IEnumGUID_Next(pIEnum,1,the_guid, &fetched); + ok (fetched == 1,"Fetched wrong number of guids %u\n",fetched); + ok (IsEqualGUID(the_guid,&wanted_guid),"Guids do not match\n"); + + IEnumGUID_Release(pIEnum); + unregister_testentry(); + } + else skip( "Could not register the test category\n" ); - IEnumGUID_Release(pIEnum); ICatInformation_Release(pICat); - unregister_testentry(); OleUninitialize(); } -- 2.11.4.GIT