This commit is contained in:
Don Syme 2016-11-14 17:03:09 +00:00
Родитель aa0d7687ae
Коммит 5f95b10d29
20 изменённых файлов: 451 добавлений и 460 удалений

Просмотреть файл

@ -55,7 +55,7 @@ There are various qualifiers:
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 vs -- build the Visual F# IDE Tools (see below)
build.cmd pcls -- build the PCL FSharp.Core libraries
build.cmd all -- build all
@ -64,28 +64,48 @@ There are various qualifiers:
build.cmd test -- build default targets, run suitable tests
build.cmd net40 test -- build net40, run suitable tests
build.cmd coreclr test -- build coreclr, run suitable tests
build.cmd vs test -- build Visual F# IDE Tools, run all tests
build.cmd vs test -- build Visual F# IDE Tools, run all tests (see below)
build.cmd all test -- build all, run all tests
build.cmd test-smoke -- build, run smoke tests
build.cmd test-net40-fsharp -- build, run tests\fsharp suite for .NET Framework
build.cmd test-net40-fsharpqa -- 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.
Please ensure that the Visual Studio SDK version is matched with your current Visual Studio to ensure successful builds. For example: Visual Studio 2015 Update 1 requires Visual Studio 2015 SDK Update 1. Any installation of Visual Studio 2015 and later provides Visual Studio SDK as part of the installation of Visual Studio 2015 as feature installation.
After you build the first time you can open and use this solution:
.\VisualFSharp.sln
.\FSharp.sln
or just build it directly:
msbuild VisualFSharp.sln
msbuild FSharp.sln
Building ``FSharp.sln`` builds nearly everything. However building portable profiles of
FSharp.Core.dll is not included. If you are just developing the core compiler and library
then building the solution will be enough.
### Notes on the .NET Framework build
1. The `update.cmd` script adds required strong name validation skips, and NGens the compiler and libraries. This requires admin privileges.
1. The compiler binaries produced are "private" and strong-named signed with a test key.
1. Some additional tools are required to build the compiler, notably `fslex.exe`, `fsyacc.exe`, `FSharp.PowerPack.Build.Tasks.dll`, `FsSrGen.exe`, `FSharp.SRGen.Build.Tasks.dll`, and the other tools found in the `lkg` directory.
1. The overall bootstrapping process executes as follows
- We first need an existing F# compiler. We use the one in the `lkg` directory. Let's assume this compiler has an `FSharp.Core.dll` with version X.
- We use this compiler to compile the source in this distribution, to produce a "proto" compiler, dropped to the `proto` directory. When run, this compiler still relies on `FSharp.Core.dll` with version X.
- We use the proto compiler to compile the source for `FSharp.Core.dll` in this distribution.
- We use the proto compiler to compile the source for `FSharp.Compiler.dll`, `fsc.exe`, `fsi.exe`, and other binaries found in this distribution.
# The Visual F# IDE Tools (Windows Only)
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.
Please ensure that the Visual Studio SDK version is matched with your current Visual Studio to ensure successful builds. For example: Visual Studio 2015 Update 1 requires Visual Studio 2015 SDK Update 1. Any installation of Visual Studio 2015 and later provides Visual Studio SDK as part of the installation of Visual Studio 2015 as feature installation.
build.cmd vs -- build the Visual F# IDE Tools (see below)
build.cmd vs test -- build Visual F# IDE Tools, run all tests (see below)
Use ``VisualFSharp.sln`` if you're building the Visual F# IDE Tools.
Building ``VisualFSharp.sln`` builds _nearly_ everything. However building portable profiles of
FSharp.Core.dll is not included. If you are just developing the core compiler, library
and Visual F# Tools then building the solution will be enough.
## [Optional] Install the Visual F# IDE Tools (Windows Only)
@ -109,7 +129,7 @@ For **Release**:
Restart Visual Studio, it should now be running your freshly-built Visual F# IDE Tools with updated F# Interactive.
### 5. [Optional] Clobber the F# SDK on the machine
### [Optional] Clobber the F# SDK on the machine
**Note:** Step #3 below will clobber the machine-wide installed F# SDK on your machine. This replaces the ``fsi.exe``/``fsiAnyCpu.exe`` used by Visual F# Interactive and the ``fsc.exe`` used by ``Microsoft.FSharp.targets``. Repairing Visual Studio 15 is currently the only way to revert this step.
@ -121,17 +141,6 @@ For **Release**:
1. Run ``vsintegration\update-vsintegration.cmd release`` (clobbers the installed F# SDK)
### Notes on the .NET Framework build
1. The `update.cmd` script adds required strong name validation skips, and NGens the compiler and libraries. This requires admin privileges.
1. The compiler binaries produced are "private" and strong-named signed with a test key.
1. Some additional tools are required to build the compiler, notably `fslex.exe`, `fsyacc.exe`, `FSharp.PowerPack.Build.Tasks.dll`, `FsSrGen.exe`, `FSharp.SRGen.Build.Tasks.dll`, and the other tools found in the `lkg` directory.
1. The overall bootstrapping process executes as follows
- We first need an existing F# compiler. We use the one in the `lkg` directory. Let's assume this compiler has an `FSharp.Core.dll` with version X.
- We use this compiler to compile the source in this distribution, to produce a "proto" compiler, dropped to the `proto` directory. When run, this compiler still relies on `FSharp.Core.dll` with version X.
- We use the proto compiler to compile the source for `FSharp.Core.dll` in this distribution.
- We use the proto compiler to compile the source for `FSharp.Compiler.dll`, `fsc.exe`, `fsi.exe`, and other binaries found in this distribution.

233
FSharp.sln Normal file
Просмотреть файл

@ -0,0 +1,233 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler", "src\fsharp\FSharp.Compiler\FSharp.Compiler.fsproj", "{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Server.Shared", "src\fsharp\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj", "{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Core", "src\fsharp\FSharp.Core\FSharp.Core.fsproj", "{DED3BBD7-53F4-428A-8C9F-27968E768605}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Build", "src\fsharp\FSharp.Build\FSharp.Build.fsproj", "{702A7979-BCF9-4C41-853E-3ADFC9897890}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsc", "src\fsharp\Fsc\Fsc.fsproj", "{C94C257C-3C0A-4858-B5D8-D746498D1F08}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Interactive.Settings", "src\fsharp\FSharp.Compiler.Interactive.Settings\FSharp.Compiler.Interactive.Settings.fsproj", "{649FA588-F02E-457C-9FCF-87E46407481E}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsiAnyCPU", "src\fsharp\fsiAnyCpu\FsiAnyCPU.fsproj", "{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsi", "src\fsharp\fsi\Fsi.fsproj", "{D0E98C0D-490B-4C61-9329-0862F6E87645}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Tests.FSharpSuite", "tests\fsharp\FSharp.Tests.FSharpSuite.fsproj", "{C163E892-5BF7-4B59-AA99-B0E8079C67C4}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Unittests", "src\fsharp\FSharp.Compiler.Unittests\FSharp.Compiler.Unittests.fsproj", "{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Core.Unittests", "src\fsharp\FSharp.Core.Unittests\FSharp.Core.Unittests.fsproj", "{88E2D422-6852-46E3-A740-83E391DC7973}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compiler", "Compiler", "{3881429D-A97A-49EB-B7AE-A82BA5FE9C77}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{B8DDA694-7939-42E3-95E5-265C2217C142}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{3058BC79-8E79-4645-B05D-48CC182FA8A6}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "HostedCompilerServer", "tests\fsharpqa\testenv\src\HostedCompilerServer\HostedCompilerServer.fsproj", "{4239EFEA-E746-446A-BF7A-51FCBAB13946}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "diff", "tests\fsharpqa\testenv\src\diff\diff.fsproj", "{BF5C6D92-D053-4216-9C42-B62F5F5C5E91}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "ILComparer", "tests\fsharpqa\testenv\src\ILComparer\ILComparer.fsproj", "{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x86 = Debug|x86
Proto|Any CPU = Proto|Any CPU
Proto|x86 = Proto|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|x86.ActiveCfg = Debug|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|x86.Build.0 = Debug|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|Any CPU.Build.0 = Proto|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|x86.ActiveCfg = Proto|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|x86.Build.0 = Proto|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|Any CPU.Build.0 = Release|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|x86.ActiveCfg = Release|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|x86.Build.0 = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Debug|x86.ActiveCfg = Debug|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Debug|x86.Build.0 = Debug|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|Any CPU.Build.0 = Proto|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|x86.ActiveCfg = Proto|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|x86.Build.0 = Proto|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Release|Any CPU.Build.0 = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Release|x86.ActiveCfg = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Release|x86.Build.0 = Release|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|x86.ActiveCfg = Debug|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|x86.Build.0 = Debug|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|Any CPU.Build.0 = Proto|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|x86.ActiveCfg = Proto|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|x86.Build.0 = Proto|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Release|Any CPU.Build.0 = Release|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Release|x86.ActiveCfg = Release|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Release|x86.Build.0 = Release|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Debug|Any CPU.Build.0 = Debug|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Debug|x86.ActiveCfg = Debug|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Debug|x86.Build.0 = Debug|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|Any CPU.Build.0 = Proto|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|x86.ActiveCfg = Proto|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|x86.Build.0 = Proto|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Release|Any CPU.ActiveCfg = Release|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Release|Any CPU.Build.0 = Release|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Release|x86.ActiveCfg = Release|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Release|x86.Build.0 = Release|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Debug|x86.ActiveCfg = Debug|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Debug|x86.Build.0 = Debug|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|Any CPU.Build.0 = Proto|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|x86.ActiveCfg = Proto|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|x86.Build.0 = Proto|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Release|Any CPU.Build.0 = Release|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Release|x86.ActiveCfg = Release|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Release|x86.Build.0 = Release|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Debug|x86.ActiveCfg = Debug|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Debug|x86.Build.0 = Debug|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Proto|Any CPU.Build.0 = Proto|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Proto|x86.ActiveCfg = Proto|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Proto|x86.Build.0 = Proto|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|Any CPU.Build.0 = Release|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|x86.ActiveCfg = Release|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|x86.Build.0 = Release|Any CPU
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|Any CPU.ActiveCfg = Debug|x86
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|Any CPU.Build.0 = Debug|x86
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|x86.ActiveCfg = Debug|x86
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|x86.Build.0 = Debug|x86
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|Any CPU.ActiveCfg = Proto|x86
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|x86.ActiveCfg = Proto|x86
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|x86.Build.0 = Proto|x86
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|Any CPU.ActiveCfg = Release|x86
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|Any CPU.Build.0 = Release|x86
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|x86.ActiveCfg = Release|x86
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|x86.Build.0 = Release|x86
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|x86.ActiveCfg = Debug|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|x86.Build.0 = Debug|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|Any CPU.Build.0 = Proto|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|x86.ActiveCfg = Proto|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|x86.Build.0 = Proto|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Release|Any CPU.Build.0 = Release|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Release|x86.ActiveCfg = Release|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Release|x86.Build.0 = Release|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|x86.ActiveCfg = Debug|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|x86.Build.0 = Debug|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|Any CPU.Build.0 = Proto|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|x86.ActiveCfg = Proto|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|x86.Build.0 = Proto|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|Any CPU.Build.0 = Release|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|x86.ActiveCfg = Release|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|x86.Build.0 = Release|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|x86.ActiveCfg = Debug|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|x86.Build.0 = Debug|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|Any CPU.Build.0 = Proto|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|x86.ActiveCfg = Proto|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|x86.Build.0 = Proto|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|Any CPU.Build.0 = Release|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|x86.ActiveCfg = Release|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|x86.Build.0 = Release|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Debug|Any CPU.Build.0 = Debug|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Debug|x86.ActiveCfg = Debug|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Debug|x86.Build.0 = Debug|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Proto|Any CPU.Build.0 = Proto|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Proto|x86.ActiveCfg = Proto|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Proto|x86.Build.0 = Proto|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Release|Any CPU.ActiveCfg = Release|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Release|Any CPU.Build.0 = Release|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Release|x86.ActiveCfg = Release|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Release|x86.Build.0 = Release|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Debug|x86.ActiveCfg = Debug|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Debug|x86.Build.0 = Debug|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Proto|Any CPU.ActiveCfg = Release|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Proto|x86.ActiveCfg = Release|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Release|Any CPU.Build.0 = Release|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Release|x86.ActiveCfg = Release|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Release|x86.Build.0 = Release|Any CPU
{BF5C6D92-D053-4216-9C42-B62F5F5C5E91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF5C6D92-D053-4216-9C42-B62F5F5C5E91}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF5C6D92-D053-4216-9C42-B62F5F5C5E91}.Debug|x86.ActiveCfg = Debug|Any CPU
{BF5C6D92-D053-4216-9C42-B62F5F5C5E91}.Debug|x86.Build.0 = Debug|Any CPU
{BF5C6D92-D053-4216-9C42-B62F5F5C5E91}.Proto|Any CPU.ActiveCfg = Release|Any CPU
{BF5C6D92-D053-4216-9C42-B62F5F5C5E91}.Proto|x86.ActiveCfg = Release|Any CPU
{BF5C6D92-D053-4216-9C42-B62F5F5C5E91}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF5C6D92-D053-4216-9C42-B62F5F5C5E91}.Release|Any CPU.Build.0 = Release|Any CPU
{BF5C6D92-D053-4216-9C42-B62F5F5C5E91}.Release|x86.ActiveCfg = Release|Any CPU
{BF5C6D92-D053-4216-9C42-B62F5F5C5E91}.Release|x86.Build.0 = Release|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Debug|x86.ActiveCfg = Debug|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Debug|x86.Build.0 = Debug|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Proto|Any CPU.ActiveCfg = Release|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Proto|x86.ActiveCfg = Release|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|Any CPU.Build.0 = Release|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|x86.ActiveCfg = Release|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77}
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{DED3BBD7-53F4-428A-8C9F-27968E768605} = {3058BC79-8E79-4645-B05D-48CC182FA8A6}
{702A7979-BCF9-4C41-853E-3ADFC9897890} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{C94C257C-3C0A-4858-B5D8-D746498D1F08} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77}
{649FA588-F02E-457C-9FCF-87E46407481E} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{D0E98C0D-490B-4C61-9329-0862F6E87645} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{C163E892-5BF7-4B59-AA99-B0E8079C67C4} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{88E2D422-6852-46E3-A740-83E391DC7973} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{4239EFEA-E746-446A-BF7A-51FCBAB13946} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{BF5C6D92-D053-4216-9C42-B62F5F5C5E91} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
EndGlobalSection
EndGlobal

Просмотреть файл

@ -319,11 +319,11 @@
<DefineConstants>$(DefineConstants);FX_NO_EXIT_CONTEXT_FLAGS</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_EXIT</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_MISSINGMETHODEXCEPTION</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_PARAMETERIZED_THREAD_START</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_REFLECTION_METADATA_TOKENS</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_REFLECTION_EMIT</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_REFLECTION_ONLY</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_REGISTERED_WAIT_HANDLES</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_PARAMETERIZED_THREAD_START</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_SECURITY_PERMISSIONS</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_SYSTEM_CONSOLE</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_THREAD</DefineConstants>

Просмотреть файл

@ -1,6 +1,6 @@
// #Regression #Conformance #Regression
#if CoreClr
#if NETSTANDARD1_6
open CoreClrUtilities
#endif

Просмотреть файл

@ -1,4 +1,4 @@
#if CoreClr
#if NETSTANDARD1_6
open CoreClrUtilities
#endif

Просмотреть файл

@ -23,7 +23,7 @@ module NewTests =
let (|String|_|) (v:obj) = match v with :? string as s -> Some(s) | _ -> None
let (|Int|_|) (v:obj) = match v with :? int as s -> Some(s) | _ -> None
let showAll =
#if CoreClr
#if NETSTANDARD1_6
true
#else
System.Reflection.BindingFlags.Public ||| System.Reflection.BindingFlags.NonPublic

Просмотреть файл

@ -27,7 +27,7 @@ let attributes () = singleTestBuildAndRun "core/attributes" FSC_OPT_PLUS_DEBUG
[<Test>]
let byrefs () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/byrefs"
let cfg = testConfig "core/byrefs"
use testOkFile = fileguard cfg "test.ok"
@ -54,14 +54,14 @@ let control () = singleTestBuildAndRun "core/control" FSC_OPT_PLUS_DEBUG
[<Test>]
let ``control --tailcalls`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/control"
let cfg = testConfig "core/control"
do! singleTestBuildAndRunAux {cfg with fsi_flags = " --tailcalls" } FSC_OPT_PLUS_DEBUG
})
[<Test>]
let controlChamenos () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/controlChamenos"
let cfg = testConfig "core/controlChamenos"
do! singleTestBuildAndRunAux {cfg with fsi_flags = " --tailcalls" } FSC_OPT_PLUS_DEBUG
})
@ -71,7 +71,7 @@ let controlMailbox () = singleTestBuildAndRun "core/controlMailbox" FSC_OPT_PLUS
[<Test>]
let ``controlMailbox --tailcalls`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/controlMailbox"
let cfg = testConfig "core/controlMailbox"
do! singleTestBuildAndRunAux {cfg with fsi_flags = " --tailcalls" } FSC_OPT_PLUS_DEBUG
})
@ -85,7 +85,7 @@ let csext () = singleTestBuildAndRun "core/csext" FSC_OPT_PLUS_DEBUG
[<Test>]
let events () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/events"
let cfg = testConfig "core/events"
do! fsc cfg "%s -a -o:test.dll -g" cfg.fsc_flags ["test.fs"]
@ -116,7 +116,7 @@ let events () = check (attempt {
// // "%FSI%" %fsi_flags% --shadowcopyreferences- < test1.fsx
// [<FSharpSuiteTestCase("core/fsi-shadowcopy", "--shadowcopyreferences-")
// let ``shadowcopy disabled`` (flags: string) = check (attempt {
// let cfg = FSharpTestSuite.testConfig ()
// let cfg = testConfig ()
//
//
//
@ -125,7 +125,7 @@ let events () = check (attempt {
// // if exist test1.ok (del /f /q test1.ok)
// use testOkFile = fileguard cfg "test1.ok"
//
// do! ``fsi <`` cfg "%s %s" cfg.fsi_flags flags "test1.fsx"
// do! fsiStdin cfg "%s %s" cfg.fsi_flags flags "test1.fsx"
//
// // if NOT EXIST test1.ok goto SetError
// do! testOkFile |> NUnitConf.checkGuardExists
@ -137,7 +137,7 @@ let events () = check (attempt {
// // "%FSI%" %fsi_flags% --shadowcopyreferences < test2.fsx
// [<FSharpSuiteTestCase("core/fsi-shadowcopy", "--shadowcopyreferences")
// let ``shadowcopy enabled`` (flags: string) = check (attempt {
// let cfg = FSharpTestSuite.testConfig ()
// let cfg = testConfig ()
//
//
//
@ -147,7 +147,7 @@ let events () = check (attempt {
// use testOkFile = fileguard cfg "test2.ok"
//
// // "%FSI%" %fsi_flags% /shadowcopyreferences+ < test2.fsx
// do! ``fsi <`` cfg "%s %s" cfg.fsi_flags flags "test2.fsx"
// do! fsiStdin cfg "%s %s" cfg.fsi_flags flags "test2.fsx"
//
// // if NOT EXIST test2.ok goto SetError
// do! testOkFile |> NUnitConf.checkGuardExists
@ -157,7 +157,7 @@ let events () = check (attempt {
[<Test>]
let forwarders () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/forwarders"
let cfg = testConfig "core/forwarders"
mkdir cfg "orig"
mkdir cfg "split"
@ -196,7 +196,7 @@ let forwarders () = check (attempt {
[<Test>]
let fsfromcs () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/fsfromcs"
let cfg = testConfig "core/fsfromcs"
do! fsc cfg "%s -a --doc:lib.xml -o:lib.dll -g" cfg.fsc_flags ["lib.fs"]
@ -218,7 +218,7 @@ let fsfromcs () = check (attempt {
[<Test>]
let fsfromfsviacs () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/fsfromfsviacs"
let cfg = testConfig "core/fsfromfsviacs"
do! fsc cfg "%s -a -o:lib.dll -g" cfg.fsc_flags ["lib.fs"]
@ -244,13 +244,13 @@ let fsfromfsviacs () = check (attempt {
[<Test>]
let ``fsi-reload`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/fsi-reload"
let cfg = testConfig "core/fsi-reload"
do! attempt {
use testOkFile = fileguard cfg "test.ok"
do! ``fsi <`` cfg "%s --maxerrors:1" cfg.fsi_flags "test1.ml"
do! fsiStdin cfg "%s --maxerrors:1" cfg.fsi_flags "test1.ml"
do! testOkFile |> NUnitConf.checkGuardExists
}
@ -282,15 +282,15 @@ let ``fsi-reload`` () = check (attempt {
[<Test>]
let fsiAndModifiers () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/fsiAndModifiers"
let cfg = testConfig "core/fsiAndModifiers"
do if fileExists cfg "TestLibrary.dll" then rm cfg "TestLibrary.dll"
do! ``fsi <`` cfg "%s --maxerrors:1" cfg.fsi_flags "prepare.fsx"
do! fsiStdin cfg "%s --maxerrors:1" cfg.fsi_flags "prepare.fsx"
use testOkFile = fileguard cfg "test.ok"
do! ``fsi <`` cfg "%s --maxerrors:1" cfg.fsi_flags "test.fsx"
do! fsiStdin cfg "%s --maxerrors:1" cfg.fsi_flags "test.fsx"
do! testOkFile |> NUnitConf.checkGuardExists
@ -303,7 +303,7 @@ let genericmeasures () =
[<Test>]
let hiding () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/hiding"
let cfg = testConfig "core/hiding"
do! fsc cfg "%s -a --optimize -o:lib.dll" cfg.fsc_flags ["lib.mli";"lib.ml";"libv.ml"]
@ -330,7 +330,7 @@ let ``test int32`` () = singleTestBuildAndRun "core/int32" FSC_OPT_PLUS_DEBUG
[<Test>]
let queriesCustomQueryOps () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/queriesCustomQueryOps"
let cfg = testConfig "core/queriesCustomQueryOps"
do! fsc cfg """%s -o:test.exe -g""" cfg.fsc_flags ["test.fsx"]
@ -369,7 +369,7 @@ let queriesCustomQueryOps () = check (attempt {
})
let printing flag diffFileOut expectedFileOut diffFileErr expectedFileErr = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/printing"
let cfg = testConfig "core/printing"
do! requireENCulture ()
@ -435,7 +435,7 @@ let ``printing-5`` () =
let signedtest(args,bslfile) = check(attempt {
let cfg = FSharpTestSuite.testConfig "core/signedtests"
let cfg = testConfig "core/signedtests"
let cfg = { cfg with fsc_flags=cfg.fsc_flags + " " + args }
let outfile = Path.ChangeExtension(bslfile,"sn.out")
@ -514,7 +514,7 @@ let ``signedtest-17`` () = signedtest("--keyfile:sha1024delay.snk --publicsign",
[<Test>]
let quotes () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/quotes"
let cfg = testConfig "core/quotes"
do! csc cfg """/nologo /target:library /out:cslib.dll""" ["cslib.cs"]
@ -579,7 +579,7 @@ let namespaceAttributes () =
[<Test; Category("parsing")>]
let parsing () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/parsing"
let cfg = testConfig "core/parsing"
do! fsc cfg "%s -a -o:crlf.dll -g" cfg.fsc_flags ["crlf.ml"]
@ -591,7 +591,7 @@ let parsing () = check (attempt {
[<Test; Category("unicode")>]
let unicode () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/unicode"
let cfg = testConfig "core/unicode"
do! fsc cfg "%s -a -o:kanji-unicode-utf8-nosig-codepage-65001.dll -g" cfg.fsc_flags ["kanji-unicode-utf8-nosig-codepage-65001.fs"]
@ -623,7 +623,7 @@ let unicode2 () = singleTestBuildAndRun "core/unicode" FSC_OPT_PLUS_DEBUG
[<Test; Category("internalsvisible")>]
let internalsvisible () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/internalsvisible"
let cfg = testConfig "core/internalsvisible"
// Compiling F# Library
do! fsc cfg "%s --version:1.2.3 --keyfile:key.snk -a --optimize -o:library.dll" cfg.fsc_flags ["library.fsi"; "library.fs"]
@ -648,7 +648,7 @@ let internalsvisible () = check (attempt {
// Repro for https://github.com/Microsoft/visualfsharp/issues/1298
[<Test; Category("fileorder")>]
let fileorder () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/fileorder"
let cfg = testConfig "core/fileorder"
log "== Compiling F# Library and Code, when empty file libfile2.fs IS NOT included"
do! fsc cfg "%s -a --optimize -o:lib.dll " cfg.fsc_flags ["libfile1.fs"]
@ -697,7 +697,7 @@ let lift () = singleTestBuildAndRun "core/lift" FSC_OPT_PLUS_DEBUG
[<Test>]
let ``load-script`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/load-script"
let cfg = testConfig "core/load-script"
let stdoutPath = "out.stdout.txt" |> getfullpath cfg
let stderrPath = "out.stderr.txt" |> getfullpath cfg
@ -728,7 +728,7 @@ let ``load-script`` () = check (attempt {
echo "Test 3================================================="
do! fsiFromInToOutIgnoreExitCode cfg stdoutPath stderrPath "--nologo" "pipescr"
do! fsiStdinAppendBothIgnoreExitCode cfg stdoutPath stderrPath "--nologo" "pipescr"
echo "Test 4================================================="
@ -883,7 +883,7 @@ let patterns () = singleTestBuildAndRun "core/patterns" FSC_OPT_PLUS_DEBUG
[<Test>]
let pinvoke () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/pinvoke"
let cfg = testConfig "core/pinvoke"
do! fsc cfg "%s -o:test.exe -g" cfg.fsc_flags ["test.fsx"]
@ -898,7 +898,7 @@ let printf () = singleTestBuildAndRun "core/printf" FSC_BASIC
[<Test>]
let queriesLeafExpressionConvert () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/queriesLeafExpressionConvert"
let cfg = testConfig "core/queriesLeafExpressionConvert"
do! fsc cfg "%s -o:test.exe -g" cfg.fsc_flags ["test.fsx"]
@ -931,7 +931,7 @@ let queriesLeafExpressionConvert () = check (attempt {
[<Test>]
let queriesNullableOperators () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/queriesNullableOperators"
let cfg = testConfig "core/queriesNullableOperators"
do! fsc cfg "%s -o:test.exe -g" cfg.fsc_flags ["test.fsx"]
@ -957,7 +957,7 @@ let queriesNullableOperators () = check (attempt {
[<Test>]
let queriesOverIEnumerable () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/queriesOverIEnumerable"
let cfg = testConfig "core/queriesOverIEnumerable"
do! fsc cfg "%s -o:test.exe -g" cfg.fsc_flags ["test.fsx"]
@ -989,7 +989,7 @@ let queriesOverIEnumerable () = check (attempt {
[<Test>]
let queriesOverIQueryable () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/queriesOverIQueryable"
let cfg = testConfig "core/queriesOverIQueryable"
do! fsc cfg "%s -o:test.exe -g" cfg.fsc_flags ["test.fsx"]
@ -1022,7 +1022,7 @@ let queriesOverIQueryable () = check (attempt {
[<Test>]
let quotesDebugInfo () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/quotesDebugInfo"
let cfg = testConfig "core/quotesDebugInfo"
do! fsc cfg "%s --quotations-debug+ --optimize -o:test.exe -g" cfg.fsc_flags ["test.fsx"]
@ -1054,7 +1054,7 @@ let quotesDebugInfo () = check (attempt {
[<Test>]
let quotesInMultipleModules () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/quotesInMultipleModules"
let cfg = testConfig "core/quotesInMultipleModules"
do! fsc cfg "%s -o:module1.dll --target:library" cfg.fsc_flags ["module1.fsx"]
@ -1108,7 +1108,7 @@ let reflect () = singleTestBuildAndRun "core/reflect" FSC_OPT_PLUS_DEBUG
[<Test>]
let testResources () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/resources"
let cfg = testConfig "core/resources"
do! fsc cfg "%s --resource:Resources.resources -o:test-embed.exe -g" cfg.fsc_flags ["test.fs"]
@ -1152,7 +1152,7 @@ let tlr () = singleTestBuildAndRun "core/tlr" FSC_OPT_PLUS_DEBUG
[<Test>]
let topinit () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/topinit"
let cfg = testConfig "core/topinit"
do! fsc cfg "%s --optimize -o both69514.exe -g" cfg.fsc_flags ["lib69514.fs"; "app69514.fs"]
@ -1282,7 +1282,7 @@ let topinit () = check (attempt {
[<Test>]
let unitsOfMeasure () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/unitsOfMeasure"
let cfg = testConfig "core/unitsOfMeasure"
do! fsc cfg "%s --optimize- -o:test.exe -g" cfg.fsc_flags ["test.fs"]
@ -1299,7 +1299,7 @@ let unitsOfMeasure () = check (attempt {
[<Test>]
let verify () = check (attempt {
let cfg = FSharpTestSuite.testConfig "core/verify"
let cfg = testConfig "core/verify"
do! peverifyWithArgs cfg "/nologo" (cfg.FSCBinPath/"FSharp.Build.dll")

Двоичные данные
tests/fsharp/core/unicode/kanji-unicode-utf16.fs

Двоичный файл не отображается.

Просмотреть файл

@ -2,17 +2,12 @@
open System
open System.IO
open System.Reflection
open NUnit.Framework
open NUnitConf
open PlatformHelpers
open FSharpTestSuiteTypes
let testConfig = FSharpTestSuite.testConfig
open System.Reflection
#if !FX_PORTABLE_OR_NETSTANDARD
[<Test>]
let ``should set file version info on generated file`` () = check (attempt {
@ -56,4 +51,3 @@ open System.Runtime.InteropServices
fv.LegalTrademarks |> Assert.areEqual "CST \u2122"
})
#endif

Просмотреть файл

@ -28,7 +28,7 @@ module ProductVersionTest =
let ``should use correct fallback`` =
check (attempt {
for (assemblyVersion, fileVersion, infoVersion, expected) in fallbackTestData () do
let cfg = FSharpTestSuite.testConfig (Commands.createTempDir())
let cfg = testConfig (Commands.createTempDir())
let dir = cfg.Directory
printfn "Directory: %s" dir

Просмотреть файл

@ -2,17 +2,13 @@
open System
open System.IO
open System.Reflection
open NUnit.Framework
open NUnitConf
open PlatformHelpers
open FSharpTestSuiteTypes
let testConfig = FSharpTestSuite.testConfig
open System.Reflection
#if !FX_PORTABLE_OR_NETSTANDARD
[<Test>]
let ``should be raised if AssemblyInformationalVersion has invalid version`` () = check (attempt {
let cfg = testConfig (Commands.createTempDir())
@ -39,4 +35,3 @@ open System.Reflection
})
#endif

Просмотреть файл

@ -76,59 +76,11 @@ type public InitializeSuiteAttribute () =
[<assembly:InitializeSuite()>]
()
module FSharpTestSuite =
let fsharpSuiteDirectory = __SOURCE_DIRECTORY__
/// Get the tags from the first few lines of a file, e.g. the line
/// #Conformance #Constants #Recursion #LetBindings #MemberDefinitions #Mutable
let getTagsOfFile path =
match File.ReadLines(path) |> Seq.truncate 5 |> Seq.tryFind (fun s -> s.StartsWith("// #")) with
| None -> []
| Some line ->
line.TrimStart('/').Split([| '#' |], StringSplitOptions.RemoveEmptyEntries)
|> Seq.map (fun s -> s.Trim())
|> Seq.filter (fun s -> s.Length > 0)
|> Seq.distinct
|> Seq.toList
/// Get the tags from a directory of files
let getTestFileMetadata dir =
Directory.EnumerateFiles(dir, "*.fs*")
|> Seq.toList
|> List.collect getTagsOfFile
let parseTestLst path =
let dir = Path.GetDirectoryName(path)
let commentLine (t: string) = t.StartsWith("#")
let lines =
File.ReadAllLines(path)
|> Array.filter (not << commentLine)
|> Array.filter (not << String.IsNullOrWhiteSpace)
let parse (t: string) =
let a = t.Split([| '\t'; '\t' |], StringSplitOptions.RemoveEmptyEntries)
let testDir = Commands.getfullpath dir a.[1]
[| for x in a.[0].Split(',') do yield (x, testDir) |]
lines |> Array.collect parse |> List.ofArray
let ``test.lst`` = lazy (
parseTestLst ( __SOURCE_DIRECTORY__/".."/"test.lst" )
)
/// Get the tags from a test.lst file
let getTestLstTags db dir =
let normalizePath path =
Uri(path).LocalPath
|> (fun s -> s.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar))
|> (fun s -> s.ToUpperInvariant())
let sameDir a = (normalizePath dir) = (normalizePath a)
db |> List.choose (fun (tag, d) -> if sameDir d then Some tag else None)
let fsharpSuiteDirectory = __SOURCE_DIRECTORY__
let testConfig testDir =
let cfg = suiteHelpers.Value
{ cfg with Directory = Path.GetFullPath(fsharpSuiteDirectory/testDir) }
let testConfig testDir =
let cfg = suiteHelpers.Value
{ cfg with Directory = Path.GetFullPath(fsharpSuiteDirectory/testDir) }
let allPermutations =
@ -300,10 +252,10 @@ let fsiAppendIgnoreExitCode cfg stdoutPath stderrPath = Printf.ksprintf (Command
let fileguard cfg = (Commands.getfullpath cfg.Directory) >> FileGuard.create
let getfullpath cfg = Commands.getfullpath cfg.Directory
let fileExists cfg = Commands.fileExists cfg.Directory >> Option.isSome
let ``exec <`` cfg l p = Command.exec cfg.Directory cfg.EnvironmentVariables { Output = Inherit; Input = Some(RedirectInput(l)) } p >> checkResult
let ``fsi <`` cfg = Printf.ksprintf (fun flags l -> Commands.fsi (``exec <`` cfg l) cfg.FSI flags [])
let ``exec < success`` cfg stdoutPath stderrPath l p = Command.exec cfg.Directory cfg.EnvironmentVariables { Output = OutputAndError(Append(stdoutPath), Append(stderrPath)); Input = Some(RedirectInput(l)) } p >> alwaysSuccess
let fsiFromInToOutIgnoreExitCode cfg stdoutPath stderrPath = Printf.ksprintf (fun flags l -> Commands.fsi (``exec < success`` cfg stdoutPath stderrPath l) cfg.FSI flags [])
let execStdin cfg l p = Command.exec cfg.Directory cfg.EnvironmentVariables { Output = Inherit; Input = Some(RedirectInput(l)) } p >> checkResult
let fsiStdin cfg = Printf.ksprintf (fun flags l -> Commands.fsi (execStdin cfg l) cfg.FSI flags [])
let execStdinAppendBothIgnoreExitCode cfg stdoutPath stderrPath l p = Command.exec cfg.Directory cfg.EnvironmentVariables { Output = OutputAndError(Append(stdoutPath), Append(stderrPath)); Input = Some(RedirectInput(l)) } p >> alwaysSuccess
let fsiStdinAppendBothIgnoreExitCode cfg stdoutPath stderrPath = Printf.ksprintf (fun flags l -> Commands.fsi (execStdinAppendBothIgnoreExitCode cfg stdoutPath stderrPath l) cfg.FSI flags [])
let rm cfg x = Commands.rm cfg.Directory x
let mkdir cfg = Commands.mkdir_p cfg.Directory
let copy_y cfg f = Commands.copy_y cfg.Directory f >> checkResult

Просмотреть файл

@ -3,153 +3,144 @@ module ``FSharp-Tests-Optimize``
open System
open System.IO
open NUnit.Framework
open NUnitConf
open PlatformHelpers
open FSharpTestSuiteTypes
let testConfig = FSharpTestSuite.testConfig
[<Test>]
let functionSizes () = check (attempt {
let cfg = testConfig "optimize/analyses"
module Analyses =
let outFile = "sizes.FunctionSizes.output.test.txt"
let expectedFile = "sizes.FunctionSizes.output.test.bsl"
[<Test>]
let functionSizes () = check (attempt {
let cfg = testConfig "optimize/analyses"
log "== FunctionSizes"
do! fscBothToOut cfg outFile "%s --nologo -O --test:FunctionSizes" cfg.fsc_flags ["sizes.fs"]
let outFile = "sizes.FunctionSizes.output.test.txt"
let expectedFile = "sizes.FunctionSizes.output.test.bsl"
let! diff = fsdiff cfg outFile expectedFile
log "== FunctionSizes"
do! fscBothToOut cfg outFile "%s --nologo -O --test:FunctionSizes" cfg.fsc_flags ["sizes.fs"]
do! match diff with
| [] -> Success
| _ ->
NUnitConf.genericError (sprintf "'%s' and '%s' differ; %A" (getfullpath cfg outFile) (getfullpath cfg expectedFile) diff)
})
let! diff = fsdiff cfg outFile expectedFile
[<Test>]
let totalSizes () = check (attempt {
let cfg = testConfig "optimize/analyses"
do! match diff with
| [] -> Success
| _ ->
NUnitConf.genericError (sprintf "'%s' and '%s' differ; %A" (getfullpath cfg outFile) (getfullpath cfg expectedFile) diff)
})
let outFile = "sizes.TotalSizes.output.test.txt"
let expectedFile = "sizes.TotalSizes.output.test.bsl"
[<Test>]
let totalSizes () = check (attempt {
let cfg = testConfig "optimize/analyses"
log "== TotalSizes"
do! fscBothToOut cfg outFile "%s --nologo -O --test:TotalSizes" cfg.fsc_flags ["sizes.fs"]
let outFile = "sizes.TotalSizes.output.test.txt"
let expectedFile = "sizes.TotalSizes.output.test.bsl"
let! diff = fsdiff cfg outFile expectedFile
log "== TotalSizes"
do! fscBothToOut cfg outFile "%s --nologo -O --test:TotalSizes" cfg.fsc_flags ["sizes.fs"]
do! match diff with
| [] -> Success
| _ ->
NUnitConf.genericError (sprintf "'%s' and '%s' differ; %A" (getfullpath cfg outFile) (getfullpath cfg expectedFile) diff)
})
let! diff = fsdiff cfg outFile expectedFile
[<Test>]
let hasEffect () = check (attempt {
let cfg = testConfig "optimize/analyses"
do! match diff with
| [] -> Success
| _ ->
NUnitConf.genericError (sprintf "'%s' and '%s' differ; %A" (getfullpath cfg outFile) (getfullpath cfg expectedFile) diff)
})
let outFile = "effects.HasEffect.output.test.txt"
let expectedFile = "effects.HasEffect.output.test.bsl"
[<Test>]
let hasEffect () = check (attempt {
let cfg = testConfig "optimize/analyses"
log "== HasEffect"
do! fscBothToOut cfg outFile "%s --nologo -O --test:HasEffect" cfg.fsc_flags ["effects.fs"]
let outFile = "effects.HasEffect.output.test.txt"
let expectedFile = "effects.HasEffect.output.test.bsl"
let! diff = fsdiff cfg outFile expectedFile
log "== HasEffect"
do! fscBothToOut cfg outFile "%s --nologo -O --test:HasEffect" cfg.fsc_flags ["effects.fs"]
do! match diff with
| [] -> Success
| _ ->
NUnitConf.genericError (sprintf "'%s' and '%s' differ; %A" (getfullpath cfg outFile) (getfullpath cfg expectedFile) diff)
})
let! diff = fsdiff cfg outFile expectedFile
[<Test>]
let noNeedToTailcall () = check (attempt {
let cfg = testConfig "optimize/analyses"
do! match diff with
| [] -> Success
| _ ->
NUnitConf.genericError (sprintf "'%s' and '%s' differ; %A" (getfullpath cfg outFile) (getfullpath cfg expectedFile) diff)
})
let outFile = "tailcalls.NoNeedToTailcall.output.test.txt"
let expectedFile = "tailcalls.NoNeedToTailcall.output.test.bsl"
[<Test>]
let noNeedToTailcall () = check (attempt {
let cfg = testConfig "optimize/analyses"
log "== NoNeedToTailcall"
do! fscBothToOut cfg outFile "%s --nologo -O --test:NoNeedToTailcall" cfg.fsc_flags ["tailcalls.fs"]
let outFile = "tailcalls.NoNeedToTailcall.output.test.txt"
let expectedFile = "tailcalls.NoNeedToTailcall.output.test.bsl"
let! diff = fsdiff cfg outFile expectedFile
log "== NoNeedToTailcall"
do! fscBothToOut cfg outFile "%s --nologo -O --test:NoNeedToTailcall" cfg.fsc_flags ["tailcalls.fs"]
let! diff = fsdiff cfg outFile expectedFile
do! match diff with
| [] -> Success
| _ ->
NUnitConf.genericError (sprintf "'%s' and '%s' differ; %A" (getfullpath cfg outFile) (getfullpath cfg expectedFile) diff)
})
do! match diff with
| [] -> Success
| _ ->
NUnitConf.genericError (sprintf "'%s' and '%s' differ; %A" (getfullpath cfg outFile) (getfullpath cfg expectedFile) diff)
})
module Inline =
[<Test>]
let ``inline`` () = check (attempt {
let cfg = testConfig "optimize/inline"
[<Test>]
let ``inline`` () = check (attempt {
let cfg = testConfig "optimize/inline"
do! fsc cfg "%s -g --optimize- --target:library -o:lib.dll" cfg.fsc_flags ["lib.fs"; "lib2.fs"]
do! fsc cfg "%s -g --optimize- --target:library -o:lib.dll" cfg.fsc_flags ["lib.fs"; "lib2.fs"]
do! fsc cfg "%s -g --optimize- --target:library -o:lib3.dll -r:lib.dll " cfg.fsc_flags ["lib3.fs"]
do! fsc cfg "%s -g --optimize- --target:library -o:lib3.dll -r:lib.dll " cfg.fsc_flags ["lib3.fs"]
do! fsc cfg "%s -g --optimize- -o:test.exe -r:lib.dll -r:lib3.dll" cfg.fsc_flags ["test.fs "]
do! fsc cfg "%s -g --optimize- -o:test.exe -r:lib.dll -r:lib3.dll" cfg.fsc_flags ["test.fs "]
do! fsc cfg "%s --optimize --target:library -o:lib--optimize.dll -g" cfg.fsc_flags ["lib.fs"; "lib2.fs"]
do! fsc cfg "%s --optimize --target:library -o:lib--optimize.dll -g" cfg.fsc_flags ["lib.fs"; "lib2.fs"]
do! fsc cfg "%s --optimize --target:library -o:lib3--optimize.dll -r:lib--optimize.dll -g" cfg.fsc_flags ["lib3.fs"]
do! fsc cfg "%s --optimize --target:library -o:lib3--optimize.dll -r:lib--optimize.dll -g" cfg.fsc_flags ["lib3.fs"]
do! fsc cfg "%s --optimize -o:test--optimize.exe -g -r:lib--optimize.dll -r:lib3--optimize.dll" cfg.fsc_flags ["test.fs "]
do! fsc cfg "%s --optimize -o:test--optimize.exe -g -r:lib--optimize.dll -r:lib3--optimize.dll" cfg.fsc_flags ["test.fs "]
do! ildasm cfg "/nobar /out=test.il" "test.exe"
do! ildasm cfg "/nobar /out=test.il" "test.exe"
do! ildasm cfg "/nobar /out=test--optimize.il" "test--optimize.exe"
do! ildasm cfg "/nobar /out=test--optimize.il" "test--optimize.exe"
let ``test--optimize.il`` =
File.ReadLines (getfullpath cfg "test--optimize.il")
|> Seq.filter (fun line -> line.Contains(".locals init"))
|> List.ofSeq
let ``test--optimize.il`` =
File.ReadLines (getfullpath cfg "test--optimize.il")
|> Seq.filter (fun line -> line.Contains(".locals init"))
|> List.ofSeq
do! match ``test--optimize.il`` with
| [] -> Success
| lines ->
NUnitConf.genericError (sprintf "Error: optimizations not removed. Relevant lines from IL file follow: %A" lines)
do! match ``test--optimize.il`` with
| [] -> Success
| lines ->
NUnitConf.genericError (sprintf "Error: optimizations not removed. Relevant lines from IL file follow: %A" lines)
let numElim =
File.ReadLines (getfullpath cfg "test.il")
|> Seq.filter (fun line -> line.Contains(".locals init"))
|> Seq.length
let numElim =
File.ReadLines (getfullpath cfg "test.il")
|> Seq.filter (fun line -> line.Contains(".locals init"))
|> Seq.length
log "Ran ok - optimizations removed %d textual occurrences of optimizable identifiers from target IL" numElim
log "Ran ok - optimizations removed %d textual occurrences of optimizable identifiers from target IL" numElim
})
})
module Stats =
[<Test>]
let stats () = check (attempt {
let cfg = testConfig "optimize/stats"
[<Test>]
let stats () = check (attempt {
let cfg = testConfig "optimize/stats"
do! ildasm cfg "/nobar /out=FSharp.Core.il" cfg.FSCOREDLLPATH
do! ildasm cfg "/nobar /out=FSharp.Core.il" cfg.FSCOREDLLPATH
let fscore = File.ReadLines(getfullpath cfg "FSharp.Core.il") |> Seq.toList
let ``FSharp.Core.il`` = File.ReadLines(getfullpath cfg "FSharp.Core.il") |> Seq.toList
let contains text (s: string) = if s.Contains(text) then 1 else 0
let contains text (s: string) = if s.Contains(text) then 1 else 0
let typeFunc = fscore |> List.sumBy (contains "extends Microsoft.FSharp.TypeFunc")
let classes = fscore |> List.sumBy (contains ".class")
let methods = fscore |> List.sumBy (contains ".method")
let fields = fscore |> List.sumBy (contains ".field")
let typeFunc = ``FSharp.Core.il`` |> List.sumBy (contains "extends Microsoft.FSharp.TypeFunc")
let classes = ``FSharp.Core.il`` |> List.sumBy (contains ".class")
let methods = ``FSharp.Core.il`` |> List.sumBy (contains ".method")
let fields = ``FSharp.Core.il`` |> List.sumBy (contains ".field")
let date = DateTime.Today.ToString("dd/MM/yyyy") // 23/11/2006
let time = DateTime.Now.ToString("HH:mm:ss.ff") // 16:03:23.40
let m = sprintf "%s, %s, Microsoft.FSharp-TypeFunc, %d, Microsoft.FSharp-classes, %d, Microsoft.FSharp-methods, %d, , Microsoft.FSharp-fields, %d, " date time typeFunc classes methods fields
let date = DateTime.Today.ToString("dd/MM/yyyy") // 23/11/2006
let time = DateTime.Now.ToString("HH:mm:ss.ff") // 16:03:23.40
let m = sprintf "%s, %s, Microsoft.FSharp-TypeFunc, %d, Microsoft.FSharp-classes, %d, Microsoft.FSharp-methods, %d, , Microsoft.FSharp-fields, %d, " date time typeFunc classes methods fields
log "now:"
log "%s" m
log "now:"
log "%s" m
})
})

Просмотреть файл

@ -17,7 +17,7 @@ let ``321`` () = singleTestBuildAndRun "regression/321" FSC_OPT_PLUS_DEBUG
[<Test>]
let ``655`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "regression/655"
let cfg = testConfig "regression/655"
do! fsc cfg "%s -a -o:pack.dll" cfg.fsc_flags ["xlibC.ml"]
@ -38,7 +38,7 @@ let ``655`` () = check (attempt {
[<Test >]
let ``656`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "regression/656"
let cfg = testConfig "regression/656"
do! fsc cfg "%s -o:pack.exe" cfg.fsc_flags ["misc.fs mathhelper.fs filehelper.fs formshelper.fs plot.fs traj.fs playerrecord.fs trackedplayers.fs form.fs"]
@ -56,7 +56,7 @@ let ``84`` () = singleTestBuildAndRun "regression/84" FSC_OPT_PLUS_DEBUG
[<Test >]
let ``85`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "regression/85"
let cfg = testConfig "regression/85"
do! fsc cfg "%s -r:Category.dll -a -o:petshop.dll" cfg.fsc_flags ["Category.ml"]

Просмотреть файл

@ -57,7 +57,7 @@ let singleTestBuildAndRunAux cfg p = attempt {
use testOkFile = FileGuard.create (getfullpath cfg "test.ok")
do! ``fsi <`` cfg "%s" cfg.fsi_flags (sources |> List.rev |> List.head) //use last file, because `cmd < a.txt b.txt` redirect b.txt only
do! fsiStdin cfg "%s" cfg.fsi_flags (sources |> List.rev |> List.head) //use last file, because `cmd < a.txt b.txt` redirect b.txt only
do! testOkFile |> NUnitConf.checkGuardExists
| FSI_STDIN_OPT ->
@ -65,7 +65,7 @@ let singleTestBuildAndRunAux cfg p = attempt {
use testOkFile = FileGuard.create (getfullpath cfg "test.ok")
do! ``fsi <`` cfg "%s --optimize" cfg.fsi_flags (sources |> List.rev |> List.head) //use last file, because `cmd < a.txt b.txt` redirect b.txt only
do! fsiStdin cfg "%s --optimize" cfg.fsi_flags (sources |> List.rev |> List.head) //use last file, because `cmd < a.txt b.txt` redirect b.txt only
do! testOkFile |> NUnitConf.checkGuardExists
| FSI_STDIN_GUI ->
@ -73,12 +73,12 @@ let singleTestBuildAndRunAux cfg p = attempt {
use testOkFile = FileGuard.create (getfullpath cfg "test.ok")
do! ``fsi <`` cfg "%s --gui" cfg.fsi_flags (sources |> List.rev |> List.head) //use last file, because `cmd < a.txt b.txt` redirect b.txt only
do! fsiStdin cfg "%s --gui" cfg.fsi_flags (sources |> List.rev |> List.head) //use last file, because `cmd < a.txt b.txt` redirect b.txt only
do! testOkFile |> NUnitConf.checkGuardExists
| FSC_CORECLR ->
let platform = "win7-x64"
do! fsi cfg """%s --targetPlatformName:.NETStandard,Version=v1.6/%s --source:"coreclr_utilities.fs" --source:"%s" --packagesDir:..\..\packages --projectJsonLock:%s --fsharpCore:%s --define:CoreClr --define:PortableNew --compilerPath:%s --copyCompiler:yes --verbose:verbose --exec """
do! fsi cfg """%s --targetPlatformName:.NETStandard,Version=v1.6/%s --source:"coreclr_utilities.fs" --source:"%s" --packagesDir:..\..\packages --projectJsonLock:%s --fsharpCore:%s --define:NETSTANDARD1_6 --define:FSCORE_PORTABLE_NEW --define:FX_PORTABLE_OR_NETSTANDARD --compilerPath:%s --copyCompiler:yes --verbose:verbose --exec """
cfg.fsi_flags
platform
(String.concat " " sources)
@ -191,7 +191,7 @@ let singleTestBuildAndRunAux cfg p = attempt {
}
let singleTestBuildAndRun dir p = check (attempt {
let cfg = FSharpTestSuite.testConfig dir
let cfg = testConfig dir
do! singleTestBuildAndRunAux cfg p
})

Просмотреть файл

@ -11,7 +11,7 @@ open SingleTest
[<Test>]
let bundle () = check (attempt {
let cfg = FSharpTestSuite.testConfig "tools/bundle"
let cfg = testConfig "tools/bundle"
do! fsc cfg "%s --progress --standalone -o:test-one-fsharp-module.exe -g" cfg.fsc_flags ["test-one-fsharp-module.fs"]

Просмотреть файл

@ -10,7 +10,7 @@ open PlatformHelpers
[<Test>]
let diamondAssembly () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typeProviders/diamondAssembly"
let cfg = testConfig "typeProviders/diamondAssembly"
rm cfg "provider.dll"
@ -48,7 +48,7 @@ let diamondAssembly () = check (attempt {
[<Test>]
let globalNamespace () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typeProviders/globalNamespace"
let cfg = testConfig "typeProviders/globalNamespace"
do! csc cfg """/out:globalNamespaceTP.dll /debug+ /target:library /r:"%s" """ cfg.FSCOREDLLPATH ["globalNamespaceTP.cs"]
@ -58,7 +58,7 @@ let globalNamespace () = check (attempt {
let helloWorld p = check (attempt {
let cfg = FSharpTestSuite.testConfig "typeProviders/helloWorld"
let cfg = testConfig "typeProviders/helloWorld"
do! fsc cfg "%s" "--out:provided1.dll -g -a" [".."/"helloWorld"/"provided.fs"]
@ -135,7 +135,7 @@ let ``helloWorld fsi`` () = helloWorld FSI_STDIN
[<Test>]
let helloWorldCSharp () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typeProviders/helloWorldCSharp"
let cfg = testConfig "typeProviders/helloWorldCSharp"
rm cfg "magic.dll"
@ -184,7 +184,7 @@ let testsWithDefine = [
[<Test>]
let negTests () = check (attempt {
for name in (testsSimple @ testsWithDefine) do
let cfg = FSharpTestSuite.testConfig "typeProviders/negTests"
let cfg = testConfig "typeProviders/negTests"
let dir = cfg.Directory
do! requireENCulture ()
@ -245,7 +245,7 @@ let negTests () = check (attempt {
[<Test>]
let splitAssembly () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typeProviders/splitAssembly"
let cfg = testConfig "typeProviders/splitAssembly"
do! fsc cfg "--out:provider.dll -a" ["provider.fs"]
@ -259,7 +259,7 @@ let splitAssembly () = check (attempt {
[<Test>]
let wedgeAssembly () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typeProviders/wedgeAssembly"
let cfg = testConfig "typeProviders/wedgeAssembly"
rm cfg "provider.dll"

Просмотреть файл

@ -12,7 +12,7 @@ open SingleTest
[<Test>]
let ``full-rank-arrays`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/full-rank-arrays"
let cfg = testConfig "typecheck/full-rank-arrays"
do! csc cfg "/target:library /out:HighRankArrayTests.dll" ["Class1.cs"]
@ -25,14 +25,14 @@ let misc () = singleTestBuildAndRun "typecheck/misc" FSC_OPT_PLUS_DEBUG
[<Test>]
let ``sigs pos24`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s --target:exe -o:pos24.exe" cfg.fsc_flags ["pos24.fs"]
do! peverify cfg "pos24.exe"
})
[<Test>]
let ``sigs pos23`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s --target:exe -o:pos23.exe" cfg.fsc_flags ["pos23.fs"]
do! peverify cfg "pos23.exe"
do! exec cfg ("."/"pos23.exe") ""
@ -41,7 +41,7 @@ let ``sigs pos23`` () = check (attempt {
[<Test>]
let ``sigs pos20`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s --target:exe -o:pos20.exe" cfg.fsc_flags ["pos20.fs"]
do! peverify cfg "pos20.exe"
do! exec cfg ("."/"pos20.exe") ""
@ -50,7 +50,7 @@ let ``sigs pos20`` () = check (attempt {
[<Test>]
let ``sigs pos19`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s --target:exe -o:pos19.exe" cfg.fsc_flags ["pos19.fs"]
do! peverify cfg "pos19.exe"
do! exec cfg ("."/"pos19.exe") ""
@ -59,7 +59,7 @@ let ``sigs pos19`` () = check (attempt {
[<Test>]
let ``sigs pos18`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s --target:exe -o:pos18.exe" cfg.fsc_flags ["pos18.fs"]
do! peverify cfg "pos18.exe"
do! exec cfg ("."/"pos18.exe") ""
@ -68,7 +68,7 @@ let ``sigs pos18`` () = check (attempt {
[<Test>]
let ``sigs pos16`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s --target:exe -o:pos16.exe" cfg.fsc_flags ["pos16.fs"]
do! peverify cfg "pos16.exe"
do! exec cfg ("."/"pos16.exe") ""
@ -77,7 +77,7 @@ let ``sigs pos16`` () = check (attempt {
[<Test>]
let ``sigs pos17`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s --target:exe -o:pos17.exe" cfg.fsc_flags ["pos17.fs"]
do! peverify cfg "pos17.exe"
@ -88,7 +88,7 @@ let ``sigs pos17`` () = check (attempt {
[<Test>]
let ``sigs pos15`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s --target:exe -o:pos15.exe" cfg.fsc_flags ["pos15.fs"]
do! peverify cfg "pos15.exe"
@ -99,7 +99,7 @@ let ``sigs pos15`` () = check (attempt {
[<Test>]
let ``sigs pos14`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s --target:exe -o:pos14.exe" cfg.fsc_flags ["pos14.fs"]
do! peverify cfg "pos14.exe"
@ -110,7 +110,7 @@ let ``sigs pos14`` () = check (attempt {
[<Test>]
let ``sigs pos13`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s --target:exe -o:pos13.exe" cfg.fsc_flags ["pos13.fs"]
do! peverify cfg "pos13.exe"
@ -121,21 +121,21 @@ let ``sigs pos13`` () = check (attempt {
[<Test>]
let ``sigs pos12 `` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s -a -o:pos12.dll" cfg.fsc_flags ["pos12.fs"]
})
[<Test>]
let ``sigs pos11`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s -a -o:pos11.dll" cfg.fsc_flags ["pos11.fs"]
})
[<Test>]
let ``sigs pos10`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s -a -o:pos10.dll" cfg.fsc_flags ["pos10.fs"]
do! peverify cfg "pos10.dll"
@ -144,7 +144,7 @@ let ``sigs pos10`` () = check (attempt {
[<Test>]
let ``sigs pos09`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s -a -o:pos09.dll" cfg.fsc_flags ["pos09.fs"]
do! peverify cfg "pos09.dll"
@ -154,7 +154,7 @@ let ``sigs pos09`` () = check (attempt {
[<Test>]
let ``sigs pos07`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s -a -o:pos07.dll" cfg.fsc_flags ["pos07.fs"]
do! peverify cfg "pos07.dll"
@ -163,7 +163,7 @@ let ``sigs pos07`` () = check (attempt {
[<Test>]
let ``sigs pos08`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s -a -o:pos08.dll" cfg.fsc_flags ["pos08.fs"]
do! peverify cfg "pos08.dll"
@ -172,7 +172,7 @@ let ``sigs pos08`` () = check (attempt {
[<Test>]
let ``sigs pos06`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s -a -o:pos06.dll" cfg.fsc_flags ["pos06.fs"]
do! peverify cfg "pos06.dll"
@ -181,7 +181,7 @@ let ``sigs pos06`` () = check (attempt {
[<Test>]
let ``sigs pos03`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s -a -o:pos03.dll" cfg.fsc_flags ["pos03.fs"]
do! peverify cfg "pos03.dll"
@ -194,7 +194,7 @@ let ``sigs pos03`` () = check (attempt {
[<Test>]
let ``sigs pos01a`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s -a -o:pos01a.dll" cfg.fsc_flags ["pos01a.fsi"; "pos01a.fs"]
do! peverify cfg "pos01a.dll"
@ -203,7 +203,7 @@ let ``sigs pos01a`` () = check (attempt {
[<Test>]
let ``sigs pos02`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s -a -o:pos02.dll" cfg.fsc_flags ["pos02.fs"]
do! peverify cfg "pos02.dll"
@ -213,13 +213,13 @@ let ``sigs pos02`` () = check (attempt {
[<Test>]
let ``sigs pos05`` () = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! fsc cfg "%s -a -o:pos05.dll" cfg.fsc_flags ["pos05.fs"]
})
let negGroup negs = check (attempt {
let cfg = FSharpTestSuite.testConfig "typecheck/sigs"
let cfg = testConfig "typecheck/sigs"
do! attempt.For (negs, singleNegTest cfg)
})

Просмотреть файл

@ -1,177 +0,0 @@
# File format:
# <Comma-delimited list of tags><TAB><TAB><Path from 'tests' to the test directory>[<TAB><TAB><comment>]
# e.g.
# core01,mytag,array fsharp\core\array # this is my test line
#
# Use the # character for comments
#
# Remember to use **TABS** not spaces.
# I don't know who you are. I don't know what you want. But if you hose daily automation by forgetting tabs, I will look for you, I will find you, and I will revert your checkin.
Core01,coreclr fsharp\core\access
Core01,coreclr fsharp\core\apporder
Core01,coreclr fsharp\core\array
Core01 fsharp\core\attributes
Core01 fsharp\core\comprehensions
Core01 fsharp\core\control
Core01 fsharp\core\controlChamenos
Core01 fsharp\core\controlMailbox
Core01 fsharp\core\controlStackOverflow
Core01 fsharp\core\controlWebExt
Core02 fsharp\core\controlWpf
Core02,coreclr fsharp\core\csext
Core02 ..\testsprivate\fsharp\core\csfromfs
Core02 fsharp\core\events
Core02 fsharp\core\forwarders
Core02 fsharp\core\forexpression
Core02 fsharp\core\fsfromcs
Core02 fsharp\core\fsfromfsviacs
Core02 fsharp\core\fsiAndModifiers
Core02 fsharp\core\fsi-reload
Core02 fsharp\core\fsi-shadowcopy
Core02,coreclr fsharp\core\genericmeasures
Core02 fsharp\core\hiding
Core03,coreclr fsharp\core\innerpoly
Core03,Smoke,coreclr fsharp\core\int32
Core03 fsharp\core\internalsvisible
Core03 fsharp\core\interop
Core03,coreclr fsharp\core\ilread
Core03,coreclr fsharp\core\lazy
Core03 fsharp\core\letrec
Core03 fsharp\core\libtest
Core03 fsharp\core\lift
Core03 fsharp\core\load-script
Core03 fsharp\core\longnames
Core03,coreclr fsharp\core\map
Core04 ..\testsprivate\fsharp\core\math\lapack
Core04,coreclr fsharp\core\math\numbers
Core04,coreclr fsharp\core\math\numbersVS2008
Core04 fsharp\core\measures
Core04 fsharp\core\members\basics
Core04,coreclr fsharp\core\members\ctree
Core04,coreclr fsharp\core\members\factors
Core04 fsharp\core\members\incremental
Core04,coreclr fsharp\core\members\ops
Core05 ..\testsprivate\fsharp\core\mscorlib
Core05,coreclr fsharp\core\namespaces
Core05,coreclr fsharp\core\nested
Core05 fsharp\core\parsing
Core05 fsharp\core\patterns
Core05 fsharp\core\pinvoke
Core05,coreclr fsharp\core\printf
Core05 fsharp\core\printing
Core05 fsharp\core\queriesCustomQueryOps
Core06,CoreQuotes fsharp\core\queriesLeafExpressionConvert
Core06 fsharp\core\queriesNullableOperators
Core06 fsharp\core\queriesOverIEnumerable
Core06 fsharp\core\queriesOverIQueryable
Core06,CoreQuotes fsharp\core\quotes
Core06 fsharp\core\quotesDebugInfo
Core06 fsharp\core\quotesInMultipleModules
Core07,coreclr fsharp\core\reflect
Core07 fsharp\core\resources
Core07,coreclr fsharp\core\seq
coreclr fsharp\core\signedtests
Core07,coreclr fsharp\core\subtype
Core07 fsharp\core\syntax
Core07,coreclr fsharp\core\tlr
Core07 fsharp\core\topinit
Core07,coreclr fsharp\core\unicode
Core07 fsharp\core\unitsOfMeasure
Core07 fsharp\core\verify
# these take a long time, isolate in their own tags
Portable47 fsharp\core\portable
Portable7 fsharp\core\netcore\netcore7
Portable78 fsharp\core\netcore\netcore78
Portable259 fsharp\core\netcore\netcore259
Samples01 ..\testsprivate\fsharp\samples\adCenter
Samples01 ..\testsprivate\fsharp\samples\AntColony
Samples01 ..\testsprivate\fsharp\samples\asfparse
Samples01 ..\testsprivate\fsharp\samples\bitonic
Samples01 ..\testsprivate\fsharp\samples\blast
Samples01 ..\testsprivate\fsharp\samples\brianmcn
Samples01 ..\testsprivate\fsharp\samples\Cci2Test
Samples01 ..\testsprivate\fsharp\samples\ChartControl
Samples01 ..\testsprivate\fsharp\samples\ChessAnalysis
Samples01 ..\testsprivate\fsharp\samples\CodeFormatter
Samples02 ..\testsprivate\fsharp\samples\ConcurrentLife
Samples02 ..\testsprivate\fsharp\samples\cs2fsform
Samples02 ..\testsprivate\fsharp\samples\expert-fsharp-book
Samples02 ..\testsprivate\fsharp\samples\formgen
Samples02 ..\testsprivate\fsharp\samples\FSforScientists
Samples02 ..\testsprivate\fsharp\samples\fsharp2Latex
Samples02 ..\testsprivate\fsharp\samples\fsharp2Word
Samples03 ..\testsprivate\fsharp\samples\FSharppToFSProj
Samples03,FSHARPNETFX20Only ..\testsprivate\fsharp\samples\FSMiniJava2
Samples03 ..\testsprivate\fsharp\samples\graph
Samples03 ..\testsprivate\fsharp\samples\InteractiveDirectX
Samples03 ..\testsprivate\fsharp\samples\interactivewebcrawl
Samples03 ..\testsprivate\fsharp\samples\IntroductoryTutorial
Samples03 ..\testsprivate\fsharp\samples\Joins\ActiveObjects
Samples03 ..\testsprivate\fsharp\samples\Joins\BoundedBuffer
Samples03 ..\testsprivate\fsharp\samples\Joins\ReaderWriter
Samples03 ..\testsprivate\fsharp\samples\jrh
Samples04 ..\testsprivate\fsharp\samples\life
Samples04 ..\testsprivate\fsharp\samples\Micado
Samples04 ..\testsprivate\fsharp\samples\mort
Samples04 ..\testsprivate\fsharp\samples\mort3
Samples04 ..\testsprivate\fsharp\samples\mort-hw
Samples04 ..\testsprivate\fsharp\samples\MSFDSL
Samples04 ..\testsprivate\fsharp\samples\nativecodebindingtutorial
Samples04 ..\testsprivate\fsharp\samples\netra
Samples05 ..\testsprivate\fsharp\samples\nova-pasta
Samples05 ..\testsprivate\fsharp\samples\ondrej
Samples05 ..\testsprivate\fsharp\samples\pela
Samples05 ..\testsprivate\fsharp\samples\pickering-book-final
Samples05 ..\testsprivate\fsharp\samples\ralf-1
Samples05 ..\testsprivate\fsharp\samples\Samples101
Samples05 ..\testsprivate\fsharp\samples\scls
Samples05 ..\testsprivate\fsharp\samples\SolarSystem
Samples06 ..\testsprivate\fsharp\samples\stephen
Samples06 ..\testsprivate\fsharp\samples\stressCommentParsing
Samples06 ..\testsprivate\fsharp\samples\stressLargeConstTerms
Samples06 ..\testsprivate\fsharp\samples\SudokuSolver
Samples06 ..\testsprivate\fsharp\samples\t-pierred
Samples06 ..\testsprivate\fsharp\samples\TrueSkillDistribution\TrueSkillDistributionViewer
Samples06 ..\testsprivate\fsharp\samples\umrun
Samples06 ..\testsprivate\fsharp\samples\vsmocks
Samples06 ..\testsprivate\fsharp\samples\wecker-1
Samples07 ..\testsprivate\fsharp\samples\WinFormsScripting
Samples07 ..\testsprivate\fsharp\samples\XBoxLiveLogFilter
Samples07 ..\testsprivate\fsharp\samples\XBoxLiveLogViewer
Samples07 ..\testsprivate\fsharp\samples\XNA\WindowsXNAGame
Samples07 ..\testsprivate\fsharp\samples\XNA\XBox360Game
TypeProviders01 fsharp\typeProviders\helloWorld
TypeProviders01 fsharp\typeProviders\diamondAssembly
TypeProviders01 fsharp\typeProviders\globalNamespace
TypeProviders01 fsharp\typeProviders\helloWorldCSharp
TypeProviders01,TypeProvidersNeg fsharp\typeProviders\negTests
TypeProviders01 fsharp\typeProviders\splitAssembly
TypeProviders01 fsharp\typeProviders\wedgeAssembly
Misc01 ..\testsprivate\fsharp\Telemetry\FSharpCompiler
Misc01 fsharp\optimize\analyses
Misc01 fsharp\optimize\basics
Misc01 fsharp\optimize\stats
Misc01 fsharp\optimize\inline
Misc01 fsharp\perf\graph
Misc01 fsharp\perf\nbody
Misc01 fsharp\regression\26
Misc01 fsharp\regression\83
Misc01 fsharp\regression\84
Misc01 fsharp\regression\85
Misc01 fsharp\regression\86
Misc02 fsharp\regression\321
Misc02 fsharp\regression\655
Misc02 fsharp\regression\656
Misc02 ..\testsprivate\fsharp\regression\standalone-bug
Misc02 fsharp\regression\tuple-bug-1
Misc02 fsharp\tools\bundle
Misc02 fsharp\tools\eval
Misc02 ..\testsprivate\fsharp\tools\queries
Misc02,TypeChecker fsharp\typecheck\misc
Misc02,TypeChecker,TypeCheckerSigs fsharp\typecheck\sigs
Misc02,TypeChecker fsharp\typecheck\full-rank-arrays

Просмотреть файл

@ -15,7 +15,6 @@ let clrPaths envVars =
| "AMD64" -> AMD64
| _ -> AMD64
#if !FX_PORTABLE_OR_NETSTANDARD
let regQuery path value (baseKey: RegistryKey) =
use regKey = baseKey.OpenSubKey(path, false)
@ -30,7 +29,6 @@ let clrPaths envVars =
match hklm32 |> regQuery path value with
| Some (:? string as d) -> Some d
| Some _ | None -> None
#endif
/// current process architecture, using PROCESSOR_ARCHITECTURE environment variable
let PROCESSOR_ARCHITECTURE =
@ -54,9 +52,6 @@ let clrPaths envVars =
| X86 -> ()
| _ -> CORDIR <- CORDIR.Replace("Framework", "Framework64")
#if FX_PORTABLE_OR_NETSTANDARD
let CORSDK = @"c:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64"
#else
let allSDK =
[ regQueryREG_SOFTWARE @"Software\Microsoft\Microsoft SDKs\NETFXSDK\4.6\WinSDK-NetFx40Tools" "InstallationFolder"
regQueryREG_SOFTWARE @"Software\Microsoft\Microsoft SDKs\Windows\v8.1A\WinSDK-NetFx40Tools" "InstallationFolder"
@ -70,7 +65,6 @@ let clrPaths envVars =
match PROCESSOR_ARCHITECTURE with
| AMD64 -> CORSDK <- CORSDK/"x64"
| _ -> ()
#endif
/// Return real processor architecture (ignore WOW64)