Commit 0b00e61a authored by Hans Leidekker's avatar Hans Leidekker Committed by Alexandre Julliard

adsldp/tests: Skip all remaining tests when the server is down.

There's a long timeout when the connection fails and there doesn't appear to be a way to reduce it with this API. When several of these timeouts occur the total time can exceed the timeout for the test. This patch skips all remaining tests when one of them detects that the server is down. (cherry picked from commit 39e70374)
parent 66dee620
...@@ -37,6 +37,8 @@ DEFINE_GUID(CLSID_LDAP,0x228d9a81,0xc302,0x11cf,0x9a,0xa4,0x00,0xaa,0x00,0x4a,0x ...@@ -37,6 +37,8 @@ DEFINE_GUID(CLSID_LDAP,0x228d9a81,0xc302,0x11cf,0x9a,0xa4,0x00,0xaa,0x00,0x4a,0x
DEFINE_GUID(CLSID_LDAPNamespace,0x228d9a82,0xc302,0x11cf,0x9a,0xa4,0x00,0xaa,0x00,0x4a,0x56,0x91); DEFINE_GUID(CLSID_LDAPNamespace,0x228d9a82,0xc302,0x11cf,0x9a,0xa4,0x00,0xaa,0x00,0x4a,0x56,0x91);
DEFINE_OLEGUID(CLSID_PointerMoniker,0x306,0,0); DEFINE_OLEGUID(CLSID_PointerMoniker,0x306,0,0);
static BOOL server_down;
static const struct static const struct
{ {
const WCHAR *path; const WCHAR *path;
...@@ -74,6 +76,8 @@ static void test_LDAP(void) ...@@ -74,6 +76,8 @@ static void test_LDAP(void)
BSTR path, user, password; BSTR path, user, password;
int i; int i;
if (server_down) return;
hr = CoCreateInstance(&CLSID_LDAPNamespace, 0, CLSCTX_INPROC_SERVER, &IID_IADs, (void **)&ads); hr = CoCreateInstance(&CLSID_LDAPNamespace, 0, CLSCTX_INPROC_SERVER, &IID_IADs, (void **)&ads);
ok(hr == S_OK, "got %#lx\n", hr); ok(hr == S_OK, "got %#lx\n", hr);
IADs_Release(ads); IADs_Release(ads);
...@@ -99,6 +103,7 @@ static void test_LDAP(void) ...@@ -99,6 +103,7 @@ static void test_LDAP(void)
{ {
SysFreeString(path); SysFreeString(path);
skip("server is down\n"); skip("server is down\n");
server_down = TRUE;
break; break;
} }
ok(hr == test[i].hr || hr == test[i].hr_ads_open, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr); ok(hr == test[i].hr || hr == test[i].hr_ads_open, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr);
...@@ -110,6 +115,7 @@ static void test_LDAP(void) ...@@ -110,6 +115,7 @@ static void test_LDAP(void)
{ {
SysFreeString(path); SysFreeString(path);
skip("server is down\n"); skip("server is down\n");
server_down = TRUE;
break; break;
} }
ok(hr == test[i].hr || hr == test[i].hr_ads_get, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr); ok(hr == test[i].hr || hr == test[i].hr_ads_get, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr);
...@@ -121,6 +127,7 @@ static void test_LDAP(void) ...@@ -121,6 +127,7 @@ static void test_LDAP(void)
{ {
SysFreeString(path); SysFreeString(path);
skip("server is down\n"); skip("server is down\n");
server_down = TRUE;
break; break;
} }
ok(hr == test[i].hr || hr == test[i].hr_ads_get, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr); ok(hr == test[i].hr || hr == test[i].hr_ads_get, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr);
...@@ -149,6 +156,8 @@ static void test_ParseDisplayName(void) ...@@ -149,6 +156,8 @@ static void test_ParseDisplayName(void)
ULONG count; ULONG count;
int i; int i;
if (server_down) return;
hr = CoCreateInstance(&CLSID_LDAP, 0, CLSCTX_INPROC_SERVER, &IID_IParseDisplayName, (void **)&parse); hr = CoCreateInstance(&CLSID_LDAP, 0, CLSCTX_INPROC_SERVER, &IID_IParseDisplayName, (void **)&parse);
ok(hr == S_OK, "got %#lx\n", hr); ok(hr == S_OK, "got %#lx\n", hr);
IParseDisplayName_Release(parse); IParseDisplayName_Release(parse);
...@@ -172,6 +181,7 @@ static void test_ParseDisplayName(void) ...@@ -172,6 +181,7 @@ static void test_ParseDisplayName(void)
{ {
SysFreeString(path); SysFreeString(path);
skip("server is down\n"); skip("server is down\n");
server_down = TRUE;
break; break;
} }
ok(hr == test[i].hr || hr == test[i].hr_ads_open, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr); ok(hr == test[i].hr || hr == test[i].hr_ads_open, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr);
...@@ -193,6 +203,7 @@ static void test_ParseDisplayName(void) ...@@ -193,6 +203,7 @@ static void test_ParseDisplayName(void)
if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN)) if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN))
{ {
skip("server is down\n"); skip("server is down\n");
server_down = TRUE;
break; break;
} }
todo_wine_if(i == 0 || i == 1 || i == 11 || i == 12) todo_wine_if(i == 0 || i == 1 || i == 11 || i == 12)
...@@ -237,12 +248,15 @@ static void do_search(const struct search *s) ...@@ -237,12 +248,15 @@ static void do_search(const struct search *s)
LPWSTR name; LPWSTR name;
const struct result *res; const struct result *res;
if (server_down) return;
trace("search DN %s\n", wine_dbgstr_w(s->dn)); trace("search DN %s\n", wine_dbgstr_w(s->dn));
hr = ADsGetObject(s->dn, &IID_IDirectorySearch, (void **)&ds); hr = ADsGetObject(s->dn, &IID_IDirectorySearch, (void **)&ds);
if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN)) if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN))
{ {
skip("server is down\n"); skip("server is down\n");
server_down = TRUE;
return; return;
} }
ok(hr == S_OK, "got %#lx\n", hr); ok(hr == S_OK, "got %#lx\n", hr);
...@@ -363,6 +377,8 @@ static void test_DirectorySearch(void) ...@@ -363,6 +377,8 @@ static void test_DirectorySearch(void)
ADS_SEARCH_COLUMN col; ADS_SEARCH_COLUMN col;
LPWSTR name; LPWSTR name;
if (server_down) return;
hr = ADsGetObject(L"LDAP:", &IID_IDirectorySearch, (void **)&ds); hr = ADsGetObject(L"LDAP:", &IID_IDirectorySearch, (void **)&ds);
ok(hr == E_NOINTERFACE, "got %#lx\n", hr); ok(hr == E_NOINTERFACE, "got %#lx\n", hr);
...@@ -370,6 +386,7 @@ static void test_DirectorySearch(void) ...@@ -370,6 +386,7 @@ static void test_DirectorySearch(void)
if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN)) if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN))
{ {
skip("server is down\n"); skip("server is down\n");
server_down = TRUE;
return; return;
} }
ok(hr == E_NOINTERFACE, "got %#lx\n", hr); ok(hr == E_NOINTERFACE, "got %#lx\n", hr);
...@@ -378,6 +395,7 @@ static void test_DirectorySearch(void) ...@@ -378,6 +395,7 @@ static void test_DirectorySearch(void)
if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN)) if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN))
{ {
skip("server is down\n"); skip("server is down\n");
server_down = TRUE;
return; return;
} }
ok(hr == S_OK, "got %#lx\n", hr); ok(hr == S_OK, "got %#lx\n", hr);
...@@ -492,10 +510,13 @@ static void test_DirectoryObject(void) ...@@ -492,10 +510,13 @@ static void test_DirectoryObject(void)
ADS_SEARCH_HANDLE sh; ADS_SEARCH_HANDLE sh;
ADS_SEARCH_COLUMN col; ADS_SEARCH_COLUMN col;
if (server_down) return;
hr = ADsGetObject(L"LDAP://ldap.forumsys.com/OU=scientists,DC=example,DC=com", &IID_IDirectoryObject, (void **)&dirobj); hr = ADsGetObject(L"LDAP://ldap.forumsys.com/OU=scientists,DC=example,DC=com", &IID_IDirectoryObject, (void **)&dirobj);
if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN)) if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN))
{ {
skip("server is down\n"); skip("server is down\n");
server_down = TRUE;
return; return;
} }
ok(hr == S_OK, "got %#lx\n", hr); ok(hr == S_OK, "got %#lx\n", hr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment