[v2 - PATCH 2/2] wmvcore/tests: Add initial tests

Andrew Eikum aeikum at codeweavers.com
Tue Apr 11 08:59:14 CDT 2017


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>

Alistair: In the future I think it's best practice not to include the
configure file changes from autoconf, as Alexandre will regenerate
that file when needed.

On Thu, Mar 30, 2017 at 10:07:06PM +0000, Alistair Leslie-Hughes wrote:
> v2 - Initial patch to keep inline with HeaderInfo/2/3 patch.
> 
> Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
> ---
>  configure                      |   3 +-
>  configure.ac                   |   3 +-
>  dlls/wmvcore/Makefile.in       |   1 +
>  dlls/wmvcore/tests/Makefile.in |   5 ++
>  dlls/wmvcore/tests/wmvcore.c   | 142 +++++++++++++++++++++++++++++++++++++++++
>  5 files changed, 152 insertions(+), 2 deletions(-)
>  create mode 100644 dlls/wmvcore/tests/Makefile.in
>  create mode 100644 dlls/wmvcore/tests/wmvcore.c
> 
> diff --git a/configure b/configure
> index c4de73b..cc37cb0 100755
> --- a/configure
> +++ b/configure
> @@ -18471,7 +18471,8 @@ wine_fn_config_dll wmiutils enable_wmiutils clean
>  wine_fn_config_test dlls/wmiutils/tests wmiutils_test
>  wine_fn_config_dll wmp enable_wmp clean
>  wine_fn_config_test dlls/wmp/tests wmp_test
> -wine_fn_config_dll wmvcore enable_wmvcore
> +wine_fn_config_dll wmvcore enable_wmvcore implib
> +wine_fn_config_test dlls/wmvcore/tests wmvcore_test
>  wine_fn_config_dll wnaspi32 enable_wnaspi32 implib
>  wine_fn_config_dll wow32 enable_win16 implib
>  wine_fn_config_dll wpc enable_wpc clean
> diff --git a/configure.ac b/configure.ac
> index 7e3f643..5f298f9 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -3519,7 +3519,8 @@ WINE_CONFIG_DLL(wmiutils,,[clean])
>  WINE_CONFIG_TEST(dlls/wmiutils/tests)
>  WINE_CONFIG_DLL(wmp,,[clean])
>  WINE_CONFIG_TEST(dlls/wmp/tests)
> -WINE_CONFIG_DLL(wmvcore)
> +WINE_CONFIG_DLL(wmvcore,,[implib])
> +WINE_CONFIG_TEST(dlls/wmvcore/tests)
>  WINE_CONFIG_DLL(wnaspi32,,[implib])
>  WINE_CONFIG_DLL(wow32,enable_win16,[implib])
>  WINE_CONFIG_DLL(wpc,,[clean])
> diff --git a/dlls/wmvcore/Makefile.in b/dlls/wmvcore/Makefile.in
> index ba3539b..0ee6f97 100644
> --- a/dlls/wmvcore/Makefile.in
> +++ b/dlls/wmvcore/Makefile.in
> @@ -1,4 +1,5 @@
>  MODULE    = wmvcore.dll
> +IMPORTLIB = wmvcore
>  IMPORTS   = kernel32
>  
>  C_SRCS = \
> diff --git a/dlls/wmvcore/tests/Makefile.in b/dlls/wmvcore/tests/Makefile.in
> new file mode 100644
> index 0000000..8054ddd
> --- /dev/null
> +++ b/dlls/wmvcore/tests/Makefile.in
> @@ -0,0 +1,5 @@
> +TESTDLL   = wmvcore.dll
> +IMPORTS   = ole32 wmvcore
> +
> +C_SRCS = \
> +	wmvcore.c
> diff --git a/dlls/wmvcore/tests/wmvcore.c b/dlls/wmvcore/tests/wmvcore.c
> new file mode 100644
> index 0000000..ef77aff
> --- /dev/null
> +++ b/dlls/wmvcore/tests/wmvcore.c
> @@ -0,0 +1,142 @@
> +/*
> + * Copyright 2017 Alistair Leslie-Hughes
> + *
> + * 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
> + */
> +#define COBJMACROS
> +#define WIN32_LEAN_AND_MEAN
> +#include "initguid.h"
> +#include "wmsdkidl.h"
> +
> +#include "wine/test.h"
> +
> +static void test_wmwriter_interfaces(void)
> +{
> +    HRESULT hr;
> +    IWMWriter          *writer;
> +    IWMHeaderInfo      *header;
> +    IWMHeaderInfo2     *header2;
> +    IWMHeaderInfo3     *header3;
> +
> +    hr = WMCreateWriter( NULL, &writer );
> +    ok(hr == S_OK, "WMCreateWriter failed 0x%08x\n", hr);
> +    if(FAILED(hr))
> +    {
> +        win_skip("Failed to create IWMWriter\n");
> +        return;
> +    }
> +
> +    hr = IWMWriter_QueryInterface(writer, &IID_IWMHeaderInfo, (void **)&header);
> +    todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr);
> +
> +    hr = IWMWriter_QueryInterface(writer, &IID_IWMHeaderInfo2, (void **)&header2);
> +    todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr);
> +
> +    hr = IWMWriter_QueryInterface(writer, &IID_IWMHeaderInfo3, (void **)&header3);
> +    todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr);
> +
> +    if(header)
> +        IWMHeaderInfo_Release(header);
> +    if(header2)
> +        IWMHeaderInfo2_Release(header2);
> +    if(header3)
> +        IWMHeaderInfo3_Release(header3);
> +    IWMWriter_Release(writer);
> +}
> +
> +static void test_wmreader_interfaces(void)
> +{
> +    HRESULT hr;
> +    IWMReader          *reader;
> +    IWMReaderAdvanced  *advanced;
> +    IWMReaderAdvanced2 *advanced2;
> +    IWMHeaderInfo      *header;
> +    IWMHeaderInfo2     *header2;
> +    IWMHeaderInfo3     *header3;
> +    IWMProfile         *profile;
> +
> +    hr = WMCreateReader( NULL, 0, &reader );
> +    ok(hr == S_OK, "WMCreateReader failed 0x%08x\n", hr);
> +    if(FAILED(hr))
> +    {
> +        win_skip("Failed to create IWMReader\n");
> +        return;
> +    }
> +
> +    hr = IWMReader_QueryInterface(reader, &IID_IWMReaderAdvanced, (void **)&advanced);
> +    ok(hr == S_OK, "Failed 0x%08x\n", hr);
> +
> +    hr = IWMReader_QueryInterface(reader, &IID_IWMReaderAdvanced2, (void **)&advanced2);
> +    ok(hr == S_OK, "Failed 0x%08x\n", hr);
> +
> +    hr = IWMReader_QueryInterface(reader, &IID_IWMHeaderInfo, (void **)&header);
> +    todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr);
> +
> +    hr = IWMReader_QueryInterface(reader, &IID_IWMHeaderInfo2, (void **)&header2);
> +    todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr);
> +
> +    hr = IWMReader_QueryInterface(reader, &IID_IWMHeaderInfo3, (void **)&header3);
> +    todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr);
> +
> +    hr = IWMReader_QueryInterface(reader, &IID_IWMProfile, (void **)&profile);
> +    todo_wine ok(hr == S_OK, "Failed 0x%08x\n", hr);
> +
> +    if(advanced)
> +        IWMReaderAdvanced_Release(advanced);
> +    if(advanced2)
> +        IWMReaderAdvanced2_Release(advanced2);
> +    if(profile)
> +        IWMProfile_Release(profile);
> +    if(header)
> +        IWMHeaderInfo_Release(header);
> +    if(header2)
> +        IWMHeaderInfo2_Release(header2);
> +    if(header3)
> +        IWMHeaderInfo3_Release(header3);
> +
> +    IWMReader_Release(reader);
> +}
> +
> +void test_profile_manager_interfaces(void)
> +{
> +    HRESULT hr;
> +    IWMProfileManager  *profile;
> +
> +    hr = WMCreateProfileManager(&profile);
> +    ok(hr == S_OK, "WMCreateProfileManager failed 0x%08x\n", hr);
> +    if(FAILED(hr))
> +    {
> +        win_skip("Failed to create IWMProfileManager\n");
> +        return;
> +    }
> +
> +    IWMProfileManager_Release(profile);
> +}
> +
> +START_TEST(wmvcore)
> +{
> +    HRESULT hr;
> +
> +    hr = CoInitialize(0);
> +    ok(hr == S_OK, "failed to init com\n");
> +    if(hr != S_OK)
> +        return;
> +
> +    test_wmreader_interfaces();
> +    test_wmwriter_interfaces();
> +    test_profile_manager_interfaces();
> +
> +    CoUninitialize();
> +}
> -- 
> 1.9.1
> 
> 
> 



More information about the wine-patches mailing list