$(OutputPath)$(MSBuildProjectName).cmd $(OutputPath)$([System.IO.Path]::GetFilenameWithoutExtension("$(CLRTestProjectToRun)")).exe $(OutputPath)$(MSBuildProjectName).$(OutputType.ToLower()) true debuggerFullPath Run testcases under debugger. true envScriptFullPath Run the specified script to set environment variables before running the test. true CoreRootFullPath Set CORE_ROOT to the specified value before running the test. $(MSBuildProjectName).reflect.xml nul REM Use hints for reflection roots, if provided in $(ReflectionRootsXml) IF EXIST $(ReflectionRootsXml) set ReflectionRoots=-x $(ReflectionRootsXml) REM Include all .exe files in this directory as entry points (some tests had multiple .exe file modules) FOR /F "delims=" %%E IN ('dir /b *.exe *.dll') DO SET Assemblies=!Assemblies! -a %%~nE REM Run dotnet-linker REM Run the Linker such that all assemblies except System.Private.Corlib.dll are linked REM Debug symbol generation needs some fixes, and is currently omitted. REM Once this is fixed, add -b true option. ECHO %ILLINK% -out %LinkBin% -d %CORE_ROOT% -c link -l none -t !Assemblies! !ReflectionRoots! %ILLINK% -out %LinkBin% -d %CORE_ROOT% -c link -l none -t !Assemblies! !ReflectionRoots! IF NOT "!ERRORLEVEL!"=="0" ( ECHO ILLINK FAILED !ERRORLEVEL! IF NOT defined KeepLinkedBinaries ( IF EXIST %LinkBin% rmdir /s /q %LinkBin% ) popd Exit /b 1 ) REM Copy CORECLR native binaries to %LinkBin%, so that we can run the test based on that directory copy %CORE_ROOT%\clrjit.dll %LinkBin% > nul 2> nul copy %CORE_ROOT%\coreclr.dll %LinkBin% > nul 2> nul copy %CORE_ROOT%\mscorrc.dll %LinkBin% > nul 2> nul copy %CORE_ROOT%\CoreRun.exe %LinkBin% > nul 2> nul REM Copy some files that may be arguments copy *.txt %LinkBin% > nul 2> nul set ExePath=%LinkBin%\$(InputAssemblyName) set CORE_ROOT=%~dp0%LinkBin% ) ]]> <_CLRTestRunFile Condition="'$(CLRTestIsHosted)'=='true'">"%CORE_ROOT%\corerun.exe" @(CLRTestBatchEnvironmentVariable -> '%(Identity)', '%0d%0a') <_RequiredProperties Include="_CLRTestRunFile"> $(_CLRTestRunFile) 'set cond=0 IF /I [%1] == [-%(Identity)] set cond=1 IF /I [%1] == [/%(Identity)] set cond=1 IF %cond% EQU 1 ( %(Command) shift IF /I [%(HasParam)] == [true] shift goto NextArg )',' ') if NOT "%1" == "" ( set CLRTestExecutionArguments=%* goto :ArgsDone ) goto ArgsDone :USAGE ECHO.Usage ECHO %0 @(BatchCLRTestExecutionScriptArgument -> '[-%(Identity) %(ParamName)]', ' ') ECHO. ECHO - OPTIONS - @(BatchCLRTestExecutionScriptArgument -> 'ECHO -%(Identity) %(ParamName) ECHO %(Description)', ' ') popd Exit /b 1 :ArgsDone $(BatchCLRTestArgPrep) ]]> <_CLRTestExecutionScriptText>