From 086798a5d5ce8d022af547174f3ddb0b210e8a48 Mon Sep 17 00:00:00 2001 From: shefty Date: Fri, 4 Apr 2008 03:20:27 +0000 Subject: [PATCH] winverbs/test: add test for query GUIDs Signed-off-by: Sean Hefty git-svn-id: svn://openib.tc.cornell.edu/gen1@1037 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- .../winverbs/tests/wvtests/user/wv_main.cpp | 49 ++++++++++++++----- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/branches/winverbs/tests/wvtests/user/wv_main.cpp b/branches/winverbs/tests/wvtests/user/wv_main.cpp index 4f43ff63..f9a98f3e 100644 --- a/branches/winverbs/tests/wvtests/user/wv_main.cpp +++ b/branches/winverbs/tests/wvtests/user/wv_main.cpp @@ -40,6 +40,7 @@ static void ShowOptions() { cout << "usage: winverb provider [options]" << endl; cout << "provider options" << endl; + cout << "\t" << "-g list available device GUIDs" << endl; cout << "\t" << "-? display this message" << endl; } @@ -54,29 +55,53 @@ HRESULT OpenProvider(void) return hr; } -static HRESULT ProviderTest(int argc, char *argv[]) +static HRESULT ListGuids(void) { + UINT64 guids[16]; + SIZE_T size, i; HRESULT hr; - ULONG ref; - int op; - - if ((op = getopt(argc, argv, "?")) != -1) { - ShowOptions(); - return 1; - } hr = OpenProvider(); if (FAILED(hr)) { + return hr; + } + + size = sizeof guids; + hr = prov->QueryDeviceList(guids, &size); + if (FAILED(hr)){ + cout << "Error QueryDeviceList: 0x" << hex << hr << endl; goto out; } - ref = prov->AddRef(); - if (ref != 2) { - cout << "Error AddRef: " << ref << endl; + for (i = 0; i < (size / sizeof UINT64); i++) { + printf("%i. 0x%I64x\n", i, guids[i]); } +out: prov->Release(); - prov->Release(); + return hr; +} + +static HRESULT ProviderTest(int argc, char *argv[]) +{ + HRESULT hr = WV_SUCCESS; + ULONG ref; + int op; + + while ((op = getopt(argc, argv, "g?")) != -1) { + switch (op) { + case 'g': + hr = ListGuids(); + if (FAILED(hr)) { + goto out; + } + break; + default: + ShowOptions(); + return 1; + } + } + out: return hr; } -- 2.41.0