зеркало из https://github.com/dotnet/fsharp.git
remove RunTests.cmd
This commit is contained in:
Родитель
ea2f73756f
Коммит
f649cfc3fb
11
DEVGUIDE.md
11
DEVGUIDE.md
|
@ -7,6 +7,8 @@ To learn what F# is and why it's interesting, go to [fsharp.org](http://fsharp.o
|
|||
|
||||
The primary technical documents for the F# compiler code are
|
||||
|
||||
* [The F# Language and Core Library RFC Process](http://fsharp.github.io/2016/09/26/fsharp-rfc-process.html)
|
||||
|
||||
* [The F# Language Specification](http://fsharp.org/specs/language-spec/)
|
||||
|
||||
* [The F# Compiler Technical Guide](http://fsharp.github.io/2015/09/29/fsharp-compiler-guide.html)
|
||||
|
@ -34,7 +36,7 @@ There are various qualifiers:
|
|||
build.cmd release -- build release (the default)
|
||||
build.cmd debug -- build debug instead of release
|
||||
|
||||
build.cmd net40 -- build .NET Framework compiler
|
||||
build.cmd net40 -- build .NET Framework compiler (the default)
|
||||
build.cmd coreclr -- build .NET Core compiler
|
||||
build.cmd vs -- build the Visual F# IDE Tools
|
||||
build.cmd pcls -- build the PCL FSharp.Core libraries
|
||||
|
@ -49,11 +51,8 @@ There are various qualifiers:
|
|||
build.cmd all test -- build all, run all tests
|
||||
|
||||
build.cmd test-smoke -- build, run smoke tests
|
||||
build.cmd test-coreunit -- build, run FSharp.Core tests
|
||||
build.cmd test-coreclr -- build, run .NET Core tests
|
||||
build.cmd test-pcls -- build, run PCL tests
|
||||
build.cmd test-fsharp -- build, run tests\fsharp suite
|
||||
build.cmd test-fsharpqa -- build, run tests\fsharpqa suite
|
||||
build.cmd test-net40-fsharp-suite -- build, run tests\fsharp suite for .NET Framework
|
||||
build.cmd test-net40-fsharpqa-suite -- build, run tests\fsharpqa suite for .NET Framework
|
||||
|
||||
**Notes**
|
||||
To build and test Visual F# IDE Tools, you must use [Visual Studio "vNext" (aka "Dev15")](https://www.visualstudio.com/en-us/downloads/visual-studio-next-downloads-vs.aspx). This is the one after Visual Studio 2015 (aka "Dev 14"). You must also install Visual Studio SDK (also called _Visual Studio Extensibility SDK_ on the Visual Studio installer) before building Visual F# IDE Tools.
|
||||
|
|
|
@ -63,9 +63,9 @@ For the FSharp and FSharpQA suites, the list of test areas and their associated
|
|||
tests\test.lst // FSharp suite
|
||||
tests\fsharpqa\source\test.lst // FSharpQA suite
|
||||
|
||||
Tags are in the left column, paths to to corresponding test folders are in the right column. If no tags are specified to `RunTests.cmd`, all tests will be run.
|
||||
Tags are in the left column, paths to to corresponding test folders are in the right column. If no tags are specifie, all tests will be run.
|
||||
|
||||
If you want to re-run a particular test area, the easiest way to do so is to set a temporary tag for that area in test.lst (e.g. "RERUN"), then call `RunTests.cmd <debug|release> <fsharp|fsharpqa> RERUN`.
|
||||
If you want to re-run a particular test area, the easiest way to do so is to set a temporary tag for that area in test.lst (e.g. "RERUN").
|
||||
|
||||
### Logs and output
|
||||
|
||||
|
@ -83,5 +83,5 @@ All test execution logs and result files will be dropped into the `tests\TestRes
|
|||
|
||||
* Making the tests run faster
|
||||
* NGen-ing the F# bits (fsc, fsi, FSharp.Core, etc) will result in tests executing much faster. Make sure you run `src\update.cmd` with the `-ngen` flag before running tests.
|
||||
* The FSharp and FSharpQA suites will run test cases in parallel by default. You can comment out the relevant line in `RunTests.cmd` (look for `PARALLEL_ARG`) to disable this.
|
||||
* By default, tests from the FSharpQA suite are run using a persistent, hosted version of the compiler. This speeds up test execution, as there is no need for the `fsc.exe` process to spin up repeatedly. To disable this, uncomment the relevant line in `RunTests.cmd` (look for `HOSTED_COMPILER`).
|
||||
* The FSharp and FSharpQA suites will run test cases in parallel by default. You can comment out the relevant line (look for `PARALLEL_ARG`) to disable this.
|
||||
* By default, tests from the FSharpQA suite are run using a persistent, hosted version of the compiler. This speeds up test execution, as there is no need for the `fsc.exe` process to spin up repeatedly. To disable this, uncomment the relevant line (look for `HOSTED_COMPILER`).
|
||||
|
|
330
build.cmd
330
build.cmd
|
@ -1,5 +1,7 @@
|
|||
@if "%_echo%"=="" echo off
|
||||
|
||||
setlocal enableDelayedExpansion
|
||||
|
||||
:ARGUMENTS_VALIDATION
|
||||
|
||||
if /I "%1" == "--help" (goto :USAGE)
|
||||
|
@ -40,7 +42,7 @@ echo.
|
|||
echo The example below run pcls, vs and qa:
|
||||
echo.
|
||||
echo build.cmd pcls vs debug
|
||||
exit /b 1
|
||||
goto :success
|
||||
|
||||
:ARGUMENTS_OK
|
||||
|
||||
|
@ -69,16 +71,14 @@ set SKIP_EXPENSIVE_TESTS=1
|
|||
|
||||
REM ------------------ Parse all arguments -----------------------
|
||||
|
||||
setlocal enableDelayedExpansion
|
||||
|
||||
set _autoselect=1
|
||||
set _autoselect_tests=0
|
||||
set /a counter=0
|
||||
for /l %%x in (1 1 9) do (
|
||||
set /a counter=!counter!+1
|
||||
call :SET_CONFIG %%!counter! "!counter!"
|
||||
call :PROCESS_ARG %%!counter! "!counter!"
|
||||
)
|
||||
for %%i in (%BUILD_FSC_DEFAULT%) do ( call :SET_CONFIG %%i )
|
||||
for %%i in (%BUILD_FSC_DEFAULT%) do ( call :PROCESS_ARG %%i )
|
||||
|
||||
REM apply defaults
|
||||
|
||||
|
@ -107,23 +107,17 @@ if /i '%_autoselect_tests%' == '1' (
|
|||
)
|
||||
)
|
||||
|
||||
setlocal disableDelayedExpansion
|
||||
echo.
|
||||
|
||||
rem disable setup build by setting FSC_BUILD_SETUP=0
|
||||
if /i '%FSC_BUILD_SETUP%' == '' (set FSC_BUILD_SETUP=1)
|
||||
goto :MAIN
|
||||
|
||||
REM ------------------ Procedure to parse one argument -----------------------
|
||||
|
||||
:SET_CONFIG
|
||||
:PROCESS_ARG
|
||||
set ARG=%~1
|
||||
if "%ARG%" == "1" if "%2" == "" (set ARG=default)
|
||||
if "%2" == "" if not "%ARG%" == "default" goto :EOF
|
||||
|
||||
echo Parse argument %ARG%
|
||||
|
||||
|
||||
if /i '%ARG%' == 'net40' (
|
||||
set _autoselect=0
|
||||
set BUILD_NET40=1
|
||||
|
@ -138,7 +132,6 @@ if /i '%ARG%' == 'coreclr' (
|
|||
if /i '%ARG%' == 'pcls' (
|
||||
set _autoselect=0
|
||||
set BUILD_PORTABLE=1
|
||||
set TEST_PORTABLE_COREUNIT_SUITE=1
|
||||
)
|
||||
|
||||
if /i '%ARG%' == 'vs' (
|
||||
|
@ -308,6 +301,10 @@ if /i '%ARG%' == 'publicsign' (
|
|||
)
|
||||
|
||||
goto :EOF
|
||||
:: Note: "goto :EOF" returns from an in-batchfile "call" command
|
||||
:: in preference to returning from the entire batch file.
|
||||
|
||||
REM ------------------ Report config -----------------------
|
||||
|
||||
:MAIN
|
||||
|
||||
|
@ -398,7 +395,8 @@ if defined APPVEYOR (
|
|||
set _msbuildexe=%_msbuildexe% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
|
||||
)
|
||||
)
|
||||
set msbuildflags=/maxcpucount %_nrswitch% /nologo
|
||||
REM set msbuildflags=/maxcpucount %_nrswitch% /nologo
|
||||
set msbuildflags=%_nrswitch% /nologo
|
||||
set _ngenexe="%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\ngen.exe"
|
||||
if not exist %_ngenexe% echo Error: Could not find ngen.exe. && goto :failure
|
||||
|
||||
|
@ -538,107 +536,311 @@ if '%BUILD_CORECLR%' == '1' (
|
|||
)
|
||||
|
||||
|
||||
if 'TEST_NET40_COMPILERUNIT_SUITE' == '0' and 'TEST_PORTABLE_COREUNIT_SUITE' == '0' and 'TEST_CORECLR_COREUNIT_SUITE' == '0' and 'TEST_VS_IDEUNIT_SUITE' == '0' and 'TEST_NET40_FSHARP_SUITE' == '0' and 'TEST_NET40_FSHARPQA_SUITE' == '0' goto :finished
|
||||
if 'TEST_NET40_COMPILERUNIT_SUITE' == '0' and 'TEST_PORTABLE_COREUNIT_SUITE' == '0' and 'TEST_CORECLR_COREUNIT_SUITE' == '0' and 'TEST_VS_IDEUNIT_SUITE' == '0' and 'TEST_NET40_FSHARP_SUITE' == '0' and 'TEST_NET40_FSHARPQA_SUITE' == '0' goto :success
|
||||
|
||||
echo ---------------- Done with update, starting tests -----------------------
|
||||
|
||||
|
||||
pushd tests
|
||||
|
||||
set NUNITPATH=%~dp0tests\fsharpqa\testenv\bin\nunit\
|
||||
set NUNIT3_CONSOLE=%~dp0packages\NUnit.Console.3.0.0\tools\nunit3-console.exe
|
||||
set link_exe=%~dp0packages\VisualCppTools.14.0.24519-Pre\lib\native\bin\link.exe
|
||||
if not exist "%link_exe%" (
|
||||
set saved_errorlevel=1
|
||||
echo Error: failed to find '%link_exe%' use nuget to restore the VisualCppTools package
|
||||
goto :failed_tests
|
||||
)
|
||||
|
||||
if /I not '%single_threaded%' == 'true' (set PARALLEL_ARG=-procs:%NUMBER_OF_PROCESSORS%) else set PARALLEL_ARG=-procs:0
|
||||
|
||||
if "%SKIP_EXPENSIVE_TESTS%" == "1" (
|
||||
set EXCLUDE_ARG_NUNIT=--where "cat != Expensive"
|
||||
set EXCLUDE_ARG_RUNALL=-nottags:Expensive
|
||||
)
|
||||
|
||||
set FSCBINPATH=%~dp0%BUILD_CONFIG%\net40\bin
|
||||
set FSI_TOOL=%_fsiexe%
|
||||
set RESULTSDIR=%~dp0tests\TestResults
|
||||
if not exist "%RESULTSDIR%" (mkdir "%RESULTSDIR%")
|
||||
|
||||
ECHO FSCBINPATH=%FSCBINPATH%
|
||||
ECHO RESULTSDIR=%RESULTSDIR%
|
||||
ECHO FSI_TOOL=%FSI_TOOL%
|
||||
ECHO link_exe=%link_exe%
|
||||
ECHO NUNIT3_CONSOLE=%NUNIT3_CONSOLE%
|
||||
ECHO NUNITPATH=%NUNITPATH%
|
||||
|
||||
REM ---------------- net40-fsharp-suite -----------------------
|
||||
|
||||
|
||||
if '%TEST_NET40_FSHARP_SUITE%' == '1' (
|
||||
echo call RunTests.cmd %BUILD_CONFIG% net40-fsharp-suite %TEST_TAGS%
|
||||
call RunTests.cmd %BUILD_CONFIG% net40-fsharp-suite %TEST_TAGS%
|
||||
@if ERRORLEVEL 1 (
|
||||
set XMLFILE=%RESULTSDIR%\net40-fsharp-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\net40-fsharp-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\net40-fsharp-suite-errors.log
|
||||
|
||||
echo "%NUNIT3_CONSOLE%" --verbose "%FSCBINPATH%\FSharp.Tests.FSharp.dll" --framework:V4.0 %EXCLUDE_ARG_NUNIT% --work:"%FSCBINPATH%" --output:"!OUTPUTFILE!" --err:"!ERRORFILE!" --result:"!XMLFILE!;format=nunit2"
|
||||
"%NUNIT3_CONSOLE%" --verbose "%FSCBINPATH%\FSharp.Tests.FSharp.dll" --framework:V4.0 %EXCLUDE_ARG_NUNIT% --work:"%FSCBINPATH%" --output:"!OUTPUTFILE!" --err:"!ERRORFILE!" --result:"!XMLFILE!;format=nunit2"
|
||||
|
||||
call :UPLOAD_TEST_RESULTS "!XMLFILE!" "!OUTPUTFILE!" "!ERRORFILE!"
|
||||
|
||||
if NOT '!saved_errorlevel!' == '0' (
|
||||
type testresults\net40-fsharp-suite-errors.log
|
||||
echo Error: 'Running tests net40-fsharp-suite %TEST_TAGS%' failed
|
||||
echo Error: 'Running tests net40-fsharp-suite' failed
|
||||
goto :failed_tests
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
REM ---------------- net40-fsharpqa-suite -----------------------
|
||||
|
||||
set OSARCH=%PROCESSOR_ARCHITECTURE%
|
||||
|
||||
rem Set this to 1 in order to use an external compiler host process
|
||||
rem This only has an effect when running the FSHARPQA tests, but can
|
||||
rem greatly speed up execution since fsc.exe does not need to be spawned thousands of times
|
||||
set HOSTED_COMPILER=1
|
||||
|
||||
set X86_PROGRAMFILES=%ProgramFiles%
|
||||
if "%OSARCH%"=="AMD64" set X86_PROGRAMFILES=%ProgramFiles(x86)%
|
||||
|
||||
set SYSWOW64=.
|
||||
if "%OSARCH%"=="AMD64" set SYSWOW64=SysWoW64
|
||||
|
||||
if not "%OSARCH%"=="x86" set REGEXE32BIT=%WINDIR%\syswow64\reg.exe
|
||||
|
||||
FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\NETFXSDK\4.6\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v8.1A\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||
|
||||
set PATH=%PATH%;%WINSDKNETFXTOOLS%
|
||||
for /d %%i in (%WINDIR%\Microsoft.NET\Framework\v4.0.?????) do set CORDIR=%%i
|
||||
set PATH=%PATH%;%CORDIR%
|
||||
|
||||
set REGEXE32BIT=reg.exe
|
||||
|
||||
IF NOT DEFINED SNEXE32 IF EXIST "%WINSDKNETFXTOOLS%sn.exe" set SNEXE32=%WINSDKNETFXTOOLS%sn.exe
|
||||
IF NOT DEFINED SNEXE64 IF EXIST "%WINSDKNETFXTOOLS%x64\sn.exe" set SNEXE64=%WINSDKNETFXTOOLS%x64\sn.exe
|
||||
IF NOT DEFINED ildasm IF EXIST "%WINSDKNETFXTOOLS%ildasm.exe" set ildasm=%WINSDKNETFXTOOLS%ildasm.exe
|
||||
|
||||
|
||||
if '%TEST_NET40_FSHARPQA_SUITE%' == '1' (
|
||||
echo call RunTests.cmd %BUILD_CONFIG% net40-fsharpqa-suite %TEST_TAGS%
|
||||
call RunTests.cmd %BUILD_CONFIG% net40-fsharpqa-suite %TEST_TAGS%
|
||||
@if ERRORLEVEL 1 (
|
||||
echo type testresults\net40-fsharpqa-suite-results.log
|
||||
type testresults\net40-fsharpqa-suite-results.log
|
||||
echo type testresults\net40-fsharpqa-suite-errors.log
|
||||
type testresults\net40-fsharpqa-suite-errors.log
|
||||
echo Error: 'Running tests net40-fsharpqa-suite %TEST_TAGS%' failed
|
||||
|
||||
set FSC=!FSCBINPATH!\fsc.exe
|
||||
set PATH=!FSCBINPATH!;!PATH!
|
||||
|
||||
set FSCVPREVBINPATH=!X86_PROGRAMFILES!\Microsoft SDKs\F#\4.0\Framework\v4.0
|
||||
set FSCVPREV=!FSCVPREVBINPATH!\fsc.exe
|
||||
|
||||
REM == VS-installed paths to FSharp.Core.dll
|
||||
set FSCOREDLLPATH=!X86_PROGRAMFILES!\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.4.1.0
|
||||
set FSCOREDLL20PATH=!X86_PROGRAMFILES!\Reference Assemblies\Microsoft\FSharp\.NETFramework\v2.0\2.3.0.0
|
||||
set FSCOREDLLPORTABLEPATH=!X86_PROGRAMFILES!\Reference Assemblies\Microsoft\FSharp\.NETPortable\3.47.41.0
|
||||
set FSCOREDLLNETCOREPATH=!X86_PROGRAMFILES!\Reference Assemblies\Microsoft\FSharp\.NETCore\3.7.41.0
|
||||
set FSCOREDLLNETCORE78PATH=!X86_PROGRAMFILES!\Reference Assemblies\Microsoft\FSharp\.NETCore\3.78.41.0
|
||||
set FSCOREDLLNETCORE259PATH=!X86_PROGRAMFILES!\Reference Assemblies\Microsoft\FSharp\.NETCore\3.259.41.0
|
||||
set FSDATATPPATH=!X86_PROGRAMFILES!\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.0.0\Type Providers
|
||||
set FSCOREDLLVPREVPATH=!X86_PROGRAMFILES!\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.4.0.0
|
||||
|
||||
REM == open source logic
|
||||
if exist "!FSCBinPath!\FSharp.Core.dll" set FSCOREDLLPATH=!FSCBinPath!
|
||||
if exist "!FSCBinPath!\..\..\net20\bin\FSharp.Core.dll" set FSCOREDLL20PATH=!FSCBinPath!\..\..\net20\bin
|
||||
if exist "!FSCBinPath!\..\..\portable47\bin\FSharp.Core.dll" set FSCOREDLLPORTABLEPATH=!FSCBinPath!\..\..\portable47\bin
|
||||
if exist "!FSCBinPath!\..\..\portable7\bin\FSharp.Core.dll" set FSCOREDLLNETCOREPATH=!FSCBinPath!\..\..\portable7\bin
|
||||
IF exist "!FSCBinPath!\..\..\portable78\bin\FSharp.Core.dll" set FSCOREDLLNETCORE78PATH=!FSCBinPath!\..\..\portable78\bin
|
||||
IF exist "!FSCBinPath!\..\..\portable259\bin\FSharp.Core.dll" set FSCOREDLLNETCORE259PATH=!FSCBinPath!\..\..\portable259\bin
|
||||
|
||||
set FSCOREDLLPATH=!FSCOREDLLPATH!\FSharp.Core.dll
|
||||
set FSCOREDLL20PATH=!FSCOREDLL20PATH!\FSharp.Core.dll
|
||||
set FSCOREDLLPORTABLEPATH=!FSCOREDLLPORTABLEPATH!\FSharp.Core.dll
|
||||
set FSCOREDLLNETCOREPATH=!FSCOREDLLNETCOREPATH!\FSharp.Core.dll
|
||||
set FSCOREDLLNETCORE78PATH=!FSCOREDLLNETCORE78PATH!\FSharp.Core.dll
|
||||
set FSCOREDLLNETCORE259PATH=!FSCOREDLLNETCORE259PATH!\FSharp.Core.dll
|
||||
set FSCOREDLLVPREVPATH=!FSCOREDLLVPREVPATH!\FSharp.Core.dll
|
||||
|
||||
where.exe perl > NUL 2> NUL
|
||||
if errorlevel 1 (
|
||||
echo Error: perl is not in the PATH
|
||||
goto :failed_tests
|
||||
)
|
||||
|
||||
set OUTPUTFILE=net40-fsharpqa-suite-results.log
|
||||
set ERRORFILE=net40-fsharpqa-suite-errors.log
|
||||
set FAILENV=net40-fsharpqa-suite-errors
|
||||
|
||||
|
||||
pushd %~dp0tests\fsharpqa\source
|
||||
echo perl %~dp0tests\fsharpqa\testenv\bin\runall.pl -resultsroot %RESULTSDIR% -results !OUTPUTFILE! -log !ERRORFILE! -fail !FAILENV! -cleanup:no %INCLUDE_ARG_RUNALL% %EXCLUDE_ARG_RUNALL% %PARALLEL_ARG%
|
||||
perl %~dp0tests\fsharpqa\testenv\bin\runall.pl -resultsroot %RESULTSDIR% -results !OUTPUTFILE! -log !ERRORFILE! -fail !FAILENV! -cleanup:no %INCLUDE_ARG_RUNALL% %EXCLUDE_ARG_RUNALL% %PARALLEL_ARG%
|
||||
|
||||
popd
|
||||
if ERRORLEVEL 1 (
|
||||
type "!OUTPUTFILE!"
|
||||
type "!ERRORFILE!"
|
||||
echo Error: 'Running tests net40-fsharpqa-suite' failed
|
||||
goto :failed_tests
|
||||
)
|
||||
)
|
||||
|
||||
REM ---------------- net40-compilerunit-suite -----------------------
|
||||
|
||||
if '%TEST_NET40_COMPILERUNIT_SUITE%' == '1' (
|
||||
echo call RunTests.cmd %BUILD_CONFIG% net40-compilerunit-suite %TEST_TAGS%
|
||||
call RunTests.cmd %BUILD_CONFIG% net40-compilerunit-suite %TEST_TAGS%
|
||||
@if ERRORLEVEL 1 (
|
||||
type testresults\net40-compilerunit-suite-output.log
|
||||
type testresults\net40-compilerunit-suite-errors.log
|
||||
set XMLFILE=%RESULTSDIR%\net40-compilerunit-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\net40-compilerunit-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\net40-compilerunit-suite-errors.log
|
||||
|
||||
echo "%NUNIT3_CONSOLE%" --verbose --framework:V4.0 %EXCLUDE_ARG_NUNIT% --result:"!XMLFILE!;format=nunit2" --output:"!OUTPUTFILE!" --err:"!ERRORFILE!" --work:"%FSCBINPATH%" "%FSCBINPATH%\..\..\net40\bin\FSharp.Compiler.Unittests.dll"
|
||||
"%NUNIT3_CONSOLE%" --verbose --framework:V4.0 %EXCLUDE_ARG_NUNIT% --result:"!XMLFILE!;format=nunit2" --output:"!OUTPUTFILE!" --err:"!ERRORFILE!" --work:"%FSCBINPATH%" "%FSCBINPATH%\..\..\net40\bin\FSharp.Compiler.Unittests.dll"
|
||||
|
||||
call :UPLOAD_TEST_RESULTS "!XMLFILE!" "!OUTPUTFILE!" "!ERRORFILE!"
|
||||
if NOT '!saved_errorlevel!' == '0' (
|
||||
type "!OUTPUTFILE!"
|
||||
type "!ERRORFILE!"
|
||||
echo Error: 'Running tests net40-compilerunit-suite' failed
|
||||
goto :failed_tests
|
||||
)
|
||||
)
|
||||
|
||||
REM ---------------- net40-coreunit-suite -----------------------
|
||||
|
||||
if '%TEST_NET40_COREUNIT_SUITE%' == '1' (
|
||||
echo call RunTests.cmd %BUILD_CONFIG% net40-coreunit-suite %TEST_TAGS%
|
||||
call RunTests.cmd %BUILD_CONFIG% net40-coreunit-suite %TEST_TAGS%
|
||||
@if ERRORLEVEL 1 (
|
||||
type testresults\net40-coreunit-suite-output.log
|
||||
type testresults\net40-coreunit-suite-errors.log
|
||||
set XMLFILE=%RESULTSDIR%\net40-coreunit-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\net40-coreunit-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\net40-coreunit-suite-errors.log
|
||||
|
||||
echo "%NUNIT3_CONSOLE%" --verbose --framework:V4.0 %EXCLUDE_ARG_NUNIT% --result:"!XMLFILE!;format=nunit2" --output:"!OUTPUTFILE!" --err:"!ERRORFILE!" --work:"%FSCBINPATH%" "%FSCBINPATH%\FSharp.Core.Unittests.dll"
|
||||
"%NUNIT3_CONSOLE%" --verbose --framework:V4.0 %EXCLUDE_ARG_NUNIT% --result:"!XMLFILE!;format=nunit2" --output:"!OUTPUTFILE!" --err:"!ERRORFILE!" --work:"%FSCBINPATH%" "%FSCBINPATH%\..\..\net40\bin\FSharp.Core.Unittests.dll"
|
||||
|
||||
call :UPLOAD_TEST_RESULTS "!XMLFILE!" "!OUTPUTFILE!" "!ERRORFILE!"
|
||||
if NOT '!saved_errorlevel!' == '0' (
|
||||
type "!OUTPUTFILE!"
|
||||
type "!ERRORFILE!"
|
||||
echo Error: 'Running tests net40-coreunit-suite' failed
|
||||
goto :failed_tests
|
||||
)
|
||||
)
|
||||
|
||||
REM ---------------- portable-coreunit-suite -----------------------
|
||||
|
||||
if '%TEST_PORTABLE_COREUNIT_SUITE%' == '1' (
|
||||
echo call RunTests.cmd %BUILD_CONFIG% portable-coreunit-suite %TEST_TAGS%
|
||||
call RunTests.cmd %BUILD_CONFIG% portable-coreunit-suite %TEST_TAGS%
|
||||
@if ERRORLEVEL 1 (
|
||||
@echo "type testresults\portable-coreunit-suite-output.log "
|
||||
@echo "type testresults\portable-coreunit-suite-errors.log "
|
||||
type testresults\portable-coreunit-suite-errors.log
|
||||
set XMLFILE=%RESULTSDIR%\portable-coreunit-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\portable-coreunit-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\portable-coreunit-suite-errors.log
|
||||
|
||||
echo "%NUNIT3_CONSOLE%" /framework:V4.0 /result="!XMLFILE!;format=nunit2" /output="!OUTPUTFILE!" /err="!ERRORFILE!" /work="%FSCBINPATH%" "%FSCBINPATH%\..\..\portable7\bin\FSharp.Core.Unittests.dll" "%FSCBINPATH%\..\..\portable47\bin\FSharp.Core.Unittests.dll" "%FSCBINPATH%\..\..\portable78\bin\FSharp.Core.Unittests.dll" "%FSCBINPATH%\..\..\portable259\bin\FSharp.Core.Unittests.dll"
|
||||
"%NUNIT3_CONSOLE%" /framework:V4.0 /result="!XMLFILE!;format=nunit2" /output="!OUTPUTFILE!" /err="!ERRORFILE!" /work="%FSCBINPATH%" "%FSCBINPATH%\..\..\portable7\bin\FSharp.Core.Unittests.dll" "%FSCBINPATH%\..\..\portable47\bin\FSharp.Core.Unittests.dll" "%FSCBINPATH%\..\..\portable78\bin\FSharp.Core.Unittests.dll" "%FSCBINPATH%\..\..\portable259\bin\FSharp.Core.Unittests.dll"
|
||||
|
||||
call :UPLOAD_TEST_RESULTS "!XMLFILE!" "!OUTPUTFILE!" "!ERRORFILE!"
|
||||
if NOT '!saved_errorlevel!' == '0' (
|
||||
type "!OUTPUTFILE!"
|
||||
type "!ERRORFILE!"
|
||||
echo Error: 'Running tests portable-coreunit-suite' failed
|
||||
goto :failed_tests
|
||||
)
|
||||
)
|
||||
|
||||
REM ---------------- coreclr-coreunit-suite -----------------------
|
||||
|
||||
if '%TEST_CORECLR_COREUNIT_SUITE%' == '1' (
|
||||
echo call RunTests.cmd %BUILD_CONFIG% coreclr-coreunit-suite %TEST_TAGS%
|
||||
call RunTests.cmd %BUILD_CONFIG% coreclr-coreunit-suite %TEST_TAGS%
|
||||
@if ERRORLEVEL 1 (
|
||||
type testresults\coreclr-coreunit-suite-output.log
|
||||
type testresults\coreclr-coreunit-suite-errors.log
|
||||
echo Error: 'Running tests coreclr-coreunit-suite %TEST_TAGS%' failed
|
||||
|
||||
set XMLFILE=%RESULTSDIR%\coreclr-coreunit-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\coreclr-coreunit-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\coreclr-coreunit-suite-errors.log
|
||||
|
||||
set architecture=win7-x64
|
||||
set CORERUNPATH=%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\!architecture!
|
||||
|
||||
echo "!CORERUNPATH!\corerun.exe" "%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\fsharp.core.unittests\FSharp.Core.Unittests.exe"
|
||||
"!CORERUNPATH!\corerun.exe" "%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\fsharp.core.unittests\FSharp.Core.Unittests.exe"
|
||||
|
||||
rem call :UPLOAD_TEST_RESULTS "!XMLFILE!" "!OUTPUTFILE!" "!ERRORFILE!"
|
||||
|
||||
if ERRORLEVEL 1 (
|
||||
rem type "!OUTPUTFILE!"
|
||||
rem type "!ERRORFILE!"
|
||||
echo Error: 'Running tests coreclr-coreunit-suite' failed
|
||||
goto :failed_tests
|
||||
)
|
||||
)
|
||||
|
||||
REM ---------------- coreclr-fsharp-suite -----------------------
|
||||
|
||||
if '%TEST_CORECLR_FSHARP_SUITE%' == '1' (
|
||||
echo call RunTests.cmd %BUILD_CONFIG% coreclr-fsharp-suite %TEST_TAGS%
|
||||
call RunTests.cmd %BUILD_CONFIG% coreclr-fsharp-suite %TEST_TAGS%
|
||||
@if ERRORLEVEL 1 (
|
||||
type testresults\coreclr-fsharp-suite-output.log
|
||||
type testresults\coreclr-fsharp-suite-errors.log
|
||||
echo Error: 'Running tests coreclr-fsharp-suite %TEST_TAGS%' failed
|
||||
set single_threaded=true
|
||||
set permutations=FSC_CORECLR
|
||||
set XMLFILE=%RESULTSDIR%\coreclr-fsharp-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\coreclr-fsharp-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\coreclr-fsharp-suite-errors.log
|
||||
|
||||
echo "%NUNIT3_CONSOLE%" --verbose "%FSCBINPATH%\..\..\coreclr\bin\FSharp.Tests.FSharp.dll" --framework:V4.0 %EXCLUDE_ARG_NUNIT% --work:"%FSCBINPATH%" --output:"!OUTPUTFILE!" --err:"!ERRORFILE!" --result:"!XMLFILE!;format=nunit2"
|
||||
"%NUNIT3_CONSOLE%" --verbose "%FSCBINPATH%\..\..\coreclr\bin\FSharp.Tests.FSharp.dll" --framework:V4.0 %EXCLUDE_ARG_NUNIT% --work:"%FSCBINPATH%" --output:"!OUTPUTFILE!" --err:"!ERRORFILE!" --result:"!XMLFILE!;format=nunit2"
|
||||
|
||||
call :UPLOAD_TEST_RESULTS "!XMLFILE!" "!OUTPUTFILE!" "!ERRORFILE!"
|
||||
if NOT '!saved_errorlevel!' == '0' (
|
||||
type "!OUTPUTFILE!"
|
||||
type "!ERRORFILE!"
|
||||
echo Error: 'Running tests coreclr-fsharp-suite' failed
|
||||
goto :failed_tests
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
REM ---------------- vs-ideunit-suite -----------------------
|
||||
|
||||
if '%TEST_VS_IDEUNIT_SUITE%' == '1' (
|
||||
echo call RunTests.cmd %BUILD_CONFIG% vs-ideunit-suite %TEST_TAGS%
|
||||
call RunTests.cmd %BUILD_CONFIG% vs-ideunit-suite %TEST_TAGS%
|
||||
@if ERRORLEVEL 1 (
|
||||
type testresults\vs-ideunit-suite-output.log
|
||||
type testresults\vs-ideunit-suite-errors.log
|
||||
echo Error: 'Running tests vs-ideunit-suite %TEST_TAGS%' failed
|
||||
set XMLFILE=%RESULTSDIR%\vs-ideunit-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\vs-ideunit-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\vs-ideunit-suite-errors.log
|
||||
|
||||
pushd %FSCBINPATH%
|
||||
echo "%NUNIT3_CONSOLE%" --verbose --x86 --framework:V4.0 %EXCLUDE_ARG_NUNIT% --result:"!XMLFILE!;format=nunit2" --output:"!OUTPUTFILE!" --err:"!ERRORFILE!" --work:"%FSCBINPATH%" --workers=1 --agents=1 --full "%FSCBINPATH%\VisualFSharp.Unittests.dll"
|
||||
"%NUNIT3_CONSOLE%" --verbose --x86 --framework:V4.0 %EXCLUDE_ARG_NUNIT% --result:"!XMLFILE!;format=nunit2" --output:"!OUTPUTFILE!" --err:"!ERRORFILE!" --work:"%FSCBINPATH%" --workers=1 --agents=1 --full "%FSCBINPATH%\VisualFSharp.Unittests.dll"
|
||||
popd
|
||||
call :UPLOAD_TEST_RESULTS "!XMLFILE!" "!OUTPUTFILE!" "!ERRORFILE!"
|
||||
if NOT '!saved_errorlevel!' == '0' (
|
||||
type "!OUTPUTFILE!"
|
||||
type "!ERRORFILE!"
|
||||
echo Error: 'Running tests vs-ideunit-suite' failed
|
||||
goto :failed_tests
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
:finished
|
||||
@echo "Finished"
|
||||
popd
|
||||
goto :eof
|
||||
goto :success
|
||||
|
||||
REM ------ upload test results procedure -------------------------------------
|
||||
|
||||
:UPLOAD_TEST_RESULTS
|
||||
|
||||
set saved_errorlevel=%errorlevel%
|
||||
echo Saved errorlevel %saved_errorlevel%
|
||||
|
||||
rem See <http://www.appveyor.com/docs/environment-variables>
|
||||
if not defined APPVEYOR goto :SKIP_APPVEYOR_UPLOAD
|
||||
|
||||
echo powershell -File Upload-Results.ps1 "%~1"
|
||||
powershell -File Upload-Results.ps1 "%~1"
|
||||
|
||||
:SKIP_APPVEYOR_UPLOAD
|
||||
|
||||
goto :EOF
|
||||
:: Note: "goto :EOF" returns from an in-batchfile "call" command
|
||||
:: in preference to returning from the entire batch file.
|
||||
|
||||
REM ------ exit -------------------------------------
|
||||
|
||||
:failed_tests
|
||||
popd
|
||||
endlocal
|
||||
exit /b 1
|
||||
|
||||
:failure
|
||||
endlocal
|
||||
exit /b 1
|
||||
|
||||
:success
|
||||
endlocal
|
||||
exit /b 0
|
||||
|
|
|
@ -157,7 +157,7 @@
|
|||
}
|
||||
|
||||
var fileContents = stringBuilder.ToString();
|
||||
AssemblyFileVersionPath = Path.Combine(Path.GetTempPath(), string.Join(".", AssemblyName, "AssemblyFileVersion", Language));
|
||||
AssemblyFileVersionPath = Path.Combine(Path.GetTempPath(), string.Join(".", AssemblyName, ProductVersion, "AssemblyFileVersion", Language));
|
||||
|
||||
if (File.Exists(AssemblyFileVersionPath) && File.ReadAllText(AssemblyFileVersionPath) == fileContents)
|
||||
{
|
||||
|
|
|
@ -1,289 +0,0 @@
|
|||
@if "%_echo%"=="" echo off
|
||||
setlocal
|
||||
|
||||
set FLAVOR=%1
|
||||
if /I "%FLAVOR%" == "debug" (goto :FLAVOR_OK)
|
||||
if /I "%FLAVOR%" == "release" (goto :FLAVOR_OK)
|
||||
goto :USAGE
|
||||
|
||||
:FLAVOR_OK
|
||||
|
||||
set NUNITPATH=%~dp0fsharpqa\testenv\bin\nunit\
|
||||
SET NUNIT3_CONSOLE=%~dp0..\packages\NUnit.Console.3.0.0\tools\nunit3-console.exe
|
||||
SET FSI_TOOL=%~dp0..\%FLAVOR%\net40\bin\Fsi.exe
|
||||
|
||||
set link_exe=%~dp0..\packages\VisualCppTools.14.0.24519-Pre\lib\native\bin\link.exe
|
||||
if not exist "%link_exe%" (
|
||||
set saved_errorlevel=1
|
||||
echo Error: failed to find '%link_exe%' use nuget to restore the VisualCppTools package
|
||||
goto :FINISHED
|
||||
)
|
||||
|
||||
|
||||
if /I not '%single_threaded%' == 'true' (set PARALLEL_ARG=-procs:%NUMBER_OF_PROCESSORS%) else set PARALLEL_ARG=-procs:0
|
||||
|
||||
rem This can be set to 1 to reduce the number of permutations used and avoid some of the extra-time-consuming tests
|
||||
if "%SKIP_EXPENSIVE_TESTS%" == "1" (
|
||||
set EXCLUDE_ARG_NUNIT=--where "cat != Expensive"
|
||||
set EXCLUDE_ARG_RUNALL=-nottags:Expensive
|
||||
)
|
||||
|
||||
rem Set this to 1 in order to use an external compiler host process
|
||||
rem This only has an effect when running the FSHARPQA tests, but can
|
||||
rem greatly speed up execution since fsc.exe does not need to be spawned thousands of times
|
||||
set HOSTED_COMPILER=1
|
||||
|
||||
rem path to fsc.exe which will be used by tests
|
||||
set FSCBINPATH=%~dp0..\%FLAVOR%\net40\bin
|
||||
ECHO %FSCBINPATH%
|
||||
|
||||
rem folder where test logs/results will be dropped
|
||||
set RESULTSDIR=%~dp0TestResults
|
||||
if not exist "%RESULTSDIR%" (mkdir "%RESULTSDIR%")
|
||||
|
||||
if /I "%2" == "net40-fsharp-suite" (goto :NET40_FSHARP_SUITE)
|
||||
|
||||
if /I "%2" == "coreclr-fsharp-suite" (goto :CORECLR_FSHARP_SUITE)
|
||||
|
||||
if /I "%2" == "net40-fsharpqa-suite" (goto :NET40_FSHARPQA_SUITE)
|
||||
|
||||
if /I "%2" == "net40-fsharpqa-suite-downtarget" (goto :NET40_FSHARPQA_SUITE)
|
||||
|
||||
if /I "%2" == "net40-compilerunit-suite" (
|
||||
set compilerunitsuffix=net40
|
||||
goto :COMPILERUNIT_SUITE
|
||||
)
|
||||
|
||||
if /I "%2" == "portable-coreunit-suite" (
|
||||
goto :PORTABLE_COREUNIT_SUITE
|
||||
)
|
||||
|
||||
if /I "%2" == "net40-coreunit-suite" (
|
||||
goto :NET40_COREUNIT_SUITE
|
||||
)
|
||||
if /I "%2" == "coreclr-coreunit-suite" (
|
||||
goto :CORECLR_COREUNIT_SUITE
|
||||
)
|
||||
if /I "%2" == "vs-ideunit-suite" (goto :VS_IDEUNIT_SUITE)
|
||||
|
||||
REM ----------------------------------------------------------------------------
|
||||
|
||||
:USAGE
|
||||
|
||||
echo Usage:
|
||||
echo.
|
||||
echo RunTests.cmd ^<debug^|release^> ^<...suite....^> [TagToRun^|"Tags,To,Run"] [TagNotToRun^|"Tags,Not,To,Run"]
|
||||
echo.
|
||||
exit /b 1
|
||||
|
||||
REM ----------------------------------------------------------------------------
|
||||
|
||||
:NET40_FSHARP_SUITE
|
||||
|
||||
set XMLFILE=%RESULTSDIR%\net40-fsharp-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\net40-fsharp-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\net40-fsharp-suite-errors.log
|
||||
|
||||
echo "%NUNIT3_CONSOLE%" --verbose "%FSCBINPATH%\..\..\net40\bin\FSharp.Tests.FSharp.dll" --framework:V4.0 %EXCLUDE_ARG_NUNIT% --work:"%FSCBINPATH%" --output:"%OUTPUTFILE%" --err:"%ERRORFILE%" --result:"%XMLFILE%;format=nunit2"
|
||||
"%NUNIT3_CONSOLE%" --verbose "%FSCBINPATH%\..\..\net40\bin\FSharp.Tests.FSharp.dll" --framework:V4.0 %EXCLUDE_ARG_NUNIT% --work:"%FSCBINPATH%" --output:"%OUTPUTFILE%" --err:"%ERRORFILE%" --result:"%XMLFILE%;format=nunit2"
|
||||
|
||||
call :UPLOAD_TEST_RESULTS "%XMLFILE%" "%OUTPUTFILE%" "%ERRORFILE%"
|
||||
goto :EOF
|
||||
|
||||
REM ----------------------------------------------------------------------------
|
||||
|
||||
:CORECLR_FSHARP_SUITE
|
||||
|
||||
set single_threaded=true
|
||||
set permutations=FSC_CORECLR
|
||||
set XMLFILE=%RESULTSDIR%\coreclr-fsharp-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\coreclr-fsharp-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\coreclr-fsharp-suite-errors.log
|
||||
|
||||
echo "%NUNIT3_CONSOLE%" --verbose "%FSCBINPATH%\..\..\coreclr\bin\FSharp.Tests.FSharp.dll" --framework:V4.0 %EXCLUDE_ARG_NUNIT% --work:"%FSCBINPATH%" --output:"%OUTPUTFILE%" --err:"%ERRORFILE%" --result:"%XMLFILE%;format=nunit2"
|
||||
"%NUNIT3_CONSOLE%" --verbose "%FSCBINPATH%\..\..\coreclr\bin\FSharp.Tests.FSharp.dll" --framework:V4.0 %EXCLUDE_ARG_NUNIT% --work:"%FSCBINPATH%" --output:"%OUTPUTFILE%" --err:"%ERRORFILE%" --result:"%XMLFILE%;format=nunit2"
|
||||
|
||||
call :UPLOAD_TEST_RESULTS "%XMLFILE%" "%OUTPUTFILE%" "%ERRORFILE%"
|
||||
goto :EOF
|
||||
|
||||
REM ----------------------------------------------------------------------------
|
||||
|
||||
:NET40_FSHARPQA_SUITE
|
||||
set OSARCH=%PROCESSOR_ARCHITECTURE%
|
||||
|
||||
set X86_PROGRAMFILES=%ProgramFiles%
|
||||
if "%OSARCH%"=="AMD64" set X86_PROGRAMFILES=%ProgramFiles(x86)%
|
||||
|
||||
set SYSWOW64=.
|
||||
if "%OSARCH%"=="AMD64" set SYSWOW64=SysWoW64
|
||||
|
||||
set REGEXE32BIT=reg.exe
|
||||
if not "%OSARCH%"=="x86" set REGEXE32BIT=%WINDIR%\syswow64\reg.exe
|
||||
|
||||
FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\NETFXSDK\4.6\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v8.1A\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||
set PATH=%PATH%;%WINSDKNETFXTOOLS%
|
||||
|
||||
IF NOT DEFINED SNEXE32 IF EXIST "%WINSDKNETFXTOOLS%sn.exe" set SNEXE32=%WINSDKNETFXTOOLS%sn.exe
|
||||
IF NOT DEFINED SNEXE64 IF EXIST "%WINSDKNETFXTOOLS%x64\sn.exe" set SNEXE64=%WINSDKNETFXTOOLS%x64\sn.exe
|
||||
IF NOT DEFINED ildasm IF EXIST "%WINSDKNETFXTOOLS%ildasm.exe" set ildasm=%WINSDKNETFXTOOLS%ildasm.exe
|
||||
|
||||
set FSC=%FSCBINPATH%\fsc.exe
|
||||
set PATH=%FSCBINPATH%;%PATH%
|
||||
|
||||
set FSCVPREVBINPATH=%X86_PROGRAMFILES%\Microsoft SDKs\F#\4.0\Framework\v4.0
|
||||
set FSCVPREV=%FSCVPREVBINPATH%\fsc.exe
|
||||
|
||||
REM == VS-installed paths to FSharp.Core.dll
|
||||
set FSCOREDLLPATH=%X86_PROGRAMFILES%\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.4.1.0
|
||||
set FSCOREDLL20PATH=%X86_PROGRAMFILES%\Reference Assemblies\Microsoft\FSharp\.NETFramework\v2.0\2.3.0.0
|
||||
set FSCOREDLLPORTABLEPATH=%X86_PROGRAMFILES%\Reference Assemblies\Microsoft\FSharp\.NETPortable\3.47.41.0
|
||||
set FSCOREDLLNETCOREPATH=%X86_PROGRAMFILES%\Reference Assemblies\Microsoft\FSharp\.NETCore\3.7.41.0
|
||||
set FSCOREDLLNETCORE78PATH=%X86_PROGRAMFILES%\Reference Assemblies\Microsoft\FSharp\.NETCore\3.78.41.0
|
||||
set FSCOREDLLNETCORE259PATH=%X86_PROGRAMFILES%\Reference Assemblies\Microsoft\FSharp\.NETCore\3.259.41.0
|
||||
set FSDATATPPATH=%X86_PROGRAMFILES%\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.0.0\Type Providers
|
||||
set FSCOREDLLVPREVPATH=%X86_PROGRAMFILES%\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.4.0.0
|
||||
|
||||
REM == open source logic
|
||||
if exist "%FSCBinPath%\FSharp.Core.dll" set FSCOREDLLPATH=%FSCBinPath%
|
||||
if exist "%FSCBinPath%\..\..\net20\bin\FSharp.Core.dll" set FSCOREDLL20PATH=%FSCBinPath%\..\..\net20\bin
|
||||
if exist "%FSCBinPath%\..\..\portable47\bin\FSharp.Core.dll" set FSCOREDLLPORTABLEPATH=%FSCBinPath%\..\..\portable47\bin
|
||||
if exist "%FSCBinPath%\..\..\portable7\bin\FSharp.Core.dll" set FSCOREDLLNETCOREPATH=%FSCBinPath%\..\..\portable7\bin
|
||||
IF exist "%FSCBinPath%\..\..\portable78\bin\FSharp.Core.dll" set FSCOREDLLNETCORE78PATH=%FSCBinPath%\..\..\portable78\bin
|
||||
IF exist "%FSCBinPath%\..\..\portable259\bin\FSharp.Core.dll" set FSCOREDLLNETCORE259PATH=%FSCBinPath%\..\..\portable259\bin
|
||||
|
||||
set FSCOREDLLPATH=%FSCOREDLLPATH%\FSharp.Core.dll
|
||||
set FSCOREDLL20PATH=%FSCOREDLL20PATH%\FSharp.Core.dll
|
||||
set FSCOREDLLPORTABLEPATH=%FSCOREDLLPORTABLEPATH%\FSharp.Core.dll
|
||||
set FSCOREDLLNETCOREPATH=%FSCOREDLLNETCOREPATH%\FSharp.Core.dll
|
||||
set FSCOREDLLNETCORE78PATH=%FSCOREDLLNETCORE78PATH%\FSharp.Core.dll
|
||||
set FSCOREDLLNETCORE259PATH=%FSCOREDLLNETCORE259PATH%\FSharp.Core.dll
|
||||
set FSCOREDLLVPREVPATH=%FSCOREDLLVPREVPATH%\FSharp.Core.dll
|
||||
|
||||
for /d %%i in (%WINDIR%\Microsoft.NET\Framework\v4.0.?????) do set CORDIR=%%i
|
||||
set PATH=%PATH%;%CORDIR%
|
||||
|
||||
set RESULTFILE=net40-fsharpqa-suite-results.log
|
||||
set FAILFILE=net40-fsharpqa-suite-errors.log
|
||||
set FAILENV=net40-fsharpqa-suite-errors
|
||||
|
||||
if /I "%2" == "net40-fsharpqa-suite-downtarget" (
|
||||
set ISCFLAGS=--noframework -r "%FSCOREDLLVPREVPATH%" -r "%X86_PROGRAMFILES%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll" -r System.dll -r System.Runtime.dll -r System.Xml.dll -r System.Data.dll -r System.Web.dll -r System.Core.dll -r System.Numerics.dll
|
||||
set EXCLUDE_ARG_RUNALL=%EXCLUDE_ARG_RUNALL%,NoCrossVer,FSI
|
||||
set RESULTFILE=net40-fsharpqa-downtarget-suite-results.log
|
||||
set FAILFILE=net40-fsharpqa-downtarget-suite-errors.log
|
||||
set FAILENV=net40-fsharpqa-downtarget-suite-errors
|
||||
)
|
||||
|
||||
where.exe perl > NUL 2> NUL
|
||||
if errorlevel 1 (
|
||||
echo Error: perl is not in the PATH
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
pushd %~dp0fsharpqa\source
|
||||
echo perl %~dp0fsharpqa\testenv\bin\runall.pl -resultsroot %RESULTSDIR% -results %RESULTFILE% -log %FAILFILE% -fail %FAILENV% -cleanup:no %INCLUDE_ARG_RUNALL% %EXCLUDE_ARG_RUNALL% %PARALLEL_ARG%
|
||||
perl %~dp0fsharpqa\testenv\bin\runall.pl -resultsroot %RESULTSDIR% -results %RESULTFILE% -log %FAILFILE% -fail %FAILENV% -cleanup:no %INCLUDE_ARG_RUNALL% %EXCLUDE_ARG_RUNALL% %PARALLEL_ARG%
|
||||
|
||||
popd
|
||||
goto :EOF
|
||||
|
||||
REM ----------------------------------------------------------------------------
|
||||
|
||||
:NET40_COREUNIT_SUITE
|
||||
|
||||
set XMLFILE=%RESULTSDIR%\net40-coreunit-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\net40-coreunit-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\net40-coreunit-suite-errors.log
|
||||
|
||||
echo "%NUNIT3_CONSOLE%" --verbose --framework:V4.0 %EXCLUDE_ARG_NUNIT% --result:"%XMLFILE%;format=nunit2" --output:"%OUTPUTFILE%" --err:"%ERRORFILE%" --work:"%FSCBINPATH%" "%FSCBINPATH%\..\..\net40\bin\FSharp.Core.Unittests.dll"
|
||||
"%NUNIT3_CONSOLE%" --verbose --framework:V4.0 %EXCLUDE_ARG_NUNIT% --result:"%XMLFILE%;format=nunit2" --output:"%OUTPUTFILE%" --err:"%ERRORFILE%" --work:"%FSCBINPATH%" "%FSCBINPATH%\..\..\net40\bin\FSharp.Core.Unittests.dll"
|
||||
|
||||
call :UPLOAD_TEST_RESULTS "%XMLFILE%" "%OUTPUTFILE%" "%ERRORFILE%"
|
||||
goto :EOF
|
||||
|
||||
REM ----------------------------------------------------------------------------
|
||||
|
||||
:PORTABLE_COREUNIT_SUITE
|
||||
|
||||
set XMLFILE=%RESULTSDIR%\portable-coreunit-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\portable-coreunit-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\portable-coreunit-suite-errors.log
|
||||
|
||||
echo "%NUNIT3_CONSOLE%" /framework:V4.0 /result="%XMLFILE%;format=nunit2" /output="%OUTPUTFILE%" /err="%ERRORFILE%" /work="%FSCBINPATH%" "%FSCBINPATH%\..\..\portable7\bin\FSharp.Core.Unittests.dll" "%FSCBINPATH%\..\..\portable47\bin\FSharp.Core.Unittests.dll" "%FSCBINPATH%\..\..\portable78\bin\FSharp.Core.Unittests.dll" "%FSCBINPATH%\..\..\portable259\bin\FSharp.Core.Unittests.dll"
|
||||
"%NUNIT3_CONSOLE%" /framework:V4.0 /result="%XMLFILE%;format=nunit2" /output="%OUTPUTFILE%" /err="%ERRORFILE%" /work="%FSCBINPATH%" "%FSCBINPATH%\..\..\portable7\bin\FSharp.Core.Unittests.dll" "%FSCBINPATH%\..\..\portable47\bin\FSharp.Core.Unittests.dll" "%FSCBINPATH%\..\..\portable78\bin\FSharp.Core.Unittests.dll" "%FSCBINPATH%\..\..\portable259\bin\FSharp.Core.Unittests.dll"
|
||||
|
||||
call :UPLOAD_TEST_RESULTS "%XMLFILE%" "%OUTPUTFILE%" "%ERRORFILE%"
|
||||
goto :EOF
|
||||
|
||||
REM ----------------------------------------------------------------------------
|
||||
|
||||
:CORECLR_COREUNIT_SUITE
|
||||
|
||||
set XMLFILE=coreclr-coreunit-suite-results.xml
|
||||
set OUTPUTFILE=coreclr-coreunit-suite-output.log
|
||||
set ERRORFILE=coreclr-coreunit-suite-errors.log
|
||||
|
||||
set testbinpath=%~dp0testbin\
|
||||
set architecturepath=coreclr\win7-x64
|
||||
set CORERUNPATH="%testbinpath%%flavor%\%architecturepath%"
|
||||
|
||||
echo "%CORERUNPATH%\corerun.exe" "%testbinpath%%flavor%\coreclr\fsharp.core.unittests\FSharp.Core.Unittests.exe"
|
||||
"%CORERUNPATH%\corerun.exe" "%testbinpath%%flavor%\coreclr\fsharp.core.unittests\FSharp.Core.Unittests.exe"
|
||||
|
||||
call :UPLOAD_TEST_RESULTS "%XMLFILE%" "%OUTPUTFILE%" "%ERRORFILE%"
|
||||
goto :EOF
|
||||
|
||||
REM ----------------------------------------------------------------------------
|
||||
|
||||
:COMPILERUNIT_SUITE
|
||||
|
||||
set XMLFILE=%RESULTSDIR%\%compilerunitsuffix%-compilerunit-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\%compilerunitsuffix%-compilerunit-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\%compilerunitsuffix%-compilerunit-suite-errors.log
|
||||
|
||||
echo "%NUNIT3_CONSOLE%" --verbose --framework:V4.0 %EXCLUDE_ARG_NUNIT% --result:"%XMLFILE%;format=nunit2" --output:"%OUTPUTFILE%" --err:"%ERRORFILE%" --work:"%FSCBINPATH%" "%FSCBINPATH%\..\..\%compilerunitsuffix%\bin\FSharp.Compiler.Unittests.dll"
|
||||
"%NUNIT3_CONSOLE%" --verbose --framework:V4.0 %EXCLUDE_ARG_NUNIT% --result:"%XMLFILE%;format=nunit2" --output:"%OUTPUTFILE%" --err:"%ERRORFILE%" --work:"%FSCBINPATH%" "%FSCBINPATH%\..\..\%compilerunitsuffix%\bin\FSharp.Compiler.Unittests.dll"
|
||||
|
||||
call :UPLOAD_TEST_RESULTS "%XMLFILE%" "%OUTPUTFILE%" "%ERRORFILE%"
|
||||
goto :EOF
|
||||
|
||||
REM ----------------------------------------------------------------------------
|
||||
|
||||
:VS_IDEUNIT_SUITE
|
||||
|
||||
set XMLFILE=%RESULTSDIR%\vs-ideunit-suite-results.xml
|
||||
set OUTPUTFILE=%RESULTSDIR%\vs-ideunit-suite-output.log
|
||||
set ERRORFILE=%RESULTSDIR%\vs-ideunit-suite-errors.log
|
||||
|
||||
pushd %FSCBINPATH%
|
||||
echo "%NUNIT3_CONSOLE%" --verbose --x86 --framework:V4.0 %EXCLUDE_ARG_NUNIT% --result:"%XMLFILE%;format=nunit2" --output:"%OUTPUTFILE%" --err:"%ERRORFILE%" --work:"%FSCBINPATH%" --workers=1 --agents=1 --full "%FSCBINPATH%\VisualFSharp.Unittests.dll"
|
||||
"%NUNIT3_CONSOLE%" --verbose --x86 --framework:V4.0 %EXCLUDE_ARG_NUNIT% --result:"%XMLFILE%;format=nunit2" --output:"%OUTPUTFILE%" --err:"%ERRORFILE%" --work:"%FSCBINPATH%" --workers=1 --agents=1 --full "%FSCBINPATH%\VisualFSharp.Unittests.dll"
|
||||
popd
|
||||
call :UPLOAD_TEST_RESULTS "%XMLFILE%" "%OUTPUTFILE%" "%ERRORFILE%"
|
||||
goto :EOF
|
||||
|
||||
REM ----------------------------------------------------------------------------
|
||||
|
||||
:UPLOAD_TEST_RESULTS
|
||||
|
||||
set saved_errorlevel=%errorlevel%
|
||||
echo Saved errorlevel %saved_errorlevel%
|
||||
|
||||
rem See <http://www.appveyor.com/docs/environment-variables>
|
||||
if not defined APPVEYOR goto :SKIP_APPVEYOR_UPLOAD
|
||||
|
||||
echo powershell -File Upload-Results.ps1 "%~1"
|
||||
powershell -File Upload-Results.ps1 "%~1"
|
||||
|
||||
:SKIP_APPVEYOR_UPLOAD
|
||||
:FINISHED
|
||||
|
||||
if NOT %saved_errorlevel% == 0 exit /b 1
|
||||
goto :EOF
|
||||
|
||||
:: Note: "goto :EOF" returns from an in-batchfile "call" command
|
||||
:: in preference to returning from the entire batch file.
|
|
@ -70,6 +70,6 @@
|
|||
<FSharpCoreOptSigFiles Include="$(OpenDrop)\FSharp.Core.xml" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(FSharpCoreOptSigFiles)" DestinationFolder="$(OutputPath)" />
|
||||
<Copy SourceFiles="@(FSharpCoreOptSigFiles)" DestinationFolder="$(OutputPath)" SkipUnchangedFiles="true" />
|
||||
</Target>
|
||||
</Project>
|
Загрузка…
Ссылка в новой задаче