From 4d94ed9fd1d9cb69337134561c520a24a91b91b2 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Thu, 16 Jun 2022 14:41:27 -0500 Subject: Use dotnet test on C++/CLI test projects to get trx logs. --- src/api/api.cmd | 6 ++- .../burn/test/BalUtilUnitTest/BAFunctionsTests.cpp | 49 ++++++++++++++++++++++ .../test/BalUtilUnitTest/BalUtilUnitTest.vcxproj | 4 ++ .../BalUtilUnitTest.vcxproj.filters | 12 ++++++ .../BootstrapperApplicationTests.cpp | 45 ++++++++++++++++++++ .../burn/test/BalUtilUnitTest/TestBAFunctions.h | 10 +++++ .../BalUtilUnitTest/TestBootstrapperApplication.h | 9 ++++ src/api/burn/test/BalUtilUnitTest/precomp.h | 14 ++++--- .../test/BextUtilUnitTest/BextUtilUnitTest.vcxproj | 2 + .../BextUtilUnitTest.vcxproj.filters | 6 +++ .../test/BextUtilUnitTest/BundleExtensionTests.cpp | 44 +++++++++++++++++++ .../test/BextUtilUnitTest/TestBundleExtension.h | 9 ++++ src/api/burn/test/BextUtilUnitTest/precomp.h | 8 ++-- src/burn/burn.cmd | 6 ++- src/libs/libs.cmd | 6 ++- src/testresultfilelist.txt | 12 +++--- 16 files changed, 222 insertions(+), 20 deletions(-) create mode 100644 src/api/burn/test/BalUtilUnitTest/BAFunctionsTests.cpp create mode 100644 src/api/burn/test/BalUtilUnitTest/BootstrapperApplicationTests.cpp create mode 100644 src/api/burn/test/BalUtilUnitTest/TestBAFunctions.h create mode 100644 src/api/burn/test/BalUtilUnitTest/TestBootstrapperApplication.h create mode 100644 src/api/burn/test/BextUtilUnitTest/BundleExtensionTests.cpp create mode 100644 src/api/burn/test/BextUtilUnitTest/TestBundleExtension.h diff --git a/src/api/api.cmd b/src/api/api.cmd index ffc403d5..82c6ddf8 100644 --- a/src/api/api.cmd +++ b/src/api/api.cmd @@ -7,6 +7,8 @@ @if /i "%1"=="release" set _C=Release @if not "%1"=="" shift & goto parse_args +@set _B=%~dp0..\..\build\api\%_C% + @echo Building api %_C% :: restore @@ -17,8 +19,8 @@ msbuild api_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\api_bu :: test dotnet test burn\test\WixToolsetTest.Mba.Core -c %_C% --nologo --no-build -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Mba.Core.trx" || exit /b -msbuild burn\test\BalUtilUnitTest -t:Test -p:Configuration=%_C% -nologo -p:CppCliTestResultsFile="%_L%\TestResults\BalUtilUnitTest.xunit2.xml" || exit /b -msbuild burn\test\BextUtilUnitTest -t:Test -p:Configuration=%_C% -nologo -p:CppCliTestResultsFile="%_L%\TestResults\BextUtilUnitTest.xunit2.xml" || exit /b +dotnet test %_B%\x86\BalUtilUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestResults\BalUtilUnitTest.trx" || exit /b +dotnet test %_B%\x86\BextUtilUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestResults\BextUtilUnitTest.trx" || exit /b dotnet test wix\api_wix.sln -c %_C% --nologo --no-build -l "trx;LogFileName=%_L%\TestResults\api_wix.trx" || exit /b @popd diff --git a/src/api/burn/test/BalUtilUnitTest/BAFunctionsTests.cpp b/src/api/burn/test/BalUtilUnitTest/BAFunctionsTests.cpp new file mode 100644 index 00000000..9920564e --- /dev/null +++ b/src/api/burn/test/BalUtilUnitTest/BAFunctionsTests.cpp @@ -0,0 +1,49 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +#include "precomp.h" + +using namespace System; +using namespace Xunit; +using namespace WixBuildTools::TestSupport; +using namespace WixBuildTools::TestSupport::XunitExtensions; + +namespace BalUtilTests +{ + public ref class BAFunctions + { + public: + [Fact] + void CanCreateTestBAFunctions() + { + HRESULT hr = S_OK; + BOOTSTRAPPER_CREATE_ARGS bootstrapperArgs = { }; + BOOTSTRAPPER_COMMAND bootstrapperCommand = { }; + BA_FUNCTIONS_CREATE_ARGS args = { }; + BA_FUNCTIONS_CREATE_RESULTS results = { }; + IBootstrapperEngine* pEngine = NULL; + IBAFunctions* pBAFunctions = NULL; + + bootstrapperArgs.cbSize = sizeof(bootstrapperArgs); + bootstrapperArgs.pCommand = &bootstrapperCommand; + + args.cbSize = sizeof(args); + args.pBootstrapperCreateArgs = &bootstrapperArgs; + + results.cbSize = sizeof(results); + + try + { + hr = BalInitializeFromCreateArgs(&bootstrapperArgs, &pEngine); + NativeAssert::Succeeded(hr, "Failed to create engine."); + + hr = CreateBAFunctions(NULL, pEngine, &args, &results, &pBAFunctions); + NativeAssert::Succeeded(hr, "Failed to create BAFunctions."); + } + finally + { + ReleaseObject(pEngine); + ReleaseObject(pBAFunctions); + } + } + }; +} diff --git a/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj b/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj index 113edeaa..d6c03a43 100644 --- a/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj +++ b/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj @@ -37,6 +37,8 @@ + + Create @@ -48,6 +50,8 @@ + + diff --git a/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj.filters b/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj.filters index 85f31076..0b3b60be 100644 --- a/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj.filters +++ b/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj.filters @@ -15,6 +15,12 @@ + + Source Files + + + Source Files + Source Files @@ -29,5 +35,11 @@ Header Files + + Header Files + + + Header Files + \ No newline at end of file diff --git a/src/api/burn/test/BalUtilUnitTest/BootstrapperApplicationTests.cpp b/src/api/burn/test/BalUtilUnitTest/BootstrapperApplicationTests.cpp new file mode 100644 index 00000000..396682ee --- /dev/null +++ b/src/api/burn/test/BalUtilUnitTest/BootstrapperApplicationTests.cpp @@ -0,0 +1,45 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +#include "precomp.h" + +using namespace System; +using namespace Xunit; +using namespace WixBuildTools::TestSupport; +using namespace WixBuildTools::TestSupport::XunitExtensions; + +namespace BalUtilTests +{ + public ref class BootstrapperApplication + { + public: + [Fact] + void CanCreateTestBootstrapperApplication() + { + HRESULT hr = S_OK; + BOOTSTRAPPER_CREATE_ARGS args = { }; + BOOTSTRAPPER_COMMAND command = { }; + BOOTSTRAPPER_CREATE_RESULTS results = { }; + IBootstrapperEngine* pEngine = NULL; + IBootstrapperApplication* pApplication = NULL; + + args.cbSize = sizeof(args); + args.pCommand = &command; + + results.cbSize = sizeof(results); + + try + { + hr = BalInitializeFromCreateArgs(&args, &pEngine); + NativeAssert::Succeeded(hr, "Failed to create engine."); + + hr = CreateBootstrapperApplication(pEngine, &args, &results, &pApplication); + NativeAssert::Succeeded(hr, "Failed to create BootstrapperApplication."); + } + finally + { + ReleaseObject(pEngine); + ReleaseObject(pApplication); + } + } + }; +} diff --git a/src/api/burn/test/BalUtilUnitTest/TestBAFunctions.h b/src/api/burn/test/BalUtilUnitTest/TestBAFunctions.h new file mode 100644 index 00000000..41f36df8 --- /dev/null +++ b/src/api/burn/test/BalUtilUnitTest/TestBAFunctions.h @@ -0,0 +1,10 @@ +#pragma once +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +HRESULT CreateBAFunctions( + __in HMODULE hModule, + __in IBootstrapperEngine* pEngine, + __in const BA_FUNCTIONS_CREATE_ARGS* pArgs, + __in BA_FUNCTIONS_CREATE_RESULTS* pResults, + __out IBAFunctions** ppApplication + ); diff --git a/src/api/burn/test/BalUtilUnitTest/TestBootstrapperApplication.h b/src/api/burn/test/BalUtilUnitTest/TestBootstrapperApplication.h new file mode 100644 index 00000000..c173e9ee --- /dev/null +++ b/src/api/burn/test/BalUtilUnitTest/TestBootstrapperApplication.h @@ -0,0 +1,9 @@ +#pragma once +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +HRESULT CreateBootstrapperApplication( + __in IBootstrapperEngine* pEngine, + __in const BOOTSTRAPPER_CREATE_ARGS* pArgs, + __inout BOOTSTRAPPER_CREATE_RESULTS* pResults, + __out IBootstrapperApplication** ppApplication + ); diff --git a/src/api/burn/test/BalUtilUnitTest/precomp.h b/src/api/burn/test/BalUtilUnitTest/precomp.h index ce893906..218cab68 100644 --- a/src/api/burn/test/BalUtilUnitTest/precomp.h +++ b/src/api/burn/test/BalUtilUnitTest/precomp.h @@ -18,11 +18,15 @@ #include #include -#include "IBootstrapperEngine.h" -#include "IBootstrapperApplication.h" -#include "balutil.h" -#include "balretry.h" -#include "BAFunctions.h" +#include +#include +#include +#include +#include +#include + +#include "TestBAFunctions.h" +#include "TestBootstrapperApplication.h" #pragma managed #include diff --git a/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj b/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj index b24d1fad..c27fb442 100644 --- a/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj +++ b/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj @@ -36,6 +36,7 @@ + Create @@ -46,6 +47,7 @@ + diff --git a/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj.filters b/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj.filters index f1711f81..73f2194d 100644 --- a/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj.filters +++ b/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj.filters @@ -15,6 +15,9 @@ + + Source Files + Source Files @@ -26,5 +29,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/src/api/burn/test/BextUtilUnitTest/BundleExtensionTests.cpp b/src/api/burn/test/BextUtilUnitTest/BundleExtensionTests.cpp new file mode 100644 index 00000000..fde9d2b6 --- /dev/null +++ b/src/api/burn/test/BextUtilUnitTest/BundleExtensionTests.cpp @@ -0,0 +1,44 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +#include "precomp.h" + +using namespace System; +using namespace Xunit; +using namespace WixBuildTools::TestSupport; +using namespace WixBuildTools::TestSupport::XunitExtensions; + +namespace BextUtilTests +{ + public ref class BundleExtension + { + public: + [Fact] + void CanCreateTestBundleExtension() + { + HRESULT hr = S_OK; + BUNDLE_EXTENSION_CREATE_ARGS args = { }; + BUNDLE_EXTENSION_CREATE_RESULTS results = { }; + IBundleExtensionEngine* pEngine = NULL; + IBundleExtension* pBundleExtension = NULL; + + args.cbSize = sizeof(args); + args.wzBundleExtensionDataPath = L"test.xml"; + + results.cbSize = sizeof(results); + + try + { + hr = BextInitializeFromCreateArgs(&args, &pEngine); + NativeAssert::Succeeded(hr, "Failed to create engine."); + + hr = TestBundleExtensionCreate(pEngine, &args, &results, &pBundleExtension); + NativeAssert::Succeeded(hr, "Failed to create BootstrapperApplication."); + } + finally + { + ReleaseObject(pEngine); + ReleaseObject(pBundleExtension); + } + } + }; +} diff --git a/src/api/burn/test/BextUtilUnitTest/TestBundleExtension.h b/src/api/burn/test/BextUtilUnitTest/TestBundleExtension.h new file mode 100644 index 00000000..5cfe8b39 --- /dev/null +++ b/src/api/burn/test/BextUtilUnitTest/TestBundleExtension.h @@ -0,0 +1,9 @@ +#pragma once +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +HRESULT TestBundleExtensionCreate( + __in IBundleExtensionEngine* pEngine, + __in const BUNDLE_EXTENSION_CREATE_ARGS* pArgs, + __inout BUNDLE_EXTENSION_CREATE_RESULTS* pResults, + __out IBundleExtension** ppBundleExtension + ); diff --git a/src/api/burn/test/BextUtilUnitTest/precomp.h b/src/api/burn/test/BextUtilUnitTest/precomp.h index a6586f70..cf5256b8 100644 --- a/src/api/burn/test/BextUtilUnitTest/precomp.h +++ b/src/api/burn/test/BextUtilUnitTest/precomp.h @@ -11,9 +11,11 @@ #include #include -#include "IBundleExtensionEngine.h" -#include "IBundleExtension.h" -#include "bextutil.h" +#include +#include +#include + +#include "TestBundleExtension.h" #pragma managed #include diff --git a/src/burn/burn.cmd b/src/burn/burn.cmd index 60640b08..127f9253 100644 --- a/src/burn/burn.cmd +++ b/src/burn/burn.cmd @@ -7,6 +7,8 @@ @if /i "%1"=="release" set _C=Release @if not "%1"=="" shift & goto parse_args +@set _B=%~dp0..\..\build\burn\%_C% + @echo Building burn %_C% :: burn @@ -15,8 +17,8 @@ nuget restore || exit /b msbuild burn_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\burn_build.binlog || exit /b -msbuild test\BurnUnitTest -t:Test -p:Configuration=%_C% -p:Platform=Win32 -nologo -p:CppCliTestResultsFile="%_L%\TestResults\BurnUnitTest32.xunit2.xml" || exit /b -msbuild test\BurnUnitTest -t:Test -p:Configuration=%_C% -p:Platform=x64 -nologo -p:CppCliTestResultsFile="%_L%\TestResults\BurnUnitTest64.xunit2.xml" || exit /b +dotnet test %_B%\x86\BurnUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestResults\BurnUnitTest32.trx" || exit /b +dotnet test %_B%\x64\BurnUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestResults\BurnUnitTest64.trx" || exit /b @popd @endlocal diff --git a/src/libs/libs.cmd b/src/libs/libs.cmd index f44d88e4..e3107fbc 100644 --- a/src/libs/libs.cmd +++ b/src/libs/libs.cmd @@ -7,12 +7,14 @@ @if /i "%1"=="release" set _C=Release @if not "%1"=="" shift & goto parse_args +@set _B=%~dp0..\..\build\libs\%_C% + @echo Building libs %_C% msbuild -Restore libs_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\libs_build.binlog || exit /b -msbuild dutil\test\DutilUnitTest -t:Test -p:Configuration=%_C% -p:Platform=Win32 -nologo -p:CppCliTestResultsFile="%_L%\TestResults\DutilUnitTest32.xunit2.xml" || exit /b -msbuild dutil\test\DutilUnitTest -t:Test -p:Configuration=%_C% -p:Platform=x64 -nologo -p:CppCliTestResultsFile="%_L%\TestResults\DutilUnitTest64.xunit2.xml" || exit /b +dotnet test %_B%\x86\DUtilUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestResults\DutilUnitTest32.trx" || exit /b +dotnet test %_B%\x64\DUtilUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestResults\DutilUnitTest64.trx" || exit /b @popd @endlocal diff --git a/src/testresultfilelist.txt b/src/testresultfilelist.txt index ca6e5a81..fa3a0734 100644 --- a/src/testresultfilelist.txt +++ b/src/testresultfilelist.txt @@ -1,10 +1,10 @@ build/logs/TestResults/api_wix.trx -build/logs/TestResults/BalUtilUnitTest.xunit2.xml -build/logs/TestResults/BextUtilUnitTest.xunit2.xml -build/logs/TestResults/BurnUnitTest32.xunit2.xml -build/logs/TestResults/BurnUnitTest64.xunit2.xml -build/logs/TestResults/DutilUnitTest32.xunit2.xml -build/logs/TestResults/DutilUnitTest64.xunit2.xml +build/logs/TestResults/BalUtilUnitTest.trx +build/logs/TestResults/BextUtilUnitTest.trx +build/logs/TestResults/BurnUnitTest32.trx +build/logs/TestResults/BurnUnitTest64.trx +build/logs/TestResults/DutilUnitTest32.trx +build/logs/TestResults/DutilUnitTest64.trx build/logs/TestResults/WixToolsetTest.Bal.trx build/logs/TestResults/WixToolsetTest.BuildTasks.trx build/logs/TestResults/WixToolsetTest.BurnE2E.trx -- cgit v1.2.3-55-g6feb