From 21ea5adcc788bbecd81e475277aba927ec66c860 Mon Sep 17 00:00:00 2001 From: Rob Mensching <rob@firegiant.com> Date: Mon, 3 Oct 2022 15:55:20 -0700 Subject: Run tests in bulk to improve performance The fewer executions of "dotnet test" the better so batch up calls by referencing multiple assembly DLLs. --- src/api/api.cmd | 15 +++++++-------- src/burn/burn.cmd | 24 ++++++++++++++++++++++-- src/libs/libs.cmd | 11 ++++++----- src/test/burn/test_burn.cmd | 2 +- src/test/msi/test_msi.cmd | 2 +- src/testresultfilelist.txt | 24 ++++++------------------ src/tools/tools.cmd | 8 ++++++-- src/wix/wix.cmd | 20 +++++++++++++------- 8 files changed, 62 insertions(+), 44 deletions(-) diff --git a/src/api/api.cmd b/src/api/api.cmd index d1f87f54..0c3bb31b 100644 --- a/src/api/api.cmd +++ b/src/api/api.cmd @@ -26,10 +26,12 @@ msbuild api_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\api_build.binlog || exit /b :: Test -dotnet test burn\test\WixToolsetTest.Mba.Core -c %_C% --nologo --no-build -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Mba.Core.trx" || 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 +dotnet test ^ + %_B%\net6.0\WixToolsetTest.Data.dll ^ + %_B%\net6.0\win-x86\WixToolsetTest.Mba.Core.dll ^ + %_B%\x86\BalUtilUnitTest.dll ^ + %_B%\x86\BextUtilUnitTest.dll ^ + --nologo -l "trx;LogFileName=%_L%\TestResults\api.trx" || exit /b @goto :end @@ -41,10 +43,7 @@ dotnet test wix\api_wix.sln -c %_C% --nologo --no-build -l "trx;LogFileName=%_L% @del "..\..\build\artifacts\WixToolset.Data.*.nupkg" 2> nul @del "..\..\build\artifacts\WixToolset.Extensibility.*.nupkg" 2> nul @del "..\..\build\artifacts\WixToolset.Mba.Core.*.nupkg" 2> nul -@del "%_L%\TestResults\WixToolsetTest.Mba.Core.trx" 2> nul -@del "%_L%\TestResults\BalUtilUnitTest.trx" 2> nul -@del "%_L%\TestResults\BextUtilUnitTest.trx" 2> nul -@del "%_L%\TestResults\api_wix.trx" 2> nul +@del "%_L%\TestResults\api.trx" 2> nul @rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.balutil" 2> nul @rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.bextutil" 2> nul @rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.bootstrappercore.native" 2> nul diff --git a/src/burn/burn.cmd b/src/burn/burn.cmd index 127f9253..f1753106 100644 --- a/src/burn/burn.cmd +++ b/src/burn/burn.cmd @@ -3,12 +3,20 @@ @set _C=Debug @set _L=%~dp0..\..\build\logs + :parse_args @if /i "%1"=="release" set _C=Release +@if /i "%1"=="inc" set _INC=1 +@if /i "%1"=="clean" set _CLEAN=1 @if not "%1"=="" shift & goto parse_args @set _B=%~dp0..\..\build\burn\%_C% +:: Clean + +@if "%_INC%"=="" call :clean +@if NOT "%_CLEAN%"=="" goto :end + @echo Building burn %_C% :: burn @@ -17,8 +25,20 @@ nuget restore || exit /b msbuild burn_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\burn_build.binlog || 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 +dotnet test ^ + %_B%\x86\BurnUnitTest.dll ^ + %_B%\x64\BurnUnitTest.dll ^ + --nologo -l "trx;LogFileName=%_L%\TestResults\burn.trx" || exit /b + +@goto :end + +:clean +@rd /s/q "..\..\build\burn" 2> nul +@del "..\..\build\artifacts\WixToolset.Burn.*.nupkg" 2> nul +@del "%_L%\TestResults\burn.trx" 2> nul +@rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.burn" 2> nul +@exit /b +:end @popd @endlocal diff --git a/src/libs/libs.cmd b/src/libs/libs.cmd index e9402701..51331459 100644 --- a/src/libs/libs.cmd +++ b/src/libs/libs.cmd @@ -21,9 +21,11 @@ msbuild -Restore libs_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\libs_build.binlog || exit /b -dotnet test %_B%\net6.0\WixToolsetTest.Versioning.dll --nologo -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Versioning.trx" || 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 +dotnet test ^ + %_B%\net6.0\WixToolsetTest.Versioning.dll ^ + %_B%\x86\DUtilUnitTest.dll ^ + %_B%\x64\DUtilUnitTest.dll ^ + --nologo -l "trx;LogFileName=%_L%\TestResults\libs.trx" || exit /b @goto :end @@ -32,8 +34,7 @@ dotnet test %_B%\x64\DUtilUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestRes @del "..\..\build\artifacts\WixToolset.DUtil.*.nupkg" 2> nul @del "..\..\build\artifacts\WixToolset.Versioning.*.nupkg" 2> nul @del "..\..\build\artifacts\WixToolset.WcaUtil.*.nupkg" 2> nul -@del "%_L%\TestResults\WixToolsetTest.Versioning.trx" 2> nul -@del "%_L%\TestResults\DutilUnitTest*.trx" 2> nul +@del "%_L%\TestResults\libs.trx" 2> nul @rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.dutil" 2> nul @rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.versioning" 2> nul @rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.wcautil" 2> nul diff --git a/src/test/burn/test_burn.cmd b/src/test/burn/test_burn.cmd index 72ffd448..311a6b32 100644 --- a/src/test/burn/test_burn.cmd +++ b/src/test/burn/test_burn.cmd @@ -21,7 +21,7 @@ mt.exe -manifest "WixToolsetTest.BurnE2E\testhost.longpathaware.manifest" -updat @if not "%RuntimeTestsEnabled%"=="true" goto :LExit -dotnet test -c %_C% --no-build WixToolsetTest.BurnE2E -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.BurnE2E.trx" || exit /b +dotnet test -c %_C% WixToolsetTest.BurnE2E --nologo --no-build -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.BurnE2E.trx" || exit /b :LExit @popd diff --git a/src/test/msi/test_msi.cmd b/src/test/msi/test_msi.cmd index bb9d0162..2a6f5831 100644 --- a/src/test/msi/test_msi.cmd +++ b/src/test/msi/test_msi.cmd @@ -16,7 +16,7 @@ msbuild -t:Build -Restore TestData\TestData.proj -p:Configuration=%_C% -m -bl:%_ @if not "%RuntimeTestsEnabled%"=="true" goto :LExit -dotnet test -c %_C% --no-build WixToolsetTest.MsiE2E -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.MsiE2E.trx" || exit /b +dotnet test -c %_C% WixToolsetTest.MsiE2E --nologo --no-build -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.MsiE2E.trx" || exit /b :LExit @popd diff --git a/src/testresultfilelist.txt b/src/testresultfilelist.txt index 59584e64..d3981c6e 100644 --- a/src/testresultfilelist.txt +++ b/src/testresultfilelist.txt @@ -1,24 +1,12 @@ -build/logs/TestResults/api_wix.trx -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/api.trx +build/logs/TestResults/burn.trx +build/logs/TestResults/libs.trx +build/logs/TestResults/tools.trx +build/logs/TestResults/wix_prepublish.trx +build/logs/TestResults/wix_postpublish.trx build/logs/TestResults/WixToolsetTest.Bal.trx -build/logs/TestResults/WixToolsetTest.BuildTasks.trx build/logs/TestResults/WixToolsetTest.BurnE2E.trx -build/logs/TestResults/WixToolsetTest.Converters.trx -build/logs/TestResults/WixToolsetTest.Converters.Symbolizer.trx -build/logs/TestResults/WixToolsetTest.Core.trx -build/logs/TestResults/WixToolsetTest.Core.Native.trx -build/logs/TestResults/WixToolsetTest.CoreIntegration.trx build/logs/TestResults/WixToolsetTest.Dnc.HostGenerator.trx -build/logs/TestResults/WixToolsetTest.Heat.trx -build/logs/TestResults/WixToolsetTest.HeatTasks.trx build/logs/TestResults/WixToolsetTest.ManagedHost.trx -build/logs/TestResults/WixToolsetTest.Mba.Core.trx build/logs/TestResults/WixToolsetTest.MsiE2E.trx -build/logs/TestResults/WixToolsetTest.Sdk.trx -build/logs/TestResults/WixToolsetTest.Versioning.trx build/logs/TestResults/WixToolsetTest.WixE2ETests.trx \ No newline at end of file diff --git a/src/tools/tools.cmd b/src/tools/tools.cmd index 90c10af0..2ec67f46 100644 --- a/src/tools/tools.cmd +++ b/src/tools/tools.cmd @@ -10,6 +10,8 @@ @if /i "%1"=="clean" set _CLEAN=1 @if not "%1"=="" shift & goto parse_args +@set _B=%~dp0..\..\build\tools\%_C% + :: Clean @if "%_INC%"=="" call :clean @@ -24,8 +26,10 @@ msbuild -Restore tools.sln -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L msbuild publish_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\tools_publish.binlog || exit /b :: Test -dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Heat -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Heat.trx" || exit /b -dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.HeatTasks -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.HeatTasks.trx" || exit /b +dotnet test ^ + %_B%\test\WixToolsetTest.Heat\net472\WixToolsetTest.Heat.dll ^ + %_B%\test\WixToolsetTest.HeatTasks\net472\WixToolsetTest.HeatTasks.dll ^ + --nologo -l "trx;LogFileName=%_L%\TestResults\tools.trx" || exit /b :: Pack msbuild -t:Pack WixToolset.Heat -p:Configuration=%_C% -p:NoBuild=true -nologo -m -warnaserror -bl:%_L%\tools_pack.binlog || exit /b diff --git a/src/wix/wix.cmd b/src/wix/wix.cmd index ff2043eb..e1bfe384 100644 --- a/src/wix/wix.cmd +++ b/src/wix/wix.cmd @@ -7,6 +7,7 @@ @if /i "%1"=="release" set _C=Release @if not "%1"=="" shift & goto parse_args +@set _B=%~dp0..\..\build\wix\%_C% @set _P_OBJ=%~dp0..\..\build\wix\obj\publish_t\%_C%\ @set _P=%~dp0..\..\build\wix\%_C%\publish\ @set _RCO=/S /R:1 /W:1 /NP /XO /NS /NC /NFL /NDL /NJH /NJS @@ -24,11 +25,13 @@ msbuild wix.sln -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\wix_build :: Pre-Publish Test -dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Converters -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Converters.trx" || exit /b -dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Converters.Symbolizer -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Converters.Symbolizer.trx" || exit /b -dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Core -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Core.trx" || exit /b -dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Core.Native -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Core.Native.trx" || exit /b -dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.CoreIntegration -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.CoreIntegration.trx" || exit /b +dotnet test ^ + %_B%\test\WixToolsetTest.Converters\net6.0\WixToolsetTest.Converters.dll ^ + %_B%\test\WixToolsetTest.Converters.Symbolizer\net472\WixToolsetTest.Converters.Symbolizer.dll ^ + %_B%\test\WixToolsetTest.Core\net6.0\WixToolsetTest.Core.dll ^ + %_B%\test\WixToolsetTest.Core.Native\net6.0\win-x64\WixToolsetTest.Core.Native.dll ^ + %_B%\test\WixToolsetTest.CoreIntegration\net6.0\WixToolsetTest.CoreIntegration.dll ^ + --nologo -l "trx;LogFileName=%_L%\TestResults\wix_prepublish.trx" || exit /b :: Publish @@ -50,8 +53,11 @@ msbuild -t:Publish -p:Configuration=%_C% -nologo -warnaserror WixToolset.Sdk\Wix :: Test -dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.BuildTasks -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.BuildTasks.trx" || exit /b -dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Sdk -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Sdk.trx" || exit /b +dotnet test ^ + %_B%\test\WixToolsetTest.BuildTasks\net472\win-x64\WixToolsetTest.BuildTasks.dll ^ + %_B%\test\WixToolsetTest.Sdk\net472\WixToolsetTest.Sdk.dll ^ + --nologo -l "trx;LogFileName=%_L%\TestResults\wix_postpublish.trx" || exit /b + :: Pack msbuild pack_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\wix_pack.binlog || exit /b -- cgit v1.2.3-55-g6feb