Skip to content

Commit

Permalink
Adapt to uapaot runner changes
Browse files Browse the repository at this point in the history
  • Loading branch information
ViktorHofer committed Jan 18, 2019
1 parent 3bdfe07 commit b7bf4c4
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 31 deletions.
2 changes: 1 addition & 1 deletion src/Microsoft.DotNet.CoreFxTesting/build/core/Core.targets
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
<RunScriptHost Condition="'$(BuildingNETCoreAppVertical)' == 'true' AND '$(TargetOS)' != 'Windows_NT'">$(RunScriptHostDir)dotnet</RunScriptHost>

<!-- In UAP we don't want the repro steps printed. -->
<RunScriptOutputEchoes Condition="'$(BuildingUAPVertical)' != 'true' AND '$(UseDotNetNativeToolchain)' != 'true'">true</RunScriptOutputEchoes>
<RunScriptOutputEchoes Condition="'$(BuildingUAPVertical)' != 'true'">true</RunScriptOutputEchoes>
</PropertyGroup>

<Target Name="PublishSupplementalTestData"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<TestRunnerConfigPath>$(TestAssetsDir)xunit.runner.json</TestRunnerConfigPath>
<TestResultsName>testResults.xml</TestResultsName>

<GenerateRunScriptDependsOn>ValidateTargetOSTrait;$(GenerateRunScriptDependsOn);SetupILCTestProfile;</GenerateRunScriptDependsOn>
<GenerateRunScriptDependsOn>ValidateTargetOSTrait;$(GenerateRunScriptDependsOn);</GenerateRunScriptDependsOn>
</PropertyGroup>

<!-- Test runner config file. -->
Expand Down
49 changes: 20 additions & 29 deletions src/Microsoft.DotNet.CoreFxTesting/build/core/test/Test.targets
Original file line number Diff line number Diff line change
Expand Up @@ -111,42 +111,33 @@
<!-- We use the netcoreapp runner for ILC but change its extension to .exe to satisfy ILC. -->
<OriginalTestRunnerName>xunit.console.dll</OriginalTestRunnerName>

<RemoteExecutorConsoleAppName>RemoteExecutorConsoleApp.exe</RemoteExecutorConsoleAppName>
<RemoteExecutorConsoleAppNameWithoutExtension>RemoteExecutorConsoleApp</RemoteExecutorConsoleAppNameWithoutExtension>
<_TestILCFolder>%RUNTIME_PATH%\TestILC</_TestILCFolder>
<ILCBuildType Condition="'$(ILCBuildType)' == ''">ret</ILCBuildType>
<_UseSharedAssemblies Condition="'$(EnableMultiFileILCTests)' == 'true'">-useSharedAssemblies</_UseSharedAssemblies>
<_ILCWin32 Condition="'$(BuildingUAPAOTVertical)' != 'true'">-win32</_ILCWin32>
</PropertyGroup>

<ItemGroup>
<RunScriptCommands Include="for /R &quot;$(ILCFXInputFolder)&quot; %25%25I in (%2A) do @if not exist &quot;%25%25~nxI&quot; (mklink /H &quot;%25%25~nxI&quot; &quot;%25%25I&quot; 1>NUL)" />
<RunScriptCommands Include="copy /y $(_TestILCFolder)\default.rd.xml %EXECUTION_DIR%" />
<RunScriptCommands Include="move /y $(OriginalTestRunnerName) $(TestRunnerName)" />
<RunScriptCommands Include="if exist %EXECUTION_DIR%int rmdir /S /Q %EXECUTION_DIR%int" />
<RunScriptCommands Include="if exist %EXECUTION_DIR%native rmdir /S /Q %EXECUTION_DIR%native" />

<RunScriptCommands Include="call $(_TestILCFolder)\ilc.exe -ExeName $(TestRunnerName) -in %EXECUTION_DIR% -out %EXECUTION_DIR%int\$(TestRunnerName)\ -usedefaultpinvoke -buildtype $(ILCBuildType) -v diag $(_UseSharedAssemblies) $(_ILCWin32)" />
<RunScriptCommands Include="set ILCERRORLEVEL=%ERRORLEVEL%" />
<RunScriptCommands Include="if NOT [%ILCERRORLEVEL%] == [0] exit /b %ILCERRORLEVEL%" />
<RunScriptCommands Include="robocopy /S /NP %EXECUTION_DIR%int\$(TestRunnerName)\ %EXECUTION_DIR%native\" />

<RunScriptCommands Include="copy /y $(_TestILCFolder)\CRT\vcruntime140_app.dll %EXECUTION_DIR%native" />
<RunScriptCommands Include="echo > %EXECUTION_DIR%\native\$(TestAssembly)"/>
<RunScriptCommands Include="cd native"/>

<!-- These will cause failures if execution is skipped, such as on ARM -->
<PostRunScriptCommands Condition="'$(ArchGroup)' != 'arm'" Include="copy /y $(TestResultsName) %EXECUTION_DIR%\" />
</ItemGroup>
</When>

</Choose>

<Target Name="SetupILCTestProfile" Condition="'$(UseDotNetNativeToolchain)' == 'true'">

<ItemGroup>
<TargetExecutableNames Include="$(TestRunnerName)"/>
<TargetExecutableNames Condition="'%(ProjectReference.Filename)' == '$(RemoteExecutorConsoleAppNameWithoutExtension)'" Include="$(RemoteExecutorConsoleAppName)"/>

<RunScriptCommands Include="for /R &quot;$(ILCFXInputFolder)&quot; %25%25I in (%2A) do @if not exist &quot;%25%25~nxI&quot; (mklink /H &quot;%25%25~nxI&quot; &quot;%25%25I&quot; 1>NUL)" />
<RunScriptCommands Include="copy /y $(_TestILCFolder)\default.rd.xml %EXECUTION_DIR%" />
<RunScriptCommands Include="move /y $(OriginalTestRunnerName) $(TestRunnerName)" />
<RunScriptCommands Include="if exist %EXECUTION_DIR%int rmdir /S /Q %EXECUTION_DIR%int" />
<RunScriptCommands Include="if exist %EXECUTION_DIR%native rmdir /S /Q %EXECUTION_DIR%native" />
<RunScriptCommands Include="@(TargetExecutableNames -> '
call $(_TestILCFolder)\ilc.exe -ExeName %(Identity) -in %EXECUTION_DIR% -out %EXECUTION_DIR%int\%(Identity)\ -usedefaultpinvoke:false -buildtype $(ILCBuildType) -v diag $(_UseSharedAssemblies) $(_ILCWin32)
set ILCERRORLEVEL=%ERRORLEVEL%
if NOT [%ILCERRORLEVEL%] == [0] exit /b %ILCERRORLEVEL%
robocopy /S /NP %EXECUTION_DIR%int\%(Identity)\ %EXECUTION_DIR%native\
')"/>
<RunScriptCommands Include="copy /y $(_TestILCFolder)\CRT\vcruntime140_app.dll %EXECUTION_DIR%native" />
<RunScriptCommands Include="echo > %EXECUTION_DIR%\native\$(TestAssembly)"/>
<RunScriptCommands Include="cd native"/>

<!-- These will cause failures if execution is skipped, such as on ARM -->
<PostRunScriptCommands Condition="'$(ArchGroup)' != 'arm'" Include="copy /y $(TestResultsName) %EXECUTION_DIR%\" />
</ItemGroup>

</Target>

</Project>
5 changes: 5 additions & 0 deletions src/Microsoft.DotNet.XUnitConsoleRunner/src/ConsoleRunner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,11 @@ List<IRunnerReporter> GetAvailableRunnerReporters()
var result = new List<IRunnerReporter>();

var runnerPath = Path.GetDirectoryName(typeof(Program).GetTypeInfo().Assembly.Location);
// Fix path on UWP .NET Native
if (string.IsNullOrEmpty(runnerPath))
{
runnerPath = AppDomain.CurrentDomain.BaseDirectory;
}

foreach (var dllFile in Directory.GetFiles(runnerPath, "*.dll").Select(f => Path.Combine(runnerPath, f)))
{
Expand Down

0 comments on commit b7bf4c4

Please sign in to comment.