diff --git a/DEVGUIDE.md b/DEVGUIDE.md index 6a155ce5f..bfdbefe2b 100644 --- a/DEVGUIDE.md +++ b/DEVGUIDE.md @@ -30,18 +30,28 @@ There are various qualifiers: build.cmd release -- build release (the default) build.cmd debug -- build debug instead of release + build.cmd proto -- force the rebuild of the Proto bootstrap compiler in addition to other things + build.cmd compiler -- build/tests only the compiler (not the Visual F# IDE Tools) build.cmd vs -- build/tests the Visual F# IDE Tools build.cmd pcls -- build/tests the PCL FSharp.Core libraries build.cmd build -- build, do not test - build.cmd smoke -- build, run smoke tests build.cmd ci -- build, run the same tests as CI build.cmd all -- build, run all tests + build.cmd notests -- turn off testing (used in conjunction with other options) + + build.cmd test-smoke -- build, run smoke tests + build.cmd test-coreunit -- build, run FSharp.Core tests + build.cmd test-coreclr -- build, run CoreCLR 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-vs -- build, run Visual F# IDE Tools unit tests Combinations are also allowed: - build.cmd debug,compiler,smoke -- build the debug compiler and run smoke tests + build.cmd debug,compiler,notests -- build the debug compiler and run smoke tests After you build the first time you can open and use this solution: diff --git a/build.cmd b/build.cmd index 40e76b237..ba1cab9ed 100644 --- a/build.cmd +++ b/build.cmd @@ -44,6 +44,7 @@ set TEST_VS=0 set TEST_FSHARP_SUITE=0 set TEST_FSHARPQA_SUITE=0 set TEST_TAGS= +set SKIP_EXPENSIVE_TESTS=1 setlocal enableDelayedExpansion set /a counter=0 @@ -96,20 +97,12 @@ if /i '%ARG%' == 'all' ( set TEST_FSHARPQA_SUITE=1 set TEST_CORECLR=1 set TEST_VS=1 + + set SKIP_EXPENSIVE_TESTS=0 ) if /i '%ARG%' == 'proto' ( set BUILD_PROTO=1 - set BUILD_PORTABLE=0 - set BUILD_VS=0 - set BUILD_CORECLR=0 - - set TEST_COMPILERUNIT=0 - set TEST_PORTABLE_COREUNIT=0 - set TEST_CORECLR=0 - set TEST_VS=0 - set TEST_FSHARP_SUITE=0 - set TEST_FSHARPQA_SUITE=0 ) REM Same as 'all' but smoke testing only @@ -157,17 +150,6 @@ if /i '%ARG%' == 'ci_part2' ( set TEST_FSHARP_SUITE=1 ) -if /i '%ARG%' == 'smoke' ( - REM Smoke tests are a very small quick subset of tests - - set SKIP_EXPENSIVE_TESTS=1 - set TEST_COMPILERUNIT=0 - set TEST_NET40_COREUNIT=0 - set TEST_FSHARP_SUITE=1 - set TEST_FSHARPQA_SUITE=0 - set TEST_TAGS=Smoke -) - if /i '%ARG%' == 'coreclr' ( set BUILD_CORECLR=1 set TEST_CORECLR=1 @@ -191,6 +173,52 @@ if /i '%ARG%' == 'notests' ( set TEST_VS=0 set TEST_FSHARP_SUITE=0 set TEST_FSHARPQA_SUITE=0 + set SKIP_EXPENSIVE_TESTS=1 +) + +if /i '%ARG%' == 'test-smoke' ( + REM Smoke tests are a very small quick subset of tests + + set SKIP_EXPENSIVE_TESTS=1 + set TEST_COMPILERUNIT=0 + set TEST_NET40_COREUNIT=0 + set TEST_FSHARP_SUITE=1 + set TEST_FSHARPQA_SUITE=0 + set TEST_TAGS=Smoke +) + +if /i '%ARG%' == 'test-fsharpqa' ( + set BUILD_NET40=1 + set TEST_FSHARPQA_SUITE=1 +) + +if /i '%ARG%' == 'test-compilerunit' ( + set BUILD_NET40=1 + set TEST_COMPILERUNIT=1 +) + +if /i '%ARG%' == 'test-coreunit' ( + set BUILD_NET40=1 + set TEST_NET40_COREUNIT=1 +) + +if /i '%ARG%' == 'test-coreclr' ( + set BUILD_CORECLR=1 + set TEST_CORECLR=1 +) + +if /i '%ARG%' == 'test-pcls' ( + set BUILD_PORTABLE=1 + set TEST_PORTABLE_COREUNIT=1 +) + +if /i '%ARG%' == 'test-vs' ( + set BUILD_VS=1 + set TEST_VS=1 +) + +if /i '%ARG%' == 'test-fsharp' ( + set TEST_FSHARP_SUITE=1 ) goto :EOF @@ -201,6 +229,7 @@ REM after this point, ARG variable should not be used, use only BUILD_* or TEST_ echo Build/Tests configuration: echo. +echo BUILD_PROTO=%BUILD_PROTO% echo BUILD_NET40=%BUILD_NET40% echo BUILD_CORECLR=%BUILD_CORECLR% echo BUILD_PORTABLE=%BUILD_PORTABLE% @@ -209,11 +238,13 @@ echo BUILD_CONFIG=%BUILD_CONFIG% echo BUILD_CONFIG_LOWERCASE=%BUILD_CONFIG_LOWERCASE% echo. echo TEST_COMPILERUNIT=%TEST_COMPILERUNIT% +echo TEST_NET40_COREUNIT=%TEST_NET40_COREUNIT% echo TEST_PORTABLE_COREUNIT=%TEST_PORTABLE_COREUNIT% echo TEST_VS=%TEST_VS% echo TEST_FSHARP_SUITE=%TEST_FSHARP_SUITE% echo TEST_FSHARPQA_SUITE=%TEST_FSHARPQA_SUITE% echo TEST_TAGS=%TEST_TAGS% +echo SKIP_EXPENSIVE_TESTS=%SKIP_EXPENSIVE_TESTS% echo. if "%RestorePackages%"=="" (