Add FSharp.sln
This commit is contained in:
Родитель
aa0d7687ae
Коммит
5f95b10d29
55
DEVGUIDE.md
55
DEVGUIDE.md
|
@ -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.
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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
Двоичные данные
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)
|
||||
|
||||
})
|
||||
|
|
177
tests/test.lst
177
tests/test.lst
|
@ -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)
|
||||
|
|
Загрузка…
Ссылка в новой задаче