From 15e609ba5b5f1d4d02c9c5a90374df45644ef227 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Mon, 22 Dec 2014 07:26:37 +0100 Subject: [PATCH] slc/tests: Add tests for SLGetWindowsInformationDWORD. --- configure | 1 + configure.ac | 1 + dlls/slc/tests/Makefile.in | 5 +++ dlls/slc/tests/slc.c | 80 ++++++++++++++++++++++++++++++++++++++ include/slerror.h | 1 + 5 files changed, 88 insertions(+) create mode 100644 dlls/slc/tests/Makefile.in create mode 100644 dlls/slc/tests/slc.c diff --git a/configure b/configure index 0431209608..ae5e327a11 100755 --- a/configure +++ b/configure @@ -17530,6 +17530,7 @@ wine_fn_config_dll shlwapi enable_shlwapi implib,po wine_fn_config_test dlls/shlwapi/tests shlwapi_test wine_fn_config_dll slbcsp enable_slbcsp wine_fn_config_dll slc enable_slc implib +wine_fn_config_test dlls/slc/tests slc_test wine_fn_config_dll snmpapi enable_snmpapi implib wine_fn_config_test dlls/snmpapi/tests snmpapi_test wine_fn_config_dll softpub enable_softpub diff --git a/configure.ac b/configure.ac index a9317306c6..e8c2ae319f 100644 --- a/configure.ac +++ b/configure.ac @@ -3244,6 +3244,7 @@ WINE_CONFIG_DLL(shlwapi,,[implib,po]) WINE_CONFIG_TEST(dlls/shlwapi/tests) WINE_CONFIG_DLL(slbcsp) WINE_CONFIG_DLL(slc,,[implib]) +WINE_CONFIG_TEST(dlls/slc/tests) WINE_CONFIG_DLL(snmpapi,,[implib]) WINE_CONFIG_TEST(dlls/snmpapi/tests) WINE_CONFIG_DLL(softpub) diff --git a/dlls/slc/tests/Makefile.in b/dlls/slc/tests/Makefile.in new file mode 100644 index 0000000000..51b648cb85 --- /dev/null +++ b/dlls/slc/tests/Makefile.in @@ -0,0 +1,5 @@ +TESTDLL = slc.dll +IMPORTS = slc + +C_SRCS = \ + slc.c diff --git a/dlls/slc/tests/slc.c b/dlls/slc/tests/slc.c new file mode 100644 index 0000000000..723cd4c416 --- /dev/null +++ b/dlls/slc/tests/slc.c @@ -0,0 +1,80 @@ +/* + * Copyright 2014 Sebastian Lackner + * + * 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 "windef.h" +#include "winbase.h" +#include "winerror.h" + +#include "slpublic.h" +#include "slerror.h" + +#include + +static void test_SLGetWindowsInformationDWORD(void) +{ + static const WCHAR NonexistentLicenseValueW[] = {'N','o','n','e','x','i','s','t','e','n','t','-', + 'L','i','c','e','n','s','e','-','V','a','l','u','e',0}; + static const WCHAR KernelMUILanguageAllowedW[] = {'K','e','r','n','e','l','-','M','U','I','-', + 'L','a','n','g','u','a','g','e','-','A','l','l','o','w','e','d',0}; + static const WCHAR KernelMUINumberAllowedW[] = {'K','e','r','n','e','l','-','M','U','I','-', + 'N','u','m','b','e','r','-','A','l','l','o','w','e','d',0}; + static const WCHAR emptyW[] = {0}; + DWORD value; + HRESULT res; + + res = SLGetWindowsInformationDWORD(NonexistentLicenseValueW, NULL); + todo_wine + ok(res == E_INVALIDARG, "expected E_INVALIDARG, got %08x\n", res); + + res = SLGetWindowsInformationDWORD(NULL, &value); + todo_wine + ok(res == E_INVALIDARG, "expected E_INVALIDARG, got %08x\n", res); + + value = 0xdeadbeef; + res = SLGetWindowsInformationDWORD(NonexistentLicenseValueW, &value); + todo_wine + ok(res == SL_E_VALUE_NOT_FOUND, "expected SL_E_VALUE_NOT_FOUND, got %08x\n", res); + ok(value == 0xdeadbeef, "expected value = 0xdeadbeef, got %u\n", value); + + value = 0xdeadbeef; + res = SLGetWindowsInformationDWORD(emptyW, &value); + ok(res == SL_E_RIGHT_NOT_GRANTED || broken(res == 0xd000000d) /* Win 8 */, + "expected SL_E_RIGHT_NOT_GRANTED, got %08x\n", res); + ok(value == 0xdeadbeef, "expected value = 0xdeadbeef, got %u\n", value); + + value = 0xdeadbeef; + res = SLGetWindowsInformationDWORD(KernelMUILanguageAllowedW, &value); + todo_wine + ok(res == SL_E_DATATYPE_MISMATCHED, "expected SL_E_DATATYPE_MISMATCHED, got %08x\n", res); + ok(value == 0xdeadbeef, "expected value = 0xdeadbeef, got %u\n", value); + + value = 0xdeadbeef; + res = SLGetWindowsInformationDWORD(KernelMUINumberAllowedW, &value); + todo_wine + ok(res == S_OK, "expected S_OK, got %u\n", res); + todo_wine + ok(value != 0xdeadbeef, "expected value != 0xdeadbeef\n"); +} + + +START_TEST(slc) +{ + test_SLGetWindowsInformationDWORD(); +} diff --git a/include/slerror.h b/include/slerror.h index 9c800f6db8..8b45d99901 100644 --- a/include/slerror.h +++ b/include/slerror.h @@ -19,6 +19,7 @@ #ifndef __WINE_SLERROR_H #define __WINE_SLERROR_H +#define SL_E_VALUE_NOT_FOUND 0xC004F012 #define SL_E_RIGHT_NOT_GRANTED 0xC004F013 #define SL_E_DATATYPE_MISMATCHED 0xC004F01E