Module: wine Branch: master Commit: 1f788c0314390620ae5f8dbcbee22ba8dfc055fd URL: http://source.winehq.org/git/wine.git/?a=commit;h=1f788c0314390620ae5f8dbcbe...
Author: Alistair Leslie-Hughes leslie_alistair@hotmail.com Date: Thu Feb 16 06:36:02 2017 +0000
dpnet/tests: Add tests to show IDirectPlay8ThreadPool is a singleton object.
Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dpnet/tests/thread.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+)
diff --git a/dlls/dpnet/tests/thread.c b/dlls/dpnet/tests/thread.c index 37c226f..7129739 100644 --- a/dlls/dpnet/tests/thread.c +++ b/dlls/dpnet/tests/thread.c @@ -209,6 +209,34 @@ static void test_enum_hosts(void) CloseHandle(enumevent); }
+static void test_singleton(void) +{ + HRESULT hr; + IDirectPlay8ThreadPool *pool1, *pool2; + + hr = CoCreateInstance( &CLSID_DirectPlay8ThreadPool, NULL, CLSCTX_ALL, &IID_IDirectPlay8ThreadPool, (void**)&pool1); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = CoCreateInstance( &CLSID_DirectPlay8ThreadPool, NULL, CLSCTX_ALL, &IID_IDirectPlay8ThreadPool, (void**)&pool2); + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(pool1 != pool2, "same pointer returned.\n"); + + hr = IDirectPlay8ThreadPool_Initialize(pool1, NULL, &DirectPlayThreadHandler, 0); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IDirectPlay8ThreadPool_Initialize(pool2, NULL, &DirectPlayThreadHandler, 0); + todo_wine ok(hr == DPNERR_ALREADYINITIALIZED, "got 0x%08x\n", hr); + + hr = IDirectPlay8ThreadPool_Close(pool1, 0); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IDirectPlay8ThreadPool_Close(pool2, 0); + todo_wine ok(hr == DPNERR_UNINITIALIZED, "got 0x%08x\n", hr); + + IDirectPlay8ThreadPool_Release(pool1); + IDirectPlay8ThreadPool_Release(pool2); +} + START_TEST(thread) { HRESULT hr; @@ -251,6 +279,7 @@ START_TEST(thread)
create_threadpool(); test_enum_hosts(); + test_singleton();
CoUninitialize(); }