diff --git a/FSharp.sln b/FSharp.sln index 92e5a535dc4..99d8ae47eb4 100644 --- a/FSharp.sln +++ b/FSharp.sln @@ -24,6 +24,8 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "fsiAnyCpu", "src\fsharp\fsi {649FA588-F02E-457C-9FCF-87E46407481E} = {649FA588-F02E-457C-9FCF-87E46407481E} EndProjectSection EndProject +Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.TestsHelpers", "tests\FSharp.TestHelpers\FSharp.TestHelpers.fsproj", "{60D275B0-B14A-41CB-A1B2-E815A7448FCB} " +EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharpSuite.Tests", "tests\fsharp\FSharpSuite.Tests.fsproj", "{C163E892-5BF7-4B59-AA99-B0E8079C67C4}" EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.UnitTests", "tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj", "{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}" @@ -156,6 +158,18 @@ Global {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|Any CPU.Build.0 = Release|Any CPU {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|x86.ActiveCfg = Release|Any CPU {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|x86.Build.0 = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Debug|x86.ActiveCfg = Debug|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Debug|x86.Build.0 = Debug|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Proto|Any CPU.ActiveCfg = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Proto|Any CPU.Build.0 = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Proto|x86.ActiveCfg = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Proto|x86.Build.0 = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Release|Any CPU.Build.0 = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Release|x86.ActiveCfg = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.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 @@ -276,6 +290,7 @@ Global {649FA588-F02E-457C-9FCF-87E46407481E} = {B8DDA694-7939-42E3-95E5-265C2217C142} {D0E98C0D-490B-4C61-9329-0862F6E87645} = {B8DDA694-7939-42E3-95E5-265C2217C142} {8B3E283D-B5FE-4055-9D80-7E3A32F3967B} = {B8DDA694-7939-42E3-95E5-265C2217C142} + {60D275B0-B14A-41CB-A1B2-E815A7448FCB} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449} {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} diff --git a/VisualFSharp.sln b/VisualFSharp.sln index dfaa5ce699d..6a71aec0e43 100644 --- a/VisualFSharp.sln +++ b/VisualFSharp.sln @@ -86,6 +86,8 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "fsiAnyCpu", "src\fsharp\fsi EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "fsi", "src\fsharp\fsi\fsi.fsproj", "{D0E98C0D-490B-4C61-9329-0862F6E87645}" EndProject +Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.TestsHelpers", "tests\FSharp.TestHelpers\FSharp.TestHelpers.fsproj", "{60D275B0-B14A-41CB-A1B2-E815A7448FCB} " +EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharpSuite.Tests", "tests\fsharp\FSharpSuite.Tests.fsproj", "{C163E892-5BF7-4B59-AA99-B0E8079C67C4}" EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.UnitTests", "tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj", "{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}" @@ -528,6 +530,18 @@ Global {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 + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Debug|x86.ActiveCfg = Debug|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Debug|x86.Build.0 = Debug|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Proto|Any CPU.ActiveCfg = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Proto|Any CPU.Build.0 = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Proto|x86.ActiveCfg = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Proto|x86.Build.0 = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Release|Any CPU.Build.0 = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.Release|x86.ActiveCfg = Release|Any CPU + {60D275B0-B14A-41CB-A1B2-E815A7448FCB}.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 @@ -964,6 +978,7 @@ Global {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} + {60D275B0-B14A-41CB-A1B2-E815A7448FCB} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449} {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} diff --git a/tests/fsharp/Compiler/CompilerAssert.fs b/tests/FSharp.TestHelpers/CompilerAssert.fs similarity index 97% rename from tests/fsharp/Compiler/CompilerAssert.fs rename to tests/FSharp.TestHelpers/CompilerAssert.fs index 0b2f1d6c883..92552d17ad6 100644 --- a/tests/fsharp/Compiler/CompilerAssert.fs +++ b/tests/FSharp.TestHelpers/CompilerAssert.fs @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -[] -module FSharp.Compiler.UnitTests.CompilerAssert +namespace FSharp.TestHelpers open System open System.Diagnostics @@ -20,7 +19,7 @@ open NUnit.Framework open System.Reflection.Emit open Microsoft.CodeAnalysis open Microsoft.CodeAnalysis.CSharp -open FSharp.Compiler.UnitTests.Utilities +open FSharp.TestHelpers.Utilities [] type ILVerifier (dllFilePath: string) = @@ -56,8 +55,8 @@ type CompileOutput = | Library | Exe -type CompilationReference = - private +type CompilationReference = + private | CompilationReference of Compilation * staticLink: bool | TestCompilationReference of TestCompilation @@ -254,11 +253,11 @@ let main argv = 0""" |> Array.map (fun info -> (info.Severity, info.ErrorNumber, (info.StartLineAlternate - libAdjust, info.StartColumn + 1, info.EndLineAlternate - libAdjust, info.EndColumn + 1), info.Message)) - let checkEqual k a b = - if a <> b then + let checkEqual k a b = + if a <> b then Assert.AreEqual(a, b, sprintf "Mismatch in %s, expected '%A', got '%A'.\nAll errors:\n%A" k a b errors) - checkEqual "Errors" (Array.length expectedErrors) errors.Length + checkEqual "Errors" (Array.length expectedErrors) errors.Length Array.zip errors expectedErrors |> Array.iter (fun (actualError, expectedError) -> @@ -278,16 +277,16 @@ let main argv = 0""" let compilationRefs, deps = match cmpl with | Compilation(_, _, _, _, cmpls, _) -> - let compiledRefs = + let compiledRefs = cmpls |> List.map (fun cmpl -> match cmpl with | CompilationReference (cmpl, staticLink) -> compileCompilationAux outputPath disposals ignoreWarnings cmpl, staticLink - | TestCompilationReference (cmpl) -> + | TestCompilationReference (cmpl) -> let tmp = Path.Combine(outputPath, Path.ChangeExtension(Path.GetRandomFileName(), ".dll")) - disposals.Add({ new IDisposable with - member _.Dispose() = + disposals.Add({ new IDisposable with + member _.Dispose() = try File.Delete tmp with | _ -> () }) cmpl.EmitAsFile tmp (([||], tmp), []), false) @@ -330,14 +329,14 @@ let main argv = 0""" match cmpl with | Compilation(source, _, _, _, _, _) -> source - let options = + let options = match cmpl with | Compilation(_, _, _, options, _, _) -> options let nameOpt = match cmpl with | Compilation(_, _, _, _, _, nameOpt) -> nameOpt - + let disposal, res = compileDisposable outputPath isScript isExe (Array.append options compilationRefs) nameOpt source disposals.Add disposal @@ -362,7 +361,7 @@ let main argv = 0""" static member CompileWithErrors(cmpl: Compilation, expectedErrors, ?ignoreWarnings) = let ignoreWarnings = defaultArg ignoreWarnings false - lock gate (fun () -> + lock gate (fun () -> compileCompilation ignoreWarnings cmpl (fun ((errors, _), _) -> assertErrors 0 ignoreWarnings errors expectedErrors)) @@ -374,7 +373,7 @@ let main argv = 0""" let beforeExecute = defaultArg beforeExecute (fun _ _ -> ()) let newProcess = defaultArg newProcess false let onOutput = defaultArg onOutput (fun _ -> ()) - lock gate (fun () -> + lock gate (fun () -> compileCompilation ignoreWarnings cmpl (fun ((errors, outputFilePath), deps) -> assertErrors 0 ignoreWarnings errors [||] beforeExecute outputFilePath deps @@ -447,9 +446,9 @@ let main argv = 0""" Assert.IsEmpty(typeCheckResults.Errors, sprintf "Type Check errors: %A" typeCheckResults.Errors) - static member TypeCheckWithErrorsAndOptionsAgainstBaseLine options (sourceFile: string) = + static member TypeCheckWithErrorsAndOptionsAgainstBaseLine options (sourceDirectory:string) (sourceFile: string) = lock gate <| fun () -> - let absoluteSourceFile = System.IO.Path.Combine(__SOURCE_DIRECTORY__, "..", sourceFile) + let absoluteSourceFile = System.IO.Path.Combine(sourceDirectory, sourceFile) let parseResults, fileAnswer = checker.ParseAndCheckFileInProject( sourceFile, @@ -473,7 +472,7 @@ let main argv = 0""" let errorsActual = typeCheckResults.Errors |> Array.map (sprintf "%A") - |> String.concat "\n" + |> String.concat "\n" File.WriteAllText(Path.ChangeExtension(absoluteSourceFile,"err"), errorsActual) Assert.AreEqual(errorsExpectedBaseLine.Replace("\r\n","\n"), errorsActual.Replace("\r\n","\n")) @@ -489,7 +488,7 @@ let main argv = 0""" { defaultProjectOptions with OtherOptions = Array.append options defaultProjectOptions.OtherOptions}) |> Async.RunSynchronously - if parseResults.Errors.Length > 0 then + if parseResults.Errors.Length > 0 then parseResults.Errors else diff --git a/tests/FSharp.TestHelpers/Directory.Build.props b/tests/FSharp.TestHelpers/Directory.Build.props new file mode 100644 index 00000000000..7cd41381b5d --- /dev/null +++ b/tests/FSharp.TestHelpers/Directory.Build.props @@ -0,0 +1,9 @@ + + + + true + + + + + diff --git a/tests/FSharp.TestHelpers/FSharp.TestHelpers.fsproj b/tests/FSharp.TestHelpers/FSharp.TestHelpers.fsproj new file mode 100644 index 00000000000..0dc048b156d --- /dev/null +++ b/tests/FSharp.TestHelpers/FSharp.TestHelpers.fsproj @@ -0,0 +1,44 @@ + + + + net472;netcoreapp3.0 + netcoreapp3.0 + win-x86;win-x64 + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81 + true + Library + true + false + false + $(OtherFlags) --warnon:1182 + + + + + scriptlib.fsx + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/fsharp/Compiler/ILChecker.fs b/tests/FSharp.TestHelpers/ILChecker.fs similarity index 99% rename from tests/fsharp/Compiler/ILChecker.fs rename to tests/FSharp.TestHelpers/ILChecker.fs index 4558d089113..9ddc810b81b 100644 --- a/tests/fsharp/Compiler/ILChecker.fs +++ b/tests/FSharp.TestHelpers/ILChecker.fs @@ -1,6 +1,6 @@ // Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -namespace FSharp.Compiler.UnitTests +namespace FSharp.TestHelpers open System open System.IO diff --git a/tests/fsharp/test-framework.fs b/tests/FSharp.TestHelpers/TestFramework.fs similarity index 99% rename from tests/fsharp/test-framework.fs rename to tests/FSharp.TestHelpers/TestFramework.fs index ca2d995b118..63ab601024b 100644 --- a/tests/fsharp/test-framework.fs +++ b/tests/FSharp.TestHelpers/TestFramework.fs @@ -1,3 +1,5 @@ +// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. + module TestFramework open Microsoft.Win32 @@ -7,7 +9,6 @@ open System.Text.RegularExpressions open Scripting open NUnit.Framework - [] module Commands = diff --git a/tests/FSharp.TestHelpers/Utilities.fs b/tests/FSharp.TestHelpers/Utilities.fs new file mode 100644 index 00000000000..ebf201b0f14 --- /dev/null +++ b/tests/FSharp.TestHelpers/Utilities.fs @@ -0,0 +1,133 @@ +// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. + +namespace FSharp.TestHelpers + +open System +open System.IO +open System.Collections.Immutable +open Microsoft.CodeAnalysis +open Microsoft.CodeAnalysis.CSharp +open System.Diagnostics +open FSharp.TestHelpers + +// This file mimics how Roslyn handles their compilation references for compilation testing + +module Utilities = + + [] + type TargetFramework = + | NetStandard20 + | NetCoreApp30 + + module private TestReferences = + + [] + module NetStandard20 = + let netStandard = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netstandard20.netstandard).GetReference(display = "netstandard.dll (netstandard 2.0 ref)") + let mscorlibRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netstandard20.mscorlib).GetReference(display = "mscorlib.dll (netstandard 2.0 ref)") + let systemRuntimeRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netstandard20.System_Runtime).GetReference(display = "System.Runtime.dll (netstandard 2.0 ref)") + let systemCoreRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netstandard20.System_Core).GetReference(display = "System.Core.dll (netstandard 2.0 ref)") + let systemDynamicRuntimeRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netstandard20.System_Dynamic_Runtime).GetReference(display = "System.Dynamic.Runtime.dll (netstandard 2.0 ref)") + + [] + module NetCoreApp30 = + let netStandard = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netcoreapp30.netstandard).GetReference(display = "netstandard.dll (netcoreapp 3.0 ref)") + let mscorlibRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netcoreapp30.mscorlib).GetReference(display = "mscorlib.dll (netcoreapp 3.0 ref)") + let systemRuntimeRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netcoreapp30.System_Runtime).GetReference(display = "System.Runtime.dll (netcoreapp 3.0 ref)") + let systemCoreRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netcoreapp30.System_Core).GetReference(display = "System.Core.dll (netcoreapp 3.0 ref)") + let systemDynamicRuntimeRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netcoreapp30.System_Dynamic_Runtime).GetReference(display = "System.Dynamic.Runtime.dll (netcoreapp 3.0 ref)") + let systemConsoleRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netcoreapp30.System_Console).GetReference(display = "System.Console.dll (netcoreapp 3.0 ref)") + + [] + module private TargetFrameworkUtil = + + open TestReferences + + let private netStandard20References = + lazy ImmutableArray.Create(NetStandard20.netStandard.Value, NetStandard20.mscorlibRef.Value, NetStandard20.systemRuntimeRef.Value, NetStandard20.systemCoreRef.Value, NetStandard20.systemDynamicRuntimeRef.Value) + let private netCoreApp30References = + lazy ImmutableArray.Create(NetCoreApp30.netStandard.Value, NetCoreApp30.mscorlibRef.Value, NetCoreApp30.systemRuntimeRef.Value, NetCoreApp30.systemCoreRef.Value, NetCoreApp30.systemDynamicRuntimeRef.Value, NetCoreApp30.systemConsoleRef.Value) + + let internal getReferences tf = + match tf with + | TargetFramework.NetStandard20 -> netStandard20References.Value + | TargetFramework.NetCoreApp30 -> netCoreApp30References.Value + + type RoslynLanguageVersion = LanguageVersion + + [] + type CSharpCompilationFlags = + | None = 0x0 + | InternalsVisibleTo = 0x1 + + [] + type TestCompilation = + | CSharp of CSharpCompilation + | IL of ilSource: string * result: Lazy + + member this.AssertNoErrorsOrWarnings () = + match this with + | TestCompilation.CSharp c -> + let diagnostics = c.GetDiagnostics () + + if not diagnostics.IsEmpty then + NUnit.Framework.Assert.Fail ("CSharp source diagnostics:\n" + (diagnostics |> Seq.map (fun x -> x.GetMessage () + "\n") |> Seq.reduce (+))) + + | TestCompilation.IL (_, result) -> + let errors, _ = result.Value + if errors.Length > 0 then + NUnit.Framework.Assert.Fail ("IL source errors: " + errors) + + member this.EmitAsFile (outputPath: string) = + match this with + | TestCompilation.CSharp c -> + let c = c.WithAssemblyName(Path.GetFileNameWithoutExtension outputPath) + let emitResult = c.Emit outputPath + if not emitResult.Success then + failwithf "Unable to emit C# compilation.\n%A" emitResult.Diagnostics + + | TestCompilation.IL (_, result) -> + let (_, data) = result.Value + File.WriteAllBytes (outputPath, data) + + type CSharpLanguageVersion = + | CSharp8 = 0 + + [] + type CompilationUtil private () = + + static member CreateCSharpCompilation (source: string, lv: CSharpLanguageVersion, ?tf, ?additionalReferences) = + let lv = + match lv with + | CSharpLanguageVersion.CSharp8 -> LanguageVersion.CSharp8 + | _ -> LanguageVersion.Default + + let tf = defaultArg tf TargetFramework.NetStandard20 + let additionalReferences = defaultArg additionalReferences ImmutableArray.Empty + let references = TargetFrameworkUtil.getReferences tf + let c = + CSharpCompilation.Create( + Guid.NewGuid().ToString (), + [ CSharpSyntaxTree.ParseText (source, CSharpParseOptions lv) ], + references.As().AddRange additionalReferences, + CSharpCompilationOptions (OutputKind.DynamicallyLinkedLibrary)) + TestCompilation.CSharp c + + static member CreateILCompilation (source: string) = + let compute = + lazy + let ilFilePath = Path.GetTempFileName () + let tmp = Path.GetTempFileName() + let dllFilePath = Path.ChangeExtension (tmp, ".dll") + try + File.WriteAllText (ilFilePath, source) + let errors = ILChecker.reassembleIL ilFilePath dllFilePath + try + (errors, File.ReadAllBytes dllFilePath) + with + | _ -> (errors, [||]) + finally + try File.Delete ilFilePath with | _ -> () + try File.Delete tmp with | _ -> () + try File.Delete dllFilePath with | _ -> () + TestCompilation.IL (source, compute) diff --git a/tests/fsharp/Compiler/CodeGen/EmittedIL/LiteralValue.fs b/tests/fsharp/Compiler/CodeGen/EmittedIL/LiteralValue.fs index 7431bd0397c..d54923e66e4 100644 --- a/tests/fsharp/Compiler/CodeGen/EmittedIL/LiteralValue.fs +++ b/tests/fsharp/Compiler/CodeGen/EmittedIL/LiteralValue.fs @@ -2,7 +2,7 @@ namespace FSharp.Compiler.UnitTests.CodeGen.EmittedIL -open FSharp.Compiler.UnitTests +open FSharp.TestHelpers open NUnit.Framework [] diff --git a/tests/fsharp/Compiler/CodeGen/EmittedIL/Mutation.fs b/tests/fsharp/Compiler/CodeGen/EmittedIL/Mutation.fs index f90d93b5d4e..1e6e7b6f51b 100644 --- a/tests/fsharp/Compiler/CodeGen/EmittedIL/Mutation.fs +++ b/tests/fsharp/Compiler/CodeGen/EmittedIL/Mutation.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests.CodeGen.EmittedIL open FSharp.Compiler.UnitTests +open FSharp.TestHelpers open NUnit.Framework [] @@ -357,4 +358,4 @@ type StaticC() = IL_000b: stsfld int32 Mutation05/StaticC::init@10 IL_0010: ret """ - ]) \ No newline at end of file + ]) diff --git a/tests/fsharp/Compiler/CodeGen/EmittedIL/StaticLinkTests.fs b/tests/fsharp/Compiler/CodeGen/EmittedIL/StaticLinkTests.fs index ad5c9eda65b..af2180b93fa 100644 --- a/tests/fsharp/Compiler/CodeGen/EmittedIL/StaticLinkTests.fs +++ b/tests/fsharp/Compiler/CodeGen/EmittedIL/StaticLinkTests.fs @@ -4,7 +4,7 @@ namespace FSharp.Compiler.UnitTests.CodeGen.EmittedIL open System.IO open System.Reflection -open FSharp.Compiler.UnitTests +open FSharp.TestHelpers open NUnit.Framework [] @@ -254,4 +254,4 @@ let _ = exit 0 let module1 = Compilation.Create(source, Fsx, Exe, [|"--standalone"; "--optimize+"|]) - CompilerAssert.Execute(module1, newProcess=true) \ No newline at end of file + CompilerAssert.Execute(module1, newProcess=true) diff --git a/tests/fsharp/Compiler/CodeGen/EmittedIL/StaticMember.fs b/tests/fsharp/Compiler/CodeGen/EmittedIL/StaticMember.fs index cf03cbdf008..bb53ec0c749 100644 --- a/tests/fsharp/Compiler/CodeGen/EmittedIL/StaticMember.fs +++ b/tests/fsharp/Compiler/CodeGen/EmittedIL/StaticMember.fs @@ -2,7 +2,7 @@ namespace FSharp.Compiler.UnitTests.CodeGen.EmittedIL -open FSharp.Compiler.UnitTests +open FSharp.TestHelpers open NUnit.Framework [] @@ -301,4 +301,4 @@ IL_00c8: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Fo extends [runtime]System.Object """ ]) -#endif \ No newline at end of file +#endif diff --git a/tests/fsharp/Compiler/CodeGen/EmittedIL/TailCalls.fs b/tests/fsharp/Compiler/CodeGen/EmittedIL/TailCalls.fs index a61bd24ecb6..018ff10eeae 100644 --- a/tests/fsharp/Compiler/CodeGen/EmittedIL/TailCalls.fs +++ b/tests/fsharp/Compiler/CodeGen/EmittedIL/TailCalls.fs @@ -2,7 +2,7 @@ namespace FSharp.Compiler.UnitTests.CodeGen.EmittedIL -open FSharp.Compiler.UnitTests +open FSharp.TestHelpers open NUnit.Framework [] @@ -250,4 +250,4 @@ let run() = let mutable x = 0 in foo(&x,&x,5) IL_000d: ret } """ - ]) \ No newline at end of file + ]) diff --git a/tests/fsharp/Compiler/Conformance/BasicGrammarElements/BasicConstants.fs b/tests/fsharp/Compiler/Conformance/BasicGrammarElements/BasicConstants.fs index 424b70ea15e..a7e75b4cc5c 100644 --- a/tests/fsharp/Compiler/Conformance/BasicGrammarElements/BasicConstants.fs +++ b/tests/fsharp/Compiler/Conformance/BasicGrammarElements/BasicConstants.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/Conformance/DataExpressions/ComputationExpressions.fs b/tests/fsharp/Compiler/Conformance/DataExpressions/ComputationExpressions.fs index 22afb345e74..9b596c4e9e2 100644 --- a/tests/fsharp/Compiler/Conformance/DataExpressions/ComputationExpressions.fs +++ b/tests/fsharp/Compiler/Conformance/DataExpressions/ComputationExpressions.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ConstraintSolver/MemberConstraints.fs b/tests/fsharp/Compiler/ConstraintSolver/MemberConstraints.fs index c7a67e78389..3e52be3ccf3 100644 --- a/tests/fsharp/Compiler/ConstraintSolver/MemberConstraints.fs +++ b/tests/fsharp/Compiler/ConstraintSolver/MemberConstraints.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ConstraintSolver/PrimitiveConstraints.fs b/tests/fsharp/Compiler/ConstraintSolver/PrimitiveConstraints.fs index 1a77b4431ef..ef422e579fd 100644 --- a/tests/fsharp/Compiler/ConstraintSolver/PrimitiveConstraints.fs +++ b/tests/fsharp/Compiler/ConstraintSolver/PrimitiveConstraints.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] @@ -69,7 +70,7 @@ else () let ``Test primitive : null constraint``() = CompilerAssert.CompileExeAndRun """ -let inline isNull<'a when 'a : null> (x : 'a) = +let inline isNull<'a when 'a : null> (x : 'a) = match x with | null -> "is null" | _ -> (x :> obj).ToString() @@ -91,5 +92,4 @@ runTest /// This suggestion was resolved as by design, /// so the test makes sure, we're emitting error message about 'not being a valid object construction expression' let ``Invalid object constructor``() = // Regression test for FSharp1.0:4189 - CompilerAssert.TypeCheckWithErrorsAndOptionsAgainstBaseLine [| "--test:ErrorRanges" |] "typecheck/constructors/neg_invalid_constructor.fs" - \ No newline at end of file + CompilerAssert.TypeCheckWithErrorsAndOptionsAgainstBaseLine [| "--test:ErrorRanges" |] (__SOURCE_DIRECTORY__ ++ "../../") "typecheck/constructors/neg_invalid_constructor.fs" diff --git a/tests/fsharp/Compiler/ErrorMessages/AccessOfTypeAbbreviationTests.fs b/tests/fsharp/Compiler/ErrorMessages/AccessOfTypeAbbreviationTests.fs index 0143486a349..334448ce725 100644 --- a/tests/fsharp/Compiler/ErrorMessages/AccessOfTypeAbbreviationTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/AccessOfTypeAbbreviationTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/AssignmentErrorTests.fs b/tests/fsharp/Compiler/ErrorMessages/AssignmentErrorTests.fs index c3cc42e43c1..bc9fca86d7d 100644 --- a/tests/fsharp/Compiler/ErrorMessages/AssignmentErrorTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/AssignmentErrorTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/ClassesTests.fs b/tests/fsharp/Compiler/ErrorMessages/ClassesTests.fs index 8fa8856d548..245cade94f0 100644 --- a/tests/fsharp/Compiler/ErrorMessages/ClassesTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/ClassesTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/ConstructorTests.fs b/tests/fsharp/Compiler/ErrorMessages/ConstructorTests.fs index d03747d8daf..685d867b5cd 100644 --- a/tests/fsharp/Compiler/ErrorMessages/ConstructorTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/ConstructorTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/DontSuggestTests.fs b/tests/fsharp/Compiler/ErrorMessages/DontSuggestTests.fs index cf2e040fd26..f9e95610286 100644 --- a/tests/fsharp/Compiler/ErrorMessages/DontSuggestTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/DontSuggestTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/ElseBranchHasWrongTypeTests.fs b/tests/fsharp/Compiler/ErrorMessages/ElseBranchHasWrongTypeTests.fs index 21c7bb29269..d0e46f7402b 100644 --- a/tests/fsharp/Compiler/ErrorMessages/ElseBranchHasWrongTypeTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/ElseBranchHasWrongTypeTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/InvalidNumericLiteralTests.fs b/tests/fsharp/Compiler/ErrorMessages/InvalidNumericLiteralTests.fs index fbfb7177846..6051f4345b6 100644 --- a/tests/fsharp/Compiler/ErrorMessages/InvalidNumericLiteralTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/InvalidNumericLiteralTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/MissingElseBranch.fs b/tests/fsharp/Compiler/ErrorMessages/MissingElseBranch.fs index 06f9cb160d9..0e01e2e3558 100644 --- a/tests/fsharp/Compiler/ErrorMessages/MissingElseBranch.fs +++ b/tests/fsharp/Compiler/ErrorMessages/MissingElseBranch.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/MissingExpressionTests.fs b/tests/fsharp/Compiler/ErrorMessages/MissingExpressionTests.fs index 78fc8fb7728..8d8cf82463e 100644 --- a/tests/fsharp/Compiler/ErrorMessages/MissingExpressionTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/MissingExpressionTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/ModuleAbbreviationTests.fs b/tests/fsharp/Compiler/ErrorMessages/ModuleAbbreviationTests.fs index 0369ea252d9..ee0351ccea8 100644 --- a/tests/fsharp/Compiler/ErrorMessages/ModuleAbbreviationTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/ModuleAbbreviationTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/NameResolutionTests.fs b/tests/fsharp/Compiler/ErrorMessages/NameResolutionTests.fs index 77ee538ec77..dbe1a11e0b6 100644 --- a/tests/fsharp/Compiler/ErrorMessages/NameResolutionTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/NameResolutionTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/SuggestionsTests.fs b/tests/fsharp/Compiler/ErrorMessages/SuggestionsTests.fs index 839f136d1a0..9e09f7fd121 100644 --- a/tests/fsharp/Compiler/ErrorMessages/SuggestionsTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/SuggestionsTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/TypeMismatchTests.fs b/tests/fsharp/Compiler/ErrorMessages/TypeMismatchTests.fs index 652361045c9..4e38a60dcb5 100644 --- a/tests/fsharp/Compiler/ErrorMessages/TypeMismatchTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/TypeMismatchTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/UnitGenericAbstactType.fs b/tests/fsharp/Compiler/ErrorMessages/UnitGenericAbstactType.fs index e9165a4cf6a..9ceadab112e 100644 --- a/tests/fsharp/Compiler/ErrorMessages/UnitGenericAbstactType.fs +++ b/tests/fsharp/Compiler/ErrorMessages/UnitGenericAbstactType.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/UpcastDowncastTests.fs b/tests/fsharp/Compiler/ErrorMessages/UpcastDowncastTests.fs index 739f841bfca..cb3e5c3a8ba 100644 --- a/tests/fsharp/Compiler/ErrorMessages/UpcastDowncastTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/UpcastDowncastTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/WarnExpressionTests.fs b/tests/fsharp/Compiler/ErrorMessages/WarnExpressionTests.fs index 8929183b83e..d83a53fff0a 100644 --- a/tests/fsharp/Compiler/ErrorMessages/WarnExpressionTests.fs +++ b/tests/fsharp/Compiler/ErrorMessages/WarnExpressionTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/ErrorMessages/WrongSyntaxInForLoop.fs b/tests/fsharp/Compiler/ErrorMessages/WrongSyntaxInForLoop.fs index 860e6ca55c2..ef826ef8da0 100644 --- a/tests/fsharp/Compiler/ErrorMessages/WrongSyntaxInForLoop.fs +++ b/tests/fsharp/Compiler/ErrorMessages/WrongSyntaxInForLoop.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/Language/AnonRecordTests.fs b/tests/fsharp/Compiler/Language/AnonRecordTests.fs index befa39f2bfc..73d6c769cee 100644 --- a/tests/fsharp/Compiler/Language/AnonRecordTests.fs +++ b/tests/fsharp/Compiler/Language/AnonRecordTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/Language/ByrefTests.fs b/tests/fsharp/Compiler/Language/ByrefTests.fs index d1b9009a83d..12d600fc512 100644 --- a/tests/fsharp/Compiler/Language/ByrefTests.fs +++ b/tests/fsharp/Compiler/Language/ByrefTests.fs @@ -3,8 +3,9 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers +open FSharp.TestHelpers.Utilities open FSharp.Compiler.SourceCodeServices -open FSharp.Compiler.UnitTests.Utilities [] module ByrefTests = diff --git a/tests/fsharp/Compiler/Language/CompilerDirectiveTests.fs b/tests/fsharp/Compiler/Language/CompilerDirectiveTests.fs index 0b1f634b561..0ce121fcdb4 100644 --- a/tests/fsharp/Compiler/Language/CompilerDirectiveTests.fs +++ b/tests/fsharp/Compiler/Language/CompilerDirectiveTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/Language/CustomCollectionTests.fs b/tests/fsharp/Compiler/Language/CustomCollectionTests.fs index a42ff6e7898..377f0469128 100644 --- a/tests/fsharp/Compiler/Language/CustomCollectionTests.fs +++ b/tests/fsharp/Compiler/Language/CustomCollectionTests.fs @@ -1,6 +1,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/Language/DefaultInterfaceMemberTests.fs b/tests/fsharp/Compiler/Language/DefaultInterfaceMemberTests.fs index 16d847c00aa..f5f269b8a0e 100644 --- a/tests/fsharp/Compiler/Language/DefaultInterfaceMemberTests.fs +++ b/tests/fsharp/Compiler/Language/DefaultInterfaceMemberTests.fs @@ -3,7 +3,8 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework -open FSharp.Compiler.UnitTests.Utilities +open FSharp.TestHelpers +open FSharp.TestHelpers.Utilities open FSharp.Compiler.SourceCodeServices [] @@ -5048,4 +5049,4 @@ let f () = (FSharpErrorSeverity.Error, 3350, (14, 5, 14, 27), "Feature 'default interface member consumption' is not available in F# 4.6. Please use language version " + targetVersion + " or greater.") |]) -#endif \ No newline at end of file +#endif diff --git a/tests/fsharp/Compiler/Language/FixedIndexSliceTests.fs b/tests/fsharp/Compiler/Language/FixedIndexSliceTests.fs index c9efdfbc44a..18539b41539 100644 --- a/tests/fsharp/Compiler/Language/FixedIndexSliceTests.fs +++ b/tests/fsharp/Compiler/Language/FixedIndexSliceTests.fs @@ -1,6 +1,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/Language/HatDesugaringTests.fs b/tests/fsharp/Compiler/Language/HatDesugaringTests.fs index 5d04d65250d..c0c861b7c24 100644 --- a/tests/fsharp/Compiler/Language/HatDesugaringTests.fs +++ b/tests/fsharp/Compiler/Language/HatDesugaringTests.fs @@ -1,6 +1,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/Language/OpenStaticClasses.fs b/tests/fsharp/Compiler/Language/OpenStaticClasses.fs index f4f955b0d5f..1a6c2388b9a 100644 --- a/tests/fsharp/Compiler/Language/OpenStaticClasses.fs +++ b/tests/fsharp/Compiler/Language/OpenStaticClasses.fs @@ -4,6 +4,7 @@ namespace FSharp.Compiler.UnitTests open FSharp.Compiler.SourceCodeServices open NUnit.Framework +open FSharp.TestHelpers (* diff --git a/tests/fsharp/Compiler/Language/OptionalInteropTests.fs b/tests/fsharp/Compiler/Language/OptionalInteropTests.fs index fa68664b040..199b758da4e 100644 --- a/tests/fsharp/Compiler/Language/OptionalInteropTests.fs +++ b/tests/fsharp/Compiler/Language/OptionalInteropTests.fs @@ -4,8 +4,9 @@ namespace FSharp.Compiler.UnitTests open System.Collections.Immutable open NUnit.Framework +open FSharp.TestHelpers +open FSharp.TestHelpers.Utilities open FSharp.Compiler.SourceCodeServices -open FSharp.Compiler.UnitTests.Utilities open Microsoft.CodeAnalysis [] @@ -43,4 +44,4 @@ Test.M(x = Some 1) |> CompilationReference.Create let fs = Compilation.Create(fsSrc, SourceKind.Fsx, CompileOutput.Exe, options = [|"--langversion:preview"|], cmplRefs = [cs]) - CompilerAssert.Compile fs \ No newline at end of file + CompilerAssert.Compile fs diff --git a/tests/fsharp/Compiler/Language/SlicingQuotationTests.fs b/tests/fsharp/Compiler/Language/SlicingQuotationTests.fs index 94cce8c3bd7..3e4565c1a83 100644 --- a/tests/fsharp/Compiler/Language/SlicingQuotationTests.fs +++ b/tests/fsharp/Compiler/Language/SlicingQuotationTests.fs @@ -1,6 +1,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/Language/SpanOptimizationTests.fs b/tests/fsharp/Compiler/Language/SpanOptimizationTests.fs index c5fd682e993..1807bd07f5e 100644 --- a/tests/fsharp/Compiler/Language/SpanOptimizationTests.fs +++ b/tests/fsharp/Compiler/Language/SpanOptimizationTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers #if NETCOREAPP [] diff --git a/tests/fsharp/Compiler/Language/SpanTests.fs b/tests/fsharp/Compiler/Language/SpanTests.fs index 646032880ac..3aa586d85b0 100644 --- a/tests/fsharp/Compiler/Language/SpanTests.fs +++ b/tests/fsharp/Compiler/Language/SpanTests.fs @@ -5,6 +5,7 @@ namespace FSharp.Compiler.UnitTests open System open FSharp.Compiler.SourceCodeServices open NUnit.Framework +open FSharp.TestHelpers #if NETCOREAPP [] diff --git a/tests/fsharp/Compiler/Language/StringConcatOptimizationTests.fs b/tests/fsharp/Compiler/Language/StringConcatOptimizationTests.fs index 37f3ce3c410..7d08368be4f 100644 --- a/tests/fsharp/Compiler/Language/StringConcatOptimizationTests.fs +++ b/tests/fsharp/Compiler/Language/StringConcatOptimizationTests.fs @@ -4,6 +4,7 @@ namespace FSharp.Compiler.UnitTests open System open NUnit.Framework +open FSharp.TestHelpers #if !NETCOREAPP [] @@ -848,4 +849,4 @@ let test9 () = test9IL ] ) -#endif \ No newline at end of file +#endif diff --git a/tests/fsharp/Compiler/Language/TypeAttributeTests.fs b/tests/fsharp/Compiler/Language/TypeAttributeTests.fs index 44a1cac08b7..c005f981fd8 100644 --- a/tests/fsharp/Compiler/Language/TypeAttributeTests.fs +++ b/tests/fsharp/Compiler/Language/TypeAttributeTests.fs @@ -1,6 +1,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/Language/UIntTests.fs b/tests/fsharp/Compiler/Language/UIntTests.fs index c317f96e02f..e6570bb62be 100644 --- a/tests/fsharp/Compiler/Language/UIntTests.fs +++ b/tests/fsharp/Compiler/Language/UIntTests.fs @@ -1,6 +1,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers [] module UIntTests = diff --git a/tests/fsharp/Compiler/Libraries/Core/Collections/ListTests.fs b/tests/fsharp/Compiler/Libraries/Core/Collections/ListTests.fs index 324a0661883..5c90706dee5 100644 --- a/tests/fsharp/Compiler/Libraries/Core/Collections/ListTests.fs +++ b/tests/fsharp/Compiler/Libraries/Core/Collections/ListTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/Regressions/ForInDoMutableRegressionTest.fs b/tests/fsharp/Compiler/Regressions/ForInDoMutableRegressionTest.fs index 7319c2fab76..f7f29224a66 100644 --- a/tests/fsharp/Compiler/Regressions/ForInDoMutableRegressionTest.fs +++ b/tests/fsharp/Compiler/Regressions/ForInDoMutableRegressionTest.fs @@ -4,6 +4,7 @@ namespace FSharp.Compiler.UnitTests open System open NUnit.Framework +open FSharp.TestHelpers [] module ForInDoMutableRegressionTest = diff --git a/tests/fsharp/Compiler/Regressions/IndexerRegressionTests.fs b/tests/fsharp/Compiler/Regressions/IndexerRegressionTests.fs index 2eafd9a0cc9..7ca54fe1082 100644 --- a/tests/fsharp/Compiler/Regressions/IndexerRegressionTests.fs +++ b/tests/fsharp/Compiler/Regressions/IndexerRegressionTests.fs @@ -4,6 +4,7 @@ namespace FSharp.Compiler.UnitTests open System open NUnit.Framework +open FSharp.TestHelpers [] module IndexerRegressionTests = diff --git a/tests/fsharp/Compiler/Stress/LargeExprTests.fs b/tests/fsharp/Compiler/Stress/LargeExprTests.fs index 004f737cb9c..a440c289646 100644 --- a/tests/fsharp/Compiler/Stress/LargeExprTests.fs +++ b/tests/fsharp/Compiler/Stress/LargeExprTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers [] module LargeExprTests = diff --git a/tests/fsharp/Compiler/Utilities.fs b/tests/fsharp/Compiler/Utilities.fs deleted file mode 100644 index f6219b40be7..00000000000 --- a/tests/fsharp/Compiler/Utilities.fs +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. - -module FSharp.Compiler.UnitTests.Utilities - -open System -open System.IO -open System.Collections.Immutable -open Microsoft.CodeAnalysis -open Microsoft.CodeAnalysis.CSharp -open System.Diagnostics - -// This file mimics how Roslyn handles their compilation references for compilation testing - -[] -type TargetFramework = - | NetStandard20 - | NetCoreApp30 - -module private TestReferences = - - [] - module NetStandard20 = - - let netStandard = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netstandard20.netstandard).GetReference(display = "netstandard.dll (netstandard 2.0 ref)") - - let mscorlibRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netstandard20.mscorlib).GetReference(display = "mscorlib.dll (netstandard 2.0 ref)") - - let systemRuntimeRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netstandard20.System_Runtime).GetReference(display = "System.Runtime.dll (netstandard 2.0 ref)") - - let systemCoreRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netstandard20.System_Core).GetReference(display = "System.Core.dll (netstandard 2.0 ref)") - - let systemDynamicRuntimeRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netstandard20.System_Dynamic_Runtime).GetReference(display = "System.Dynamic.Runtime.dll (netstandard 2.0 ref)") - - [] - module NetCoreApp30 = - - let netStandard = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netcoreapp30.netstandard).GetReference(display = "netstandard.dll (netcoreapp 3.0 ref)") - - let mscorlibRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netcoreapp30.mscorlib).GetReference(display = "mscorlib.dll (netcoreapp 3.0 ref)") - - let systemRuntimeRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netcoreapp30.System_Runtime).GetReference(display = "System.Runtime.dll (netcoreapp 3.0 ref)") - - let systemCoreRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netcoreapp30.System_Core).GetReference(display = "System.Core.dll (netcoreapp 3.0 ref)") - - let systemDynamicRuntimeRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netcoreapp30.System_Dynamic_Runtime).GetReference(display = "System.Dynamic.Runtime.dll (netcoreapp 3.0 ref)") - - let systemConsoleRef = lazy AssemblyMetadata.CreateFromImage(TestResources.NetFX.netcoreapp30.System_Console).GetReference(display = "System.Console.dll (netcoreapp 3.0 ref)") - -[] -module private TargetFrameworkUtil = - - open TestReferences - - let private netStandard20References = - lazy ImmutableArray.Create(NetStandard20.netStandard.Value, NetStandard20.mscorlibRef.Value, NetStandard20.systemRuntimeRef.Value, NetStandard20.systemCoreRef.Value, NetStandard20.systemDynamicRuntimeRef.Value) - - let private netCoreApp30References = - lazy ImmutableArray.Create(NetCoreApp30.netStandard.Value, NetCoreApp30.mscorlibRef.Value, NetCoreApp30.systemRuntimeRef.Value, NetCoreApp30.systemCoreRef.Value, NetCoreApp30.systemDynamicRuntimeRef.Value, NetCoreApp30.systemConsoleRef.Value) - - let getReferences tf = - match tf with - | TargetFramework.NetStandard20 -> netStandard20References.Value - | TargetFramework.NetCoreApp30 -> netCoreApp30References.Value - -type RoslynLanguageVersion = LanguageVersion - -[] -type CSharpCompilationFlags = - | None = 0x0 - | InternalsVisibleTo = 0x1 - -[] -type TestCompilation = - | CSharp of CSharpCompilation - | IL of ilSource: string * result: Lazy - - member this.AssertNoErrorsOrWarnings () = - match this with - | TestCompilation.CSharp c -> - let diagnostics = c.GetDiagnostics () - - if not diagnostics.IsEmpty then - NUnit.Framework.Assert.Fail ("CSharp source diagnostics:\n" + (diagnostics |> Seq.map (fun x -> x.GetMessage () + "\n") |> Seq.reduce (+))) - - | TestCompilation.IL (_, result) -> - let errors, _ = result.Value - if errors.Length > 0 then - NUnit.Framework.Assert.Fail ("IL source errors: " + errors) - - member this.EmitAsFile (outputPath: string) = - match this with - | TestCompilation.CSharp c -> - let c = c.WithAssemblyName(Path.GetFileNameWithoutExtension outputPath) - let emitResult = c.Emit outputPath - if not emitResult.Success then - failwithf "Unable to emit C# compilation.\n%A" emitResult.Diagnostics - - | TestCompilation.IL (_, result) -> - let (_, data) = result.Value - File.WriteAllBytes (outputPath, data) - -type CSharpLanguageVersion = - | CSharp8 = 0 - -[] -type CompilationUtil private () = - - static member CreateCSharpCompilation (source: string, lv: CSharpLanguageVersion, ?tf, ?additionalReferences) = - let lv = - match lv with - | CSharpLanguageVersion.CSharp8 -> LanguageVersion.CSharp8 - | _ -> LanguageVersion.Default - - let tf = defaultArg tf TargetFramework.NetStandard20 - let additionalReferences = defaultArg additionalReferences ImmutableArray.Empty - let references = TargetFrameworkUtil.getReferences tf - let c = - CSharpCompilation.Create( - Guid.NewGuid().ToString (), - [ CSharpSyntaxTree.ParseText (source, CSharpParseOptions lv) ], - references.As().AddRange additionalReferences, - CSharpCompilationOptions (OutputKind.DynamicallyLinkedLibrary)) - TestCompilation.CSharp c - - static member CreateILCompilation (source: string) = - let compute = - lazy - let ilFilePath = Path.GetTempFileName () - let tmp = Path.GetTempFileName() - let dllFilePath = Path.ChangeExtension (tmp, ".dll") - try - File.WriteAllText (ilFilePath, source) - let errors = ILChecker.reassembleIL ilFilePath dllFilePath - try - (errors, File.ReadAllBytes dllFilePath) - with - | _ -> (errors, [||]) - finally - try File.Delete ilFilePath with | _ -> () - try File.Delete tmp with | _ -> () - try File.Delete dllFilePath with | _ -> () - TestCompilation.IL (source, compute) \ No newline at end of file diff --git a/tests/fsharp/Compiler/Warnings/AssignmentWarningTests.fs b/tests/fsharp/Compiler/Warnings/AssignmentWarningTests.fs index 533d4c43445..29cceedd782 100644 --- a/tests/fsharp/Compiler/Warnings/AssignmentWarningTests.fs +++ b/tests/fsharp/Compiler/Warnings/AssignmentWarningTests.fs @@ -3,6 +3,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/Warnings/ExperimentalAttributeTests.fs b/tests/fsharp/Compiler/Warnings/ExperimentalAttributeTests.fs index dc930600241..99e4b54c87f 100644 --- a/tests/fsharp/Compiler/Warnings/ExperimentalAttributeTests.fs +++ b/tests/fsharp/Compiler/Warnings/ExperimentalAttributeTests.fs @@ -2,6 +2,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/Compiler/Warnings/PatternMatchingWarningTests.fs b/tests/fsharp/Compiler/Warnings/PatternMatchingWarningTests.fs index f8f9804ef23..5f8e161c41a 100644 --- a/tests/fsharp/Compiler/Warnings/PatternMatchingWarningTests.fs +++ b/tests/fsharp/Compiler/Warnings/PatternMatchingWarningTests.fs @@ -1,6 +1,7 @@ namespace FSharp.Compiler.UnitTests open NUnit.Framework +open FSharp.TestHelpers open FSharp.Compiler.SourceCodeServices [] diff --git a/tests/fsharp/FSharpSuite.Tests.fsproj b/tests/fsharp/FSharpSuite.Tests.fsproj index 80517837708..09a02d492ca 100644 --- a/tests/fsharp/FSharpSuite.Tests.fsproj +++ b/tests/fsharp/FSharpSuite.Tests.fsproj @@ -13,13 +13,13 @@ false $(OtherFlags) --warnon:1182 nunit + 3186 scriptlib.fsx - NunitHelpers.fs @@ -27,9 +27,6 @@ - - - @@ -92,6 +89,7 @@ + diff --git a/tests/fsharp/TypeProviderTests.fs b/tests/fsharp/TypeProviderTests.fs index 55df3fa88c5..64680071373 100644 --- a/tests/fsharp/TypeProviderTests.fs +++ b/tests/fsharp/TypeProviderTests.fs @@ -3,8 +3,8 @@ #if INTERACTIVE //#r @"../../release/net40/bin/FSharp.Compiler.dll" #r @"../../packages/NUnit.3.5.0/lib/net45/nunit.framework.dll" -#load "../../src/scripts/scriptlib.fsx" -#load "test-framework.fs" +#load "../../src/scripts/scriptlib.fsx" +#load "../FSharp.TestHelpers/TestFramework.fs" #load "single-test.fs" #else [] @@ -31,13 +31,16 @@ let FSC_BASIC = FSC_OPT_PLUS_DEBUG let FSI_BASIC = FSI_FILE #endif +let inline getTestsDirectory dir = __SOURCE_DIRECTORY__ ++ dir +let testConfig' = getTestsDirectory >> testConfig + [] -let diamondAssembly () = - let cfg = testConfig "typeProviders/diamondAssembly" +let diamondAssembly () = + let cfg = testConfig' "typeProviders/diamondAssembly" rm cfg "provider.dll" - // Add a version flag to make this generate native resources. The native resources aren't important and + // Add a version flag to make this generate native resources. The native resources aren't important and // can be dropped when the provided.dll is linked but we need to tolerate generated DLLs that have them fsc cfg "%s" "--out:provided.dll -a --version:0.0.0.1" [".." ++ "helloWorld" ++ "provided.fs"] @@ -66,17 +69,17 @@ let diamondAssembly () = fsi cfg "%s" cfg.fsi_flags ["test3.fsx"] testOkFile.CheckExists() - + [] -let globalNamespace () = - let cfg = testConfig "typeProviders/globalNamespace" +let globalNamespace () = + let cfg = testConfig' "typeProviders/globalNamespace" csc cfg """/out:globalNamespaceTP.dll /debug+ /target:library /r:"%s" """ cfg.FSCOREDLLPATH ["globalNamespaceTP.cs"] fsc cfg "%s /debug+ /r:globalNamespaceTP.dll /optimize-" cfg.fsc_flags ["test.fsx"] - -let helloWorld p = - let cfg = testConfig "typeProviders/helloWorld" + +let helloWorld p = + let cfg = testConfig' "typeProviders/helloWorld" fsc cfg "%s" "--out:provided1.dll -g -a" [".." ++ "helloWorld" ++ "provided.fs"] @@ -100,7 +103,7 @@ let helloWorld p = fsc cfg "--out:provider.dll -a" ["provider.fsx"] - SingleTest.singleTestBuildAndRunAux cfg p + SingleTest.singleTestBuildAndRunAux cfg p rm cfg "provider_with_binary_compat_changes.dll" @@ -120,7 +123,7 @@ let helloWorld p = log "popd" mkdir cfg "bincompat2" - + log "pushd bincompat2" let bincompat2 = getfullpath cfg "bincompat2" @@ -150,8 +153,8 @@ let ``helloWorld fsi`` () = helloWorld FSI_STDIN #endif [] -let helloWorldCSharp () = - let cfg = testConfig "typeProviders/helloWorldCSharp" +let helloWorldCSharp () = + let cfg = testConfig' "typeProviders/helloWorldCSharp" rm cfg "magic.dll" @@ -170,14 +173,14 @@ let helloWorldCSharp () = peverify cfg "test.exe" exec cfg ("." ++ "test.exe") "" - + [] [] [] [] [] -[] +[] [] [] [] @@ -200,7 +203,7 @@ let helloWorldCSharp () = [] [] let ``negative type provider tests`` (name:string) = - let cfg = testConfig "typeProviders/negTests" + let cfg = testConfig' "typeProviders/negTests" let dir = cfg.Directory if requireENCulture () then @@ -235,7 +238,7 @@ let ``negative type provider tests`` (name:string) = fsc cfg "--out:MostBasicProvider.dll -a" ["MostBasicProvider.fsx"] - let preprocess name pref = + let preprocess name pref = let dirp = (dir |> Commands.pathAddBackslash) do File.ReadAllText(sprintf "%s%s.%sbslpp" dirp name pref) @@ -247,7 +250,7 @@ let ``negative type provider tests`` (name:string) = if name = "ProviderAttribute_EmptyConsume" || name = "providerAttributeErrorConsume" then () else fsc cfg "--define:%s --out:provider_%s.dll -a" name name ["provider.fsx"] - if fileExists (sprintf "%s.bslpp" name) then preprocess name "" + if fileExists (sprintf "%s.bslpp" name) then preprocess name "" if fileExists (sprintf "%s.vsbslpp" name) then preprocess name "vs" @@ -255,9 +258,9 @@ let ``negative type provider tests`` (name:string) = let splitAssembly subdir project = - let cfg = testConfig project + let cfg = testConfig' project - let clean() = + let clean() = rm cfg "providerDesigner.dll" rmdir cfg "typeproviders" rmdir cfg "tools" @@ -272,7 +275,7 @@ let splitAssembly subdir project = fsc cfg "--out:test.exe -r:provider.dll" ["test.fsx"] - begin + begin use testOkFile = fileguard cfg "test.ok" exec cfg ("." ++ "test.exe") "" @@ -280,7 +283,7 @@ let splitAssembly subdir project = testOkFile.CheckExists() end - begin + begin use testOkFile = fileguard cfg "test.ok" fsi cfg "%s" cfg.fsi_flags ["test.fsx"] @@ -292,7 +295,7 @@ let splitAssembly subdir project = clean() // check a few load locations - let someLoadPaths = + let someLoadPaths = [ subdir ++ "fsharp41" ++ "net461" subdir ++ "fsharp41" ++ "net45" // include up one directory @@ -311,7 +314,7 @@ let splitAssembly subdir project = fsc cfg "--out:test.exe -r:provider.dll" ["test.fsx"] - begin + begin use testOkFile = fileguard cfg "test.ok" exec cfg ("." ++ "test.exe") "" @@ -319,7 +322,7 @@ let splitAssembly subdir project = testOkFile.CheckExists() end - begin + begin use testOkFile = fileguard cfg "test.ok" fsi cfg "%s" cfg.fsi_flags ["test.fsx"] @@ -327,16 +330,17 @@ let splitAssembly subdir project = end clean() +let splitAssembly' = getTestsDirectory >> splitAssembly [] -let splitAssemblyTools () = splitAssembly "tools" "typeProviders/splitAssemblyTools" +let splitAssemblyTools () = splitAssembly' "tools" "typeProviders/splitAssemblyTools" [] -let splitAssemblyTypeProviders () = splitAssembly "typeproviders" "typeProviders/splitAssemblyTypeproviders" +let splitAssemblyTypeProviders () = splitAssembly' "typeproviders" "typeProviders/splitAssemblyTypeproviders" [] -let wedgeAssembly () = - let cfg = testConfig "typeProviders/wedgeAssembly" +let wedgeAssembly () = + let cfg = testConfig' "typeProviders/wedgeAssembly" rm cfg "provider.dll" diff --git a/tests/fsharp/tests.fs b/tests/fsharp/tests.fs index c4792c3cf1c..29a5d8b186f 100644 --- a/tests/fsharp/tests.fs +++ b/tests/fsharp/tests.fs @@ -1,8 +1,8 @@ // To run these tests in F# Interactive , 'build net40', then send this chunk, then evaluate body of a test #if INTERACTIVE #r @"../../packages/NUnit.3.5.0/lib/net45/nunit.framework.dll" -#load "../../src/scripts/scriptlib.fsx" -#load "test-framework.fs" +#load "../../src/scripts/scriptlib.fsx" +#load "../FSharp.TestHelpers/TestFramework.fs" #load "single-test.fs" #else module ``FSharp-Tests-Core`` @@ -29,222 +29,227 @@ let FSI_BASIC = FSI_FILE #endif // ^^^^^^^^^^^^ To run these tests in F# Interactive , 'build net40', then send this chunk, then evaluate body of a test ^^^^^^^^^^^^ +let inline getTestsDirectory dir = __SOURCE_DIRECTORY__ ++ dir +let singleTestBuildAndRun' = getTestsDirectory >> singleTestBuildAndRun +let singleTestBuildAndRunVersion' = getTestsDirectory >> singleTestBuildAndRunVersion +let testConfig' = getTestsDirectory >> testConfig + module CoreTests = // These tests are enabled for .NET Framework and .NET Core [] - let ``access-FSC_BASIC``() = singleTestBuildAndRun "core/access" FSC_BASIC + let ``access-FSC_BASIC``() = singleTestBuildAndRun' "core/access" FSC_BASIC [] - let ``access-FSI_BASIC``() = singleTestBuildAndRun "core/access" FSI_BASIC + let ``access-FSI_BASIC``() = singleTestBuildAndRun' "core/access" FSI_BASIC [] - let ``apporder-FSC_BASIC`` () = singleTestBuildAndRun "core/apporder" FSC_BASIC + let ``apporder-FSC_BASIC`` () = singleTestBuildAndRun' "core/apporder" FSC_BASIC [] - let ``apporder-FSI_BASIC`` () = singleTestBuildAndRun "core/apporder" FSI_BASIC + let ``apporder-FSI_BASIC`` () = singleTestBuildAndRun' "core/apporder" FSI_BASIC [] - let ``array-FSC_BASIC`` () = singleTestBuildAndRun "core/array" FSC_BASIC + let ``array-FSC_BASIC`` () = singleTestBuildAndRun' "core/array" FSC_BASIC [] - let ``array-FSI_BASIC`` () = singleTestBuildAndRun "core/array" FSI_BASIC + let ``array-FSI_BASIC`` () = singleTestBuildAndRun' "core/array" FSI_BASIC [] - let ``comprehensions-FSC_BASIC`` () = singleTestBuildAndRun "core/comprehensions" FSC_BASIC + let ``comprehensions-FSC_BASIC`` () = singleTestBuildAndRun' "core/comprehensions" FSC_BASIC [] - let ``comprehensions-FSI_BASIC`` () = singleTestBuildAndRun "core/comprehensions" FSI_BASIC + let ``comprehensions-FSI_BASIC`` () = singleTestBuildAndRun' "core/comprehensions" FSI_BASIC [] - let ``comprehensionshw-FSC_BASIC`` () = singleTestBuildAndRun "core/comprehensions-hw" FSC_BASIC + let ``comprehensionshw-FSC_BASIC`` () = singleTestBuildAndRun' "core/comprehensions-hw" FSC_BASIC [] - let ``comprehensionshw-FSI_BASIC`` () = singleTestBuildAndRun "core/comprehensions-hw" FSI_BASIC + let ``comprehensionshw-FSI_BASIC`` () = singleTestBuildAndRun' "core/comprehensions-hw" FSI_BASIC [] - let ``genericmeasures-FSC_BASIC`` () = singleTestBuildAndRun "core/genericmeasures" FSC_BASIC + let ``genericmeasures-FSC_BASIC`` () = singleTestBuildAndRun' "core/genericmeasures" FSC_BASIC [] - let ``genericmeasures-FSI_BASIC`` () = singleTestBuildAndRun "core/genericmeasures" FSI_BASIC + let ``genericmeasures-FSI_BASIC`` () = singleTestBuildAndRun' "core/genericmeasures" FSI_BASIC [] - let ``innerpoly-FSC_BASIC`` () = singleTestBuildAndRun "core/innerpoly" FSC_BASIC + let ``innerpoly-FSC_BASIC`` () = singleTestBuildAndRun' "core/innerpoly" FSC_BASIC [] - let ``innerpoly-FSI_BASIC`` () = singleTestBuildAndRun "core/innerpoly" FSI_BASIC + let ``innerpoly-FSI_BASIC`` () = singleTestBuildAndRun' "core/innerpoly" FSI_BASIC [] - let ``namespaceAttributes-FSC_BASIC`` () = singleTestBuildAndRun "core/namespaces" FSC_BASIC + let ``namespaceAttributes-FSC_BASIC`` () = singleTestBuildAndRun' "core/namespaces" FSC_BASIC [] - let ``unicode2-FSC_BASIC`` () = singleTestBuildAndRun "core/unicode" FSC_BASIC // TODO: fails on coreclr + let ``unicode2-FSC_BASIC`` () = singleTestBuildAndRun' "core/unicode" FSC_BASIC // TODO: fails on coreclr [] - let ``unicode2-FSI_BASIC`` () = singleTestBuildAndRun "core/unicode" FSI_BASIC + let ``unicode2-FSI_BASIC`` () = singleTestBuildAndRun' "core/unicode" FSI_BASIC [] - let ``lazy test-FSC_BASIC`` () = singleTestBuildAndRun "core/lazy" FSC_BASIC + let ``lazy test-FSC_BASIC`` () = singleTestBuildAndRun' "core/lazy" FSC_BASIC [] - let ``lazy test-FSI_BASIC`` () = singleTestBuildAndRun "core/lazy" FSI_BASIC + let ``lazy test-FSI_BASIC`` () = singleTestBuildAndRun' "core/lazy" FSI_BASIC [] - let ``letrec-FSC_BASIC`` () = singleTestBuildAndRun "core/letrec" FSC_BASIC + let ``letrec-FSC_BASIC`` () = singleTestBuildAndRun' "core/letrec" FSC_BASIC [] - let ``letrec-FSI_BASIC`` () = singleTestBuildAndRun "core/letrec" FSI_BASIC + let ``letrec-FSI_BASIC`` () = singleTestBuildAndRun' "core/letrec" FSI_BASIC [] - let ``letrec (mutrec variations part one) FSC_BASIC`` () = singleTestBuildAndRun "core/letrec-mutrec" FSC_BASIC + let ``letrec (mutrec variations part one) FSC_BASIC`` () = singleTestBuildAndRun' "core/letrec-mutrec" FSC_BASIC [] - let ``letrec (mutrec variations part one) FSI_BASIC`` () = singleTestBuildAndRun "core/letrec-mutrec" FSI_BASIC + let ``letrec (mutrec variations part one) FSI_BASIC`` () = singleTestBuildAndRun' "core/letrec-mutrec" FSI_BASIC [] - let ``libtest-FSC_BASIC`` () = singleTestBuildAndRun "core/libtest" FSC_BASIC + let ``libtest-FSC_BASIC`` () = singleTestBuildAndRun' "core/libtest" FSC_BASIC [] - let ``libtest-FSI_BASIC`` () = singleTestBuildAndRun "core/libtest" FSI_BASIC + let ``libtest-FSI_BASIC`` () = singleTestBuildAndRun' "core/libtest" FSI_BASIC [] - let ``lift-FSC_BASIC`` () = singleTestBuildAndRun "core/lift" FSC_BASIC + let ``lift-FSC_BASIC`` () = singleTestBuildAndRun' "core/lift" FSC_BASIC [] - let ``lift-FSI_BASIC`` () = singleTestBuildAndRun "core/lift" FSI_BASIC + let ``lift-FSI_BASIC`` () = singleTestBuildAndRun' "core/lift" FSI_BASIC [] - let ``map-FSC_BASIC`` () = singleTestBuildAndRun "core/map" FSC_BASIC + let ``map-FSC_BASIC`` () = singleTestBuildAndRun' "core/map" FSC_BASIC [] - let ``map-FSI_BASIC`` () = singleTestBuildAndRun "core/map" FSI_BASIC + let ``map-FSI_BASIC`` () = singleTestBuildAndRun' "core/map" FSI_BASIC [] - let ``measures-FSC_BASIC`` () = singleTestBuildAndRun "core/measures" FSC_BASIC + let ``measures-FSC_BASIC`` () = singleTestBuildAndRun' "core/measures" FSC_BASIC [] - let ``measures-FSI_BASIC`` () = singleTestBuildAndRun "core/measures" FSI_BASIC + let ``measures-FSI_BASIC`` () = singleTestBuildAndRun' "core/measures" FSI_BASIC [] - let ``nested-FSC_BASIC`` () = singleTestBuildAndRun "core/nested" FSC_BASIC + let ``nested-FSC_BASIC`` () = singleTestBuildAndRun' "core/nested" FSC_BASIC [] - let ``nested-FSI_BASIC`` () = singleTestBuildAndRun "core/nested" FSI_BASIC + let ``nested-FSI_BASIC`` () = singleTestBuildAndRun' "core/nested" FSI_BASIC [] - let ``members-ops-FSC_BASIC`` () = singleTestBuildAndRun "core/members/ops" FSC_BASIC + let ``members-ops-FSC_BASIC`` () = singleTestBuildAndRun' "core/members/ops" FSC_BASIC [] - let ``members-ops-FSI_BASIC`` () = singleTestBuildAndRun "core/members/ops" FSI_BASIC + let ``members-ops-FSI_BASIC`` () = singleTestBuildAndRun' "core/members/ops" FSI_BASIC [] - let ``members-ops-mutrec-FSC_BASIC`` () = singleTestBuildAndRun "core/members/ops-mutrec" FSC_BASIC + let ``members-ops-mutrec-FSC_BASIC`` () = singleTestBuildAndRun' "core/members/ops-mutrec" FSC_BASIC [] - let ``members-ops-mutrec-FSI_BASIC`` () = singleTestBuildAndRun "core/members/ops-mutrec" FSI_BASIC + let ``members-ops-mutrec-FSI_BASIC`` () = singleTestBuildAndRun' "core/members/ops-mutrec" FSI_BASIC [] - let ``seq-FSC_BASIC`` () = singleTestBuildAndRun "core/seq" FSC_BASIC + let ``seq-FSC_BASIC`` () = singleTestBuildAndRun' "core/seq" FSC_BASIC [] - let ``seq-FSI_BASIC`` () = singleTestBuildAndRun "core/seq" FSI_BASIC + let ``seq-FSI_BASIC`` () = singleTestBuildAndRun' "core/seq" FSI_BASIC [] - let ``math-numbers-FSC_BASIC`` () = singleTestBuildAndRun "core/math/numbers" FSC_BASIC + let ``math-numbers-FSC_BASIC`` () = singleTestBuildAndRun' "core/math/numbers" FSC_BASIC [] - let ``math-numbers-FSI_BASIC`` () = singleTestBuildAndRun "core/math/numbers" FSI_BASIC + let ``math-numbers-FSI_BASIC`` () = singleTestBuildAndRun' "core/math/numbers" FSI_BASIC [] - let ``members-ctree-FSC_BASIC`` () = singleTestBuildAndRun "core/members/ctree" FSC_BASIC + let ``members-ctree-FSC_BASIC`` () = singleTestBuildAndRun' "core/members/ctree" FSC_BASIC [] - let ``members-ctree-FSI_BASIC`` () = singleTestBuildAndRun "core/members/ctree" FSI_BASIC + let ``members-ctree-FSI_BASIC`` () = singleTestBuildAndRun' "core/members/ctree" FSI_BASIC [] - let ``members-factors-FSC_BASIC`` () = singleTestBuildAndRun "core/members/factors" FSC_BASIC + let ``members-factors-FSC_BASIC`` () = singleTestBuildAndRun' "core/members/factors" FSC_BASIC [] - let ``members-factors-FSI_BASIC`` () = singleTestBuildAndRun "core/members/factors" FSI_BASIC + let ``members-factors-FSI_BASIC`` () = singleTestBuildAndRun' "core/members/factors" FSI_BASIC [] - let ``members-factors-mutrec-FSC_BASIC`` () = singleTestBuildAndRun "core/members/factors-mutrec" FSC_BASIC + let ``members-factors-mutrec-FSC_BASIC`` () = singleTestBuildAndRun' "core/members/factors-mutrec" FSC_BASIC [] - let ``members-factors-mutrec-FSI_BASIC`` () = singleTestBuildAndRun "core/members/factors-mutrec" FSI_BASIC + let ``members-factors-mutrec-FSI_BASIC`` () = singleTestBuildAndRun' "core/members/factors-mutrec" FSI_BASIC [] - let ``graph-FSC_BASIC`` () = singleTestBuildAndRun "perf/graph" FSC_BASIC + let ``graph-FSC_BASIC`` () = singleTestBuildAndRun' "perf/graph" FSC_BASIC [] - let ``graph-FSI_BASIC`` () = singleTestBuildAndRun "perf/graph" FSI_BASIC + let ``graph-FSI_BASIC`` () = singleTestBuildAndRun' "perf/graph" FSI_BASIC [] - let ``nbody-FSC_BASIC`` () = singleTestBuildAndRun "perf/nbody" FSC_BASIC + let ``nbody-FSC_BASIC`` () = singleTestBuildAndRun' "perf/nbody" FSC_BASIC [] - let ``nbody-FSI_BASIC`` () = singleTestBuildAndRun "perf/nbody" FSI_BASIC + let ``nbody-FSI_BASIC`` () = singleTestBuildAndRun' "perf/nbody" FSI_BASIC [] - let ``letrec (mutrec variations part two) FSC_BASIC`` () = singleTestBuildAndRun "core/letrec-mutrec2" FSC_BASIC + let ``letrec (mutrec variations part two) FSC_BASIC`` () = singleTestBuildAndRun' "core/letrec-mutrec2" FSC_BASIC [] - let ``letrec (mutrec variations part two) FSI_BASIC`` () = singleTestBuildAndRun "core/letrec-mutrec2" FSI_BASIC + let ``letrec (mutrec variations part two) FSI_BASIC`` () = singleTestBuildAndRun' "core/letrec-mutrec2" FSI_BASIC [] - let ``printf-FSC_BASIC`` () = singleTestBuildAndRun "core/printf" FSC_BASIC + let ``printf-FSC_BASIC`` () = singleTestBuildAndRun' "core/printf" FSC_BASIC [] - let ``tlr-FSC_BASIC`` () = singleTestBuildAndRun "core/tlr" FSC_BASIC + let ``tlr-FSC_BASIC`` () = singleTestBuildAndRun' "core/tlr" FSC_BASIC [] - let ``tlr-FSI_BASIC`` () = singleTestBuildAndRun "core/tlr" FSI_BASIC + let ``tlr-FSI_BASIC`` () = singleTestBuildAndRun' "core/tlr" FSI_BASIC [] - let ``subtype-FSC_BASIC`` () = singleTestBuildAndRun "core/subtype" FSC_BASIC + let ``subtype-FSC_BASIC`` () = singleTestBuildAndRun' "core/subtype" FSC_BASIC [] - let ``subtype-FSI_BASIC`` () = singleTestBuildAndRun "core/subtype" FSI_BASIC + let ``subtype-FSI_BASIC`` () = singleTestBuildAndRun' "core/subtype" FSI_BASIC [] - let ``syntax-FSC_BASIC`` () = singleTestBuildAndRun "core/syntax" FSC_BASIC + let ``syntax-FSC_BASIC`` () = singleTestBuildAndRun' "core/syntax" FSC_BASIC [] - let ``syntax-FSI_BASIC`` () = singleTestBuildAndRun "core/syntax" FSI_BASIC + let ``syntax-FSI_BASIC`` () = singleTestBuildAndRun' "core/syntax" FSI_BASIC [] - let ``test int32-FSC_BASIC`` () = singleTestBuildAndRun "core/int32" FSC_BASIC + let ``test int32-FSC_BASIC`` () = singleTestBuildAndRun' "core/int32" FSC_BASIC [] - let ``test int32-FSI_BASIC`` () = singleTestBuildAndRun "core/int32" FSI_BASIC + let ``test int32-FSI_BASIC`` () = singleTestBuildAndRun' "core/int32" FSI_BASIC [] - let ``quotes-FSC-BASIC`` () = singleTestBuildAndRun "core/quotes" FSC_BASIC + let ``quotes-FSC-BASIC`` () = singleTestBuildAndRun' "core/quotes" FSC_BASIC [] - let ``quotes-FSI-BASIC`` () = singleTestBuildAndRun "core/quotes" FSI_BASIC + let ``quotes-FSI-BASIC`` () = singleTestBuildAndRun' "core/quotes" FSI_BASIC [] - let ``recordResolution-FSC_BASIC`` () = singleTestBuildAndRun "core/recordResolution" FSC_BASIC + let ``recordResolution-FSC_BASIC`` () = singleTestBuildAndRun' "core/recordResolution" FSC_BASIC [] - let ``recordResolution-FSI_BASIC`` () = singleTestBuildAndRun "core/recordResolution" FSI_BASIC + let ``recordResolution-FSI_BASIC`` () = singleTestBuildAndRun' "core/recordResolution" FSI_BASIC [] let ``SDKTests`` () = - let cfg = testConfig "SDKTests" + let cfg = testConfig' "SDKTests" exec cfg cfg.DotNetExe ("msbuild " + Path.Combine(cfg.Directory, "AllSdkTargetsTests.proj")) #if !NETCOREAPP [] - let ``attributes-FSC_BASIC`` () = singleTestBuildAndRun "core/attributes" FSC_BASIC + let ``attributes-FSC_BASIC`` () = singleTestBuildAndRun' "core/attributes" FSC_BASIC [] - let ``attributes-FSI_BASIC`` () = singleTestBuildAndRun "core/attributes" FSI_BASIC + let ``attributes-FSI_BASIC`` () = singleTestBuildAndRun' "core/attributes" FSI_BASIC [] - let byrefs () = + let byrefs () = - let cfg = testConfig "core/byrefs" + let cfg = testConfig' "core/byrefs" begin use testOkFile = fileguard cfg "test.ok" @@ -285,9 +290,9 @@ module CoreTests = end [] - let span () = + let span () = - let cfg = testConfig "core/span" + let cfg = testConfig' "core/span" let cfg = { cfg with fsc_flags = sprintf "%s --test:StackSpan" cfg.fsc_flags} @@ -331,8 +336,8 @@ module CoreTests = end [] - let asyncStackTraces () = - let cfg = testConfig "core/asyncStackTraces" + let asyncStackTraces () = + let cfg = testConfig' "core/asyncStackTraces" use testOkFile = fileguard cfg "test.ok" @@ -343,88 +348,88 @@ module CoreTests = testOkFile.CheckExists() [] - let ``lots-of-conditionals``() = - let cfg = testConfig "core/large/conditionals" + let ``lots-of-conditionals``() = + let cfg = testConfig' "core/large/conditionals" use testOkFile = fileguard cfg "test.ok" fsc cfg "%s -o:test.exe " cfg.fsc_flags ["LargeConditionals-200.fs"] exec cfg ("." ++ "test.exe") "" testOkFile.CheckExists() [] - let ``lots-of-conditionals-maxtested``() = - let cfg = testConfig "core/large/conditionals" + let ``lots-of-conditionals-maxtested``() = + let cfg = testConfig' "core/large/conditionals" use testOkFile = fileguard cfg "test.ok" fsc cfg "%s -o:test.exe " cfg.fsc_flags ["LargeConditionals-maxtested.fs"] exec cfg ("." ++ "test.exe") "" testOkFile.CheckExists() [] - let ``lots-of-lets``() = - let cfg = testConfig "core/large/lets" + let ``lots-of-lets``() = + let cfg = testConfig' "core/large/lets" use testOkFile = fileguard cfg "test.ok" fsc cfg "%s -o:test.exe " cfg.fsc_flags ["LargeLets-500.fs"] exec cfg ("." ++ "test.exe") "" testOkFile.CheckExists() [] - let ``lots-of-lets-maxtested``() = - let cfg = testConfig "core/large/lets" + let ``lots-of-lets-maxtested``() = + let cfg = testConfig' "core/large/lets" use testOkFile = fileguard cfg "test.ok" fsc cfg "%s -o:test.exe " cfg.fsc_flags ["LargeLets-maxtested.fs"] exec cfg ("." ++ "test.exe") "" testOkFile.CheckExists() [] - let ``lots-of-lists``() = - let cfg = testConfig "core/large/lists" + let ``lots-of-lists``() = + let cfg = testConfig' "core/large/lists" use testOkFile = fileguard cfg "test.ok" fsc cfg "%s -o:test-500.exe " cfg.fsc_flags ["LargeList-500.fs"] exec cfg ("." ++ "test-500.exe") "" testOkFile.CheckExists() [] - let ``lots-of-matches``() = - let cfg = testConfig "core/large/matches" + let ``lots-of-matches``() = + let cfg = testConfig' "core/large/matches" use testOkFile = fileguard cfg "test.ok" fsc cfg "%s -o:test.exe " cfg.fsc_flags ["LargeMatches-200.fs"] exec cfg ("." ++ "test.exe") "" testOkFile.CheckExists() [] - let ``lots-of-matches-maxtested``() = - let cfg = testConfig "core/large/matches" + let ``lots-of-matches-maxtested``() = + let cfg = testConfig' "core/large/matches" use testOkFile = fileguard cfg "test.ok" fsc cfg "%s -o:test.exe " cfg.fsc_flags ["LargeMatches-maxtested.fs"] exec cfg ("." ++ "test.exe") "" testOkFile.CheckExists() [] - let ``lots-of-sequential-and-let``() = - let cfg = testConfig "core/large/mixed" + let ``lots-of-sequential-and-let``() = + let cfg = testConfig' "core/large/mixed" use testOkFile = fileguard cfg "test.ok" fsc cfg "%s -o:test.exe " cfg.fsc_flags ["LargeSequentialLet-500.fs"] exec cfg ("." ++ "test.exe") "" testOkFile.CheckExists() [] - let ``lots-of-sequential-and-let-maxtested``() = - let cfg = testConfig "core/large/mixed" + let ``lots-of-sequential-and-let-maxtested``() = + let cfg = testConfig' "core/large/mixed" use testOkFile = fileguard cfg "test.ok" fsc cfg "%s -o:test.exe " cfg.fsc_flags ["LargeSequentialLet-maxtested.fs"] exec cfg ("." ++ "test.exe") "" testOkFile.CheckExists() [] - let ``lots-of-sequential``() = - let cfg = testConfig "core/large/sequential" + let ``lots-of-sequential``() = + let cfg = testConfig' "core/large/sequential" use testOkFile = fileguard cfg "test.ok" fsc cfg "%s -o:test.exe " cfg.fsc_flags ["LargeSequential-500.fs"] exec cfg ("." ++ "test.exe") "" testOkFile.CheckExists() [] - let ``lots-of-sequential-maxtested``() = - let cfg = testConfig "core/large/sequential" + let ``lots-of-sequential-maxtested``() = + let cfg = testConfig' "core/large/sequential" use testOkFile = fileguard cfg "test.ok" fsc cfg "%s -o:test.exe " cfg.fsc_flags ["LargeSequential-maxtested.fs"] exec cfg ("." ++ "test.exe") "" @@ -433,59 +438,59 @@ module CoreTests = #endif [] - let ``control-FSC_BASIC`` () = singleTestBuildAndRun "core/control" FSC_BASIC + let ``control-FSC_BASIC`` () = singleTestBuildAndRun' "core/control" FSC_BASIC [] - let ``control-FSI_BASIC`` () = singleTestBuildAndRun "core/control" FSI_BASIC + let ``control-FSI_BASIC`` () = singleTestBuildAndRun' "core/control" FSI_BASIC [] let ``control --tailcalls`` () = - let cfg = testConfig "core/control" + let cfg = testConfig' "core/control" singleTestBuildAndRunAux {cfg with fsi_flags = " --tailcalls" } FSC_BASIC [] let ``controlChamenos-FSC_BASIC`` () = - let cfg = testConfig "core/controlChamenos" + let cfg = testConfig' "core/controlChamenos" singleTestBuildAndRunAux {cfg with fsi_flags = " --tailcalls" } FSC_BASIC [] - let ``controlChamenos-FSI_BASIC`` () = - let cfg = testConfig "core/controlChamenos" + let ``controlChamenos-FSI_BASIC`` () = + let cfg = testConfig' "core/controlChamenos" singleTestBuildAndRunAux {cfg with fsi_flags = " --tailcalls" } FSI_BASIC [] - let ``controlMailbox-FSC_BASIC`` () = singleTestBuildAndRun "core/controlMailbox" FSC_BASIC + let ``controlMailbox-FSC_BASIC`` () = singleTestBuildAndRun' "core/controlMailbox" FSC_BASIC [] - let ``controlMailbox-FSI_BASIC`` () = singleTestBuildAndRun "core/controlMailbox" FSI_BASIC + let ``controlMailbox-FSI_BASIC`` () = singleTestBuildAndRun' "core/controlMailbox" FSI_BASIC [] let ``controlMailbox --tailcalls`` () = - let cfg = testConfig "core/controlMailbox" + let cfg = testConfig' "core/controlMailbox" singleTestBuildAndRunAux {cfg with fsi_flags = " --tailcalls" } FSC_BASIC [] - let ``csext-FSC_BASIC`` () = singleTestBuildAndRun "core/csext" FSC_BASIC + let ``csext-FSC_BASIC`` () = singleTestBuildAndRun' "core/csext" FSC_BASIC [] - let ``csext-FSI_BASIC`` () = singleTestBuildAndRun "core/csext" FSI_BASIC + let ``csext-FSI_BASIC`` () = singleTestBuildAndRun' "core/csext" FSI_BASIC [] - let ``enum-FSC_BASIC`` () = singleTestBuildAndRun "core/enum" FSC_BASIC + let ``enum-FSC_BASIC`` () = singleTestBuildAndRun' "core/enum" FSC_BASIC [] - let ``enum-FSI_BASIC`` () = singleTestBuildAndRun "core/enum" FSI_BASIC + let ``enum-FSI_BASIC`` () = singleTestBuildAndRun' "core/enum" FSI_BASIC #if !NETCOREAPP // Requires winforms will not run on coreclr [] - let controlWpf () = singleTestBuildAndRun "core/controlwpf" FSC_BASIC + let controlWpf () = singleTestBuildAndRun' "core/controlwpf" FSC_BASIC // These tests are enabled for .NET Framework [] - let ``anon-FSC_BASIC``() = - let cfg = testConfig "core/anon" + let ``anon-FSC_BASIC``() = + let cfg = testConfig' "core/anon" fsc cfg "%s -a -o:lib.dll" cfg.fsc_flags ["lib.fs"] @@ -495,7 +500,7 @@ module CoreTests = peverify cfg "test.exe" - begin + begin use testOkFile = fileguard cfg "test.ok" exec cfg ("." ++ "test.exe") "" @@ -503,7 +508,7 @@ module CoreTests = testOkFile.CheckExists() end - begin + begin use testOkFile = fileguard cfg "test.ok" fsi cfg "-r:lib.dll" ["test.fsx"] @@ -512,8 +517,8 @@ module CoreTests = end [] - let events () = - let cfg = testConfig "core/events" + let events () = + let cfg = testConfig' "core/events" fsc cfg "%s -a -o:test.dll -g" cfg.fsc_flags ["test.fs"] @@ -522,7 +527,7 @@ module CoreTests = csc cfg """/r:"%s" /reference:test.dll /debug+""" cfg.FSCOREDLLPATH ["testcs.cs"] peverify cfg "testcs.exe" - + use testOkFile = fileguard cfg "test.ok" fsi cfg "" ["test.fs"] @@ -536,15 +541,15 @@ module CoreTests = // Shadowcopy does not work for public signed assemblies // ===================================================== // - //module ``FSI-Shadowcopy`` = + //module ``FSI-Shadowcopy`` = // // [] // // "%FSI%" %fsi_flags% < test1.fsx // [] // // "%FSI%" %fsi_flags% /shadowcopyreferences+ < test2.fsx // [] - let forwarders () = - let cfg = testConfig "core/forwarders" + let forwarders () = + let cfg = testConfig' "core/forwarders" mkdir cfg "orig" mkdir cfg "split" @@ -616,8 +621,8 @@ module CoreTests = peverify cfg ("split" ++ "c.dll") [] - let fsfromcs () = - let cfg = testConfig "core/fsfromcs" + let fsfromcs () = + let cfg = testConfig' "core/fsfromcs" fsc cfg "%s -a --doc:lib.xml -o:lib.dll -g" cfg.fsc_flags ["lib.fs"] @@ -634,10 +639,10 @@ module CoreTests = exec cfg ("." ++ "test.exe") "" exec cfg ("." ++ "test--optimize.exe") "" - + [] - let fsfromfsviacs () = - let cfg = testConfig "core/fsfromfsviacs" + let fsfromfsviacs () = + let cfg = testConfig' "core/fsfromfsviacs" fsc cfg "%s -a -o:lib.dll -g" cfg.fsc_flags ["lib.fs"] @@ -649,11 +654,11 @@ module CoreTests = // some features missing in 4.7 for version in ["4.7"] do - let outFile = "compilation.langversion.old.output.txt" - let expectedFile = "compilation.langversion.old.output.bsl" + let outFile = "compilation.langversion.old.output.txt" + let expectedFile = "compilation.langversion.old.output.bsl" fscBothToOutExpectFail cfg outFile "%s -r:lib.dll -r:lib2.dll -r:lib3.dll -o:test.exe -g --nologo --define:LANGVERSION_%s --langversion:%s" cfg.fsc_flags (version.Replace(".","_")) version ["test.fsx"] - let diffs = fsdiff cfg outFile expectedFile + let diffs = fsdiff cfg outFile expectedFile match diffs with | "" -> () | _ -> Assert.Fail (sprintf "'%s' and '%s' differ; %A" outFile expectedFile diffs) @@ -680,19 +685,19 @@ module CoreTests = exec cfg ("." ++ "test.exe") "" // check error messages for some cases - let outFile = "compilation.errors.output.txt" - let expectedFile = "compilation.errors.output.bsl" + let outFile = "compilation.errors.output.txt" + let expectedFile = "compilation.errors.output.bsl" fscBothToOutExpectFail cfg outFile "%s -r:lib.dll -r:lib2.dll -r:lib3.dll -o:test.exe -g --nologo --define:LANGVERSION_PREVIEW --langversion:preview --define:CHECK_ERRORS" cfg.fsc_flags ["test.fsx"] - let diffs = fsdiff cfg outFile expectedFile + let diffs = fsdiff cfg outFile expectedFile match diffs with | "" -> () | _ -> Assert.Fail (sprintf "'%s' and '%s' differ; %A" outFile expectedFile diffs) [] - let ``fsi-reference`` () = + let ``fsi-reference`` () = - let cfg = testConfig "core/fsi-reference" + let cfg = testConfig' "core/fsi-reference" begin use testOkFile = fileguard cfg "test.ok" @@ -703,15 +708,15 @@ module CoreTests = end [] - let ``fsi-reload`` () = - let cfg = testConfig "core/fsi-reload" + let ``fsi-reload`` () = + let cfg = testConfig' "core/fsi-reload" begin use testOkFile = fileguard cfg "test.ok" fsiStdin cfg "test1.ml" "--maxerrors:1" [] testOkFile.CheckExists() end - + begin use testOkFile = fileguard cfg "test.ok" fsi cfg "%s --maxerrors:1" cfg.fsi_flags ["load1.fsx"] @@ -729,8 +734,8 @@ module CoreTests = [] - let fsiAndModifiers () = - let cfg = testConfig "core/fsiAndModifiers" + let fsiAndModifiers () = + let cfg = testConfig' "core/fsiAndModifiers" do if fileExists cfg "TestLibrary.dll" then rm cfg "TestLibrary.dll" @@ -741,16 +746,16 @@ module CoreTests = fsiStdin cfg "test.fsx" "--maxerrors:1" [] testOkFile.CheckExists() - + [] - let ``genericmeasures-AS_DLL`` () = singleTestBuildAndRun "core/genericmeasures" AS_DLL + let ``genericmeasures-AS_DLL`` () = singleTestBuildAndRun' "core/genericmeasures" AS_DLL [] - let hiding () = - let cfg = testConfig "core/hiding" + let hiding () = + let cfg = testConfig' "core/hiding" fsc cfg "%s -a --optimize -o:lib.dll" cfg.fsc_flags ["lib.mli";"lib.ml";"libv.ml"] @@ -765,11 +770,11 @@ module CoreTests = peverify cfg "client.exe" [] - let ``innerpoly-AS_DLL`` () = singleTestBuildAndRun "core/innerpoly" AS_DLL + let ``innerpoly-AS_DLL`` () = singleTestBuildAndRun' "core/innerpoly" AS_DLL [] - let queriesCustomQueryOps () = - let cfg = testConfig "core/queriesCustomQueryOps" + let queriesCustomQueryOps () = + let cfg = testConfig' "core/queriesCustomQueryOps" fsc cfg """%s -o:test.exe -g""" cfg.fsc_flags ["test.fsx"] @@ -805,12 +810,12 @@ module CoreTests = testOkFile.CheckExists() end - // Debug with + // Debug with // ..\..\..\..\debug\net40\bin\fsi.exe --nologo < test.fsx >a.out 2>a.err - // then + // then /// windiff z.output.test.default.stdout.bsl a.out - let printing flag diffFileOut expectedFileOut diffFileErr expectedFileErr = - let cfg = testConfig "core/printing" + let printing flag diffFileOut expectedFileOut diffFileErr expectedFileErr = + let cfg = testConfig' "core/printing" if requireENCulture () then @@ -818,8 +823,8 @@ module CoreTests = let ``fsi b 2>c`` = // "%FSI%" %fsc_flags_errors_ok% --nologo z.raw.output.test.default.txt 2>&1 - let ``exec b 2>c`` (inFile, outFile, errFile) p = - Command.exec cfg.Directory cfg.EnvironmentVariables { Output = OutputAndError(Overwrite(outFile), Overwrite(errFile)); Input = Some(RedirectInput(inFile)); } p + let ``exec b 2>c`` (inFile, outFile, errFile) p = + Command.exec cfg.Directory cfg.EnvironmentVariables { Output = OutputAndError(Overwrite(outFile), Overwrite(errFile)); Input = Some(RedirectInput(inFile)); } p >> checkResult Printf.ksprintf (fun flags (inFile, outFile, errFile) -> Commands.fsi (``exec b 2>c`` (inFile, outFile, errFile)) cfg.FSI flags []) @@ -843,7 +848,7 @@ module CoreTests = expectedFileOut |> withDefault diffFileOut expectedFileErr |> withDefault diffFileErr - + match fsdiff cfg diffFileOut expectedFileOut with | "" -> () | diffs -> Assert.Fail (sprintf "'%s' and '%s' differ; %A" diffFileOut expectedFileOut diffs) @@ -853,23 +858,23 @@ module CoreTests = | diffs -> Assert.Fail (sprintf "'%s' and '%s' differ; %A" diffFileErr expectedFileErr diffs) [] - let ``printing-1`` () = + let ``printing-1`` () = printing "" "z.output.test.default.stdout.txt" "z.output.test.default.stdout.bsl" "z.output.test.default.stderr.txt" "z.output.test.default.stderr.bsl" [] - let ``printing-2`` () = + let ``printing-2`` () = printing "--use:preludePrintSize1000.fsx" "z.output.test.1000.stdout.txt" "z.output.test.1000.stdout.bsl" "z.output.test.1000.stderr.txt" "z.output.test.1000.stderr.bsl" [] - let ``printing-3`` () = + let ``printing-3`` () = printing "--use:preludePrintSize200.fsx" "z.output.test.200.stdout.txt" "z.output.test.200.stdout.bsl" "z.output.test.200.stderr.txt" "z.output.test.200.stderr.bsl" [] - let ``printing-4`` () = + let ``printing-4`` () = printing "--use:preludeShowDeclarationValuesFalse.fsx" "z.output.test.off.stdout.txt" "z.output.test.off.stdout.bsl" "z.output.test.off.stderr.txt" "z.output.test.off.stderr.bsl" [] - let ``printing-5`` () = + let ``printing-5`` () = printing "--quiet" "z.output.test.quiet.stdout.txt" "z.output.test.quiet.stdout.bsl" "z.output.test.quiet.stderr.txt" "z.output.test.quiet.stderr.bsl" type SigningType = @@ -877,9 +882,9 @@ module CoreTests = | PublicSigned | NotSigned - let signedtest(programId:string, args:string, expectedSigning:SigningType) = - - let cfg = testConfig "core/signedtests" + let signedtest(programId:string, args:string, expectedSigning:SigningType) = + + let cfg = testConfig' "core/signedtests" let newFlags = cfg.fsc_flags + " " + args let exefile = programId + ".exe" @@ -958,8 +963,8 @@ module CoreTests = #if !NETCOREAPP [] - let quotes () = - let cfg = testConfig "core/quotes" + let quotes () = + let cfg = testConfig' "core/quotes" csc cfg """/nologo /target:library /out:cslib.dll""" ["cslib.cs"] @@ -1003,9 +1008,9 @@ module CoreTests = end [] - let parsing () = - let cfg = testConfig "core/parsing" - + let parsing () = + let cfg = testConfig' "core/parsing" + fsc cfg "%s -a -o:crlf.dll -g" cfg.fsc_flags ["crlf.ml"] fsc cfg "%s -o:toplet.exe -g" cfg.fsc_flags ["toplet.ml"] @@ -1013,8 +1018,8 @@ module CoreTests = peverify cfg "toplet.exe" [] - let unicode () = - let cfg = testConfig "core/unicode" + let unicode () = + let cfg = testConfig' "core/unicode" fsc cfg "%s -a -o:kanji-unicode-utf8-nosig-codepage-65001.dll -g" cfg.fsc_flags ["kanji-unicode-utf8-nosig-codepage-65001.fs"] @@ -1023,7 +1028,7 @@ module CoreTests = fsc cfg "%s -a -o:kanji-unicode-utf16.dll -g" cfg.fsc_flags ["kanji-unicode-utf16.fs"] fsc cfg "%s -a --codepage:65000 -o:kanji-unicode-utf7-codepage-65000.dll -g" cfg.fsc_flags ["kanji-unicode-utf7-codepage-65000.fs"] - + fsc cfg "%s -a -o:kanji-unicode-utf8-withsig-codepage-65001.dll -g" cfg.fsc_flags ["kanji-unicode-utf8-withsig-codepage-65001.fs"] fsi cfg "%s --utf8output" cfg.fsi_flags ["kanji-unicode-utf8-nosig-codepage-65001.fs"] @@ -1035,11 +1040,11 @@ module CoreTests = fsi cfg "%s --utf8output --codepage:65000" cfg.fsi_flags ["kanji-unicode-utf7-codepage-65000.fs"] fsi cfg "%s --utf8output" cfg.fsi_flags ["kanji-unicode-utf16.fs"] - + [] - let internalsvisible () = - let cfg = testConfig "core/internalsvisible" + let internalsvisible () = + let cfg = testConfig' "core/internalsvisible" // Compiling F# Library fsc cfg "%s --version:1.2.3 --keyfile:key.snk -a --optimize -o:library.dll" cfg.fsc_flags ["library.fsi"; "library.fs"] @@ -1058,12 +1063,12 @@ module CoreTests = // Run F# main. Quick test! exec cfg ("." ++ "main.exe") "" - + // Repro for https://github.com/Microsoft/visualfsharp/issues/1298 [] - let fileorder () = - let cfg = testConfig "core/fileorder" + let fileorder () = + let cfg = testConfig' "core/fileorder" log "== Compiling F# Library and Code, when empty file libfile2.fs IS NOT included" fsc cfg "%s -a --optimize -o:lib.dll " cfg.fsc_flags ["libfile1.fs"] @@ -1089,8 +1094,8 @@ module CoreTests = // Repro for https://github.com/Microsoft/visualfsharp/issues/2679 [] - let ``add files with same name from different folders`` () = - let cfg = testConfig "core/samename" + let ``add files with same name from different folders`` () = + let cfg = testConfig' "core/samename" log "== Compiling F# Code with files with same name in different folders" fsc cfg "%s -o:test.exe" cfg.fsc_flags ["folder1/a.fs"; "folder1/b.fs"; "folder2/a.fs"; "folder2/b.fs"] @@ -1101,7 +1106,7 @@ module CoreTests = [] let ``add files with same name from different folders including signature files`` () = - let cfg = testConfig "core/samename" + let cfg = testConfig' "core/samename" log "== Compiling F# Code with files with same name in different folders including signature files" fsc cfg "%s -o:test.exe" cfg.fsc_flags ["folder1/a.fsi"; "folder1/a.fs"; "folder1/b.fsi"; "folder1/b.fs"; "folder2/a.fsi"; "folder2/a.fs"; "folder2/b.fsi"; "folder2/b.fs"] @@ -1112,7 +1117,7 @@ module CoreTests = [] let ``add files with same name from different folders including signature files that are not synced`` () = - let cfg = testConfig "core/samename" + let cfg = testConfig' "core/samename" log "== Compiling F# Code with files with same name in different folders including signature files" fsc cfg "%s -o:test.exe" cfg.fsc_flags ["folder1/a.fsi"; "folder1/a.fs"; "folder1/b.fs"; "folder2/a.fsi"; "folder2/a.fs"; "folder2/b.fsi"; "folder2/b.fs"] @@ -1122,21 +1127,21 @@ module CoreTests = exec cfg ("." ++ "test.exe") "" [] - let ``libtest-FSI_STDIN`` () = singleTestBuildAndRun "core/libtest" FSI_STDIN + let ``libtest-FSI_STDIN`` () = singleTestBuildAndRun' "core/libtest" FSI_STDIN [] - let ``libtest-GENERATED_SIGNATURE`` () = singleTestBuildAndRun "core/libtest" GENERATED_SIGNATURE + let ``libtest-GENERATED_SIGNATURE`` () = singleTestBuildAndRun' "core/libtest" GENERATED_SIGNATURE [] - let ``libtest-FSC_OPT_MINUS_DEBUG`` () = singleTestBuildAndRun "core/libtest" FSC_OPT_MINUS_DEBUG + let ``libtest-FSC_OPT_MINUS_DEBUG`` () = singleTestBuildAndRun' "core/libtest" FSC_OPT_MINUS_DEBUG [] - let ``libtest-AS_DLL`` () = singleTestBuildAndRun "core/libtest" AS_DLL + let ``libtest-AS_DLL`` () = singleTestBuildAndRun' "core/libtest" AS_DLL [] let ``no-warn-2003-tests`` () = // see https://github.com/Microsoft/visualfsharp/issues/3139 - let cfg = testConfig "core/versionAttributes" + let cfg = testConfig' "core/versionAttributes" let stdoutPath = "out.stdout.txt" |> getfullpath cfg let stderrPath = "out.stderr.txt" |> getfullpath cfg let stderrBaseline = "out.stderr.bsl" |> getfullpath cfg @@ -1194,13 +1199,13 @@ module CoreTests = | _ -> Assert.Fail (sprintf "'%s' and '%s' differ; %A" stderrPath stderrBaseline diffs2) [] - let ``load-script`` () = - let cfg = testConfig "core/load-script" + let ``load-script`` () = + let cfg = testConfig' "core/load-script" let stdoutPath = "out.stdout.txt" |> getfullpath cfg let stderrPath = "out.stderr.txt" |> getfullpath cfg - let stderrBaseline = "out.stderr.bsl" |> getfullpath cfg - let stdoutBaseline = "out.stdout.bsl" |> getfullpath cfg + let stderrBaseline = "out.stderr.bsl" |> getfullpath cfg + let stdoutBaseline = "out.stdout.bsl" |> getfullpath cfg let appendToFile from = Commands.appendToFile cfg.Directory from stdoutPath let echo text = Commands.echoAppendToFile cfg.Directory text stdoutPath @@ -1324,68 +1329,68 @@ module CoreTests = #endif [] - let ``longnames-FSC_BASIC`` () = singleTestBuildAndRun "core/longnames" FSC_BASIC + let ``longnames-FSC_BASIC`` () = singleTestBuildAndRun' "core/longnames" FSC_BASIC [] - let ``longnames-FSI_BASIC`` () = singleTestBuildAndRun "core/longnames" FSI_BASIC + let ``longnames-FSI_BASIC`` () = singleTestBuildAndRun' "core/longnames" FSI_BASIC [] - let ``math-numbersVS2008-FSC_BASIC`` () = singleTestBuildAndRun "core/math/numbersVS2008" FSC_BASIC + let ``math-numbersVS2008-FSC_BASIC`` () = singleTestBuildAndRun' "core/math/numbersVS2008" FSC_BASIC [] - let ``math-numbersVS2008-FSI_BASIC`` () = singleTestBuildAndRun "core/math/numbersVS2008" FSI_BASIC + let ``math-numbersVS2008-FSI_BASIC`` () = singleTestBuildAndRun' "core/math/numbersVS2008" FSI_BASIC [] - let ``patterns-FSC_BASIC`` () = singleTestBuildAndRun "core/patterns" FSC_BASIC + let ``patterns-FSC_BASIC`` () = singleTestBuildAndRun' "core/patterns" FSC_BASIC //BUGBUG: https://github.com/Microsoft/visualfsharp/issues/6601 // [] -// let ``patterns-FSI_BASIC`` () = singleTestBuildAndRun "core/patterns" FSI_BASIC +// let ``patterns-FSI_BASIC`` () = singleTestBuildAndRun' "core/patterns" FSI_BASIC [] - let ``pinvoke-FSC_BASIC`` () = singleTestBuildAndRun "core/pinvoke" FSC_BASIC + let ``pinvoke-FSC_BASIC`` () = singleTestBuildAndRun' "core/pinvoke" FSC_BASIC [] let ``pinvoke-FSI_BASIC`` () = - singleTestBuildAndRun "core/pinvoke" FSI_BASIC + singleTestBuildAndRun' "core/pinvoke" FSI_BASIC [] - let ``fsi_load-FSC_BASIC`` () = singleTestBuildAndRun "core/fsi-load" FSC_BASIC + let ``fsi_load-FSC_BASIC`` () = singleTestBuildAndRun' "core/fsi-load" FSC_BASIC [] - let ``fsi_load-FSI_BASIC`` () = singleTestBuildAndRun "core/fsi-load" FSI_BASIC + let ``fsi_load-FSI_BASIC`` () = singleTestBuildAndRun' "core/fsi-load" FSI_BASIC #if !NETCOREAPP [] - let ``measures-AS_DLL`` () = singleTestBuildAndRun "core/measures" AS_DLL + let ``measures-AS_DLL`` () = singleTestBuildAndRun' "core/measures" AS_DLL [] - let ``members-basics-AS_DLL`` () = singleTestBuildAndRun "core/members/basics" AS_DLL + let ``members-basics-AS_DLL`` () = singleTestBuildAndRun' "core/members/basics" AS_DLL [] - let ``members-basics-hw`` () = singleTestBuildAndRun "core/members/basics-hw" FSC_BASIC + let ``members-basics-hw`` () = singleTestBuildAndRun' "core/members/basics-hw" FSC_BASIC [] - let ``members-basics-hw-mutrec`` () = singleTestBuildAndRun "core/members/basics-hw-mutrec" FSC_BASIC + let ``members-basics-hw-mutrec`` () = singleTestBuildAndRun' "core/members/basics-hw-mutrec" FSC_BASIC [] - let ``members-incremental-FSC_BASIC`` () = singleTestBuildAndRun "core/members/incremental" FSC_BASIC + let ``members-incremental-FSC_BASIC`` () = singleTestBuildAndRun' "core/members/incremental" FSC_BASIC [] - let ``members-incremental-FSI_BASIC`` () = singleTestBuildAndRun "core/members/incremental" FSI_BASIC + let ``members-incremental-FSI_BASIC`` () = singleTestBuildAndRun' "core/members/incremental" FSI_BASIC [] - let ``members-incremental-hw-FSC_BASIC`` () = singleTestBuildAndRun "core/members/incremental-hw" FSC_BASIC + let ``members-incremental-hw-FSC_BASIC`` () = singleTestBuildAndRun' "core/members/incremental-hw" FSC_BASIC [] - let ``members-incremental-hw-FSI_BASIC`` () = singleTestBuildAndRun "core/members/incremental-hw" FSI_BASIC + let ``members-incremental-hw-FSI_BASIC`` () = singleTestBuildAndRun' "core/members/incremental-hw" FSI_BASIC [] - let ``members-incremental-hw-mutrec-FSC_BASIC`` () = singleTestBuildAndRun "core/members/incremental-hw-mutrec" FSC_BASIC + let ``members-incremental-hw-mutrec-FSC_BASIC`` () = singleTestBuildAndRun' "core/members/incremental-hw-mutrec" FSC_BASIC [] - let queriesLeafExpressionConvert () = - let cfg = testConfig "core/queriesLeafExpressionConvert" + let queriesLeafExpressionConvert () = + let cfg = testConfig' "core/queriesLeafExpressionConvert" fsc cfg "%s -o:test.exe -g" cfg.fsc_flags ["test.fsx"] @@ -1412,11 +1417,11 @@ module CoreTests = exec cfg ("." ++ "test--optimize.exe") "" testOkFile3.CheckExists() - + [] - let queriesNullableOperators () = - let cfg = testConfig "core/queriesNullableOperators" + let queriesNullableOperators () = + let cfg = testConfig' "core/queriesNullableOperators" fsc cfg "%s -o:test.exe -g" cfg.fsc_flags ["test.fsx"] @@ -1437,14 +1442,14 @@ module CoreTests = use testOkFile3 = fileguard cfg "test.ok" exec cfg ("." ++ "test--optimize.exe") "" testOkFile3.CheckExists() - + [] - let queriesOverIEnumerable () = - let cfg = testConfig "core/queriesOverIEnumerable" + let queriesOverIEnumerable () = + let cfg = testConfig' "core/queriesOverIEnumerable" fsc cfg "%s -o:test.exe -g" cfg.fsc_flags ["test.fsx"] - peverify cfg "test.exe" + peverify cfg "test.exe" fsc cfg "%s --optimize -o:test--optimize.exe -g" cfg.fsc_flags ["test.fsx"] @@ -1467,10 +1472,10 @@ module CoreTests = exec cfg ("." ++ "test--optimize.exe") "" testOkFile3.CheckExists() - + [] - let queriesOverIQueryable () = - let cfg = testConfig "core/queriesOverIQueryable" + let queriesOverIQueryable () = + let cfg = testConfig' "core/queriesOverIQueryable" fsc cfg "%s -o:test.exe -g" cfg.fsc_flags ["test.fsx"] @@ -1500,8 +1505,8 @@ module CoreTests = [] - let quotesDebugInfo () = - let cfg = testConfig "core/quotesDebugInfo" + let quotesDebugInfo () = + let cfg = testConfig' "core/quotesDebugInfo" fsc cfg "%s --quotations-debug+ --optimize -o:test.exe -g" cfg.fsc_flags ["test.fsx"] @@ -1531,8 +1536,8 @@ module CoreTests = [] - let quotesInMultipleModules () = - let cfg = testConfig "core/quotesInMultipleModules" + let quotesInMultipleModules () = + let cfg = testConfig' "core/quotesInMultipleModules" fsc cfg "%s -o:module1.dll --target:library" cfg.fsc_flags ["module1.fsx"] @@ -1541,7 +1546,7 @@ module CoreTests = fsc cfg "%s -o:module2.exe -r:module1.dll" cfg.fsc_flags ["module2.fsx"] peverify cfg "module2.exe" - + fsc cfg "%s --staticlink:module1 -o:module2-staticlink.exe -r:module1.dll" cfg.fsc_flags ["module2.fsx"] peverify cfg "module2-staticlink.exe" @@ -1581,15 +1586,15 @@ module CoreTests = #endif [] - let ``reflect-FSC_BASIC`` () = singleTestBuildAndRun "core/reflect" FSC_BASIC + let ``reflect-FSC_BASIC`` () = singleTestBuildAndRun' "core/reflect" FSC_BASIC [] - let ``reflect-FSI_BASIC`` () = singleTestBuildAndRun "core/reflect" FSI_BASIC + let ``reflect-FSI_BASIC`` () = singleTestBuildAndRun' "core/reflect" FSI_BASIC #if !NETCOREAPP [] - let refnormalization () = - let cfg = testConfig "core/refnormalization" + let refnormalization () = + let cfg = testConfig' "core/refnormalization" // Prepare by building multiple versions of the test assemblies fsc cfg @"%s --target:library -o:version1\DependentAssembly.dll -g --version:1.0.0.0 --keyfile:keyfile.snk" cfg.fsc_flags [@"DependentAssembly.fs"] @@ -1624,8 +1629,8 @@ module CoreTests = [] - let testResources () = - let cfg = testConfig "core/resources" + let testResources () = + let cfg = testConfig' "core/resources" fsc cfg "%s --resource:Resources.resources -o:test-embed.exe -g" cfg.fsc_flags ["test.fs"] @@ -1652,8 +1657,8 @@ module CoreTests = exec cfg ("." ++ "test-embed-named.exe") "ResourceName" [] - let topinit () = - let cfg = testConfig "core/topinit" + let topinit () = + let cfg = testConfig' "core/topinit" fsc cfg "%s --optimize -o both69514.exe -g" cfg.fsc_flags ["lib69514.fs"; "app69514.fs"] @@ -1778,10 +1783,10 @@ module CoreTests = exec cfg ("." ++ "test_static_init_exe.exe") "" exec cfg ("." ++ "test_static_init_exe--optimize.exe") "" - + [] - let unitsOfMeasure () = - let cfg = testConfig "core/unitsOfMeasure" + let unitsOfMeasure () = + let cfg = testConfig' "core/unitsOfMeasure" fsc cfg "%s --optimize- -o:test.exe -g" cfg.fsc_flags ["test.fs"] @@ -1794,8 +1799,8 @@ module CoreTests = testOkFile.CheckExists() [] - let verify () = - let cfg = testConfig "core/verify" + let verify () = + let cfg = testConfig' "core/verify" peverifyWithArgs cfg "/nologo" (cfg.FSharpBuild) @@ -1812,119 +1817,119 @@ module CoreTests = module VersionTests = [] - let ``member-selfidentifier-version4.6``() = singleTestBuildAndRunVersion "core/members/self-identifier/version46" FSC_BUILDONLY "4.6" + let ``member-selfidentifier-version4.6``() = singleTestBuildAndRunVersion' "core/members/self-identifier/version46" FSC_BUILDONLY "4.6" [] - let ``member-selfidentifier-version4.7``() = singleTestBuildAndRun "core/members/self-identifier/version47" FSC_BUILDONLY + let ``member-selfidentifier-version4.7``() = singleTestBuildAndRun' "core/members/self-identifier/version47" FSC_BUILDONLY [] - let ``indent-version4.6``() = singleTestBuildAndRunVersion "core/indent/version46" FSC_BUILDONLY "4.6" + let ``indent-version4.6``() = singleTestBuildAndRunVersion' "core/indent/version46" FSC_BUILDONLY "4.6" [] - let ``indent-version4.7``() = singleTestBuildAndRun "core/indent/version47" FSC_BUILDONLY + let ``indent-version4.7``() = singleTestBuildAndRun' "core/indent/version47" FSC_BUILDONLY [] - let ``nameof-version4.6``() = singleTestBuildAndRunVersion "core/nameof/version46" FSC_BUILDONLY "4.6" + let ``nameof-version4.6``() = singleTestBuildAndRunVersion' "core/nameof/version46" FSC_BUILDONLY "4.6" [] - let ``nameof-versionpreview``() = singleTestBuildAndRunVersion "core/nameof/preview" FSC_BUILDONLY "preview" + let ``nameof-versionpreview``() = singleTestBuildAndRunVersion' "core/nameof/preview" FSC_BUILDONLY "preview" [] - let ``nameof-execute``() = singleTestBuildAndRunVersion "core/nameof/preview" FSC_BASIC "preview" + let ``nameof-execute``() = singleTestBuildAndRunVersion' "core/nameof/preview" FSC_BASIC "preview" [] - let ``nameof-fsi``() = singleTestBuildAndRunVersion "core/nameof/preview" FSI_BASIC "preview" + let ``nameof-fsi``() = singleTestBuildAndRunVersion' "core/nameof/preview" FSI_BASIC "preview" #if !NETCOREAPP -module ToolsTests = +module ToolsTests = // This test is disabled in coreclr builds dependent on fixing : https://github.com/Microsoft/visualfsharp/issues/2600 [] - let bundle () = - let cfg = testConfig "tools/bundle" + let bundle () = + let cfg = testConfig' "tools/bundle" fsc cfg "%s --progress --standalone -o:test-one-fsharp-module.exe -g" cfg.fsc_flags ["test-one-fsharp-module.fs"] peverify cfg "test-one-fsharp-module.exe" - + fsc cfg "%s -a -o:test_two_fsharp_modules_module_1.dll -g" cfg.fsc_flags ["test_two_fsharp_modules_module_1.fs"] - + peverify cfg "test_two_fsharp_modules_module_1.dll" - + fsc cfg "%s --standalone -r:test_two_fsharp_modules_module_1.dll -o:test_two_fsharp_modules_module_2.exe -g" cfg.fsc_flags ["test_two_fsharp_modules_module_2.fs"] - + peverify cfg "test_two_fsharp_modules_module_2.exe" - + fsc cfg "%s -a --standalone -r:test_two_fsharp_modules_module_1.dll -o:test_two_fsharp_modules_module_2_as_dll.dll -g" cfg.fsc_flags ["test_two_fsharp_modules_module_2.fs"] - + peverify cfg "test_two_fsharp_modules_module_2_as_dll.dll" #endif [] - let ``eval-FSC_BASIC`` () = singleTestBuildAndRun "tools/eval" FSC_BASIC + let ``eval-FSC_BASIC`` () = singleTestBuildAndRun' "tools/eval" FSC_BASIC [] - let ``eval-FSI_BASIC`` () = singleTestBuildAndRun "tools/eval" FSI_BASIC + let ``eval-FSI_BASIC`` () = singleTestBuildAndRun' "tools/eval" FSI_BASIC -module RegressionTests = +module RegressionTests = [] - let ``literal-value-bug-2-FSC_BASIC`` () = singleTestBuildAndRun "regression/literal-value-bug-2" FSC_BASIC + let ``literal-value-bug-2-FSC_BASIC`` () = singleTestBuildAndRun' "regression/literal-value-bug-2" FSC_BASIC [] - let ``literal-value-bug-2-FSI_BASIC`` () = singleTestBuildAndRun "regression/literal-value-bug-2" FSI_BASIC + let ``literal-value-bug-2-FSI_BASIC`` () = singleTestBuildAndRun' "regression/literal-value-bug-2" FSI_BASIC [] - let ``OverloadResolution-bug-FSC_BASIC`` () = singleTestBuildAndRun "regression/OverloadResolution-bug" FSC_BASIC + let ``OverloadResolution-bug-FSC_BASIC`` () = singleTestBuildAndRun' "regression/OverloadResolution-bug" FSC_BASIC [] - let ``OverloadResolution-bug-FSI_BASIC`` () = singleTestBuildAndRun "regression/OverloadResolution-bug" FSI_BASIC + let ``OverloadResolution-bug-FSI_BASIC`` () = singleTestBuildAndRun' "regression/OverloadResolution-bug" FSI_BASIC [] - let ``struct-tuple-bug-1-FSC_BASIC`` () = singleTestBuildAndRun "regression/struct-tuple-bug-1" FSC_BASIC + let ``struct-tuple-bug-1-FSC_BASIC`` () = singleTestBuildAndRun' "regression/struct-tuple-bug-1" FSC_BASIC [] - let ``tuple-bug-1-FSC_BASIC`` () = singleTestBuildAndRun "regression/tuple-bug-1" FSC_BASIC + let ``tuple-bug-1-FSC_BASIC`` () = singleTestBuildAndRun' "regression/tuple-bug-1" FSC_BASIC -#if !NETCOREAPP +#if !NETCOREAPP [] let ``SRTP doesn't handle calling member hiding hinherited members`` () = - let cfg = testConfig "regression/5531" + let cfg = testConfig' "regression/5531" - let outFile = "compilation.output.test.txt" - let expectedFile = "compilation.output.test.bsl" + let outFile = "compilation.output.test.txt" + let expectedFile = "compilation.output.test.bsl" - fscBothToOut cfg outFile "%s --nologo -O" cfg.fsc_flags ["test.fs"] + fscBothToOut cfg outFile "%s --nologo -O" cfg.fsc_flags ["test.fs"] - let diff = fsdiff cfg outFile expectedFile + let diff = fsdiff cfg outFile expectedFile - match diff with - | "" -> () - | _ -> - Assert.Fail (sprintf "'%s' and '%s' differ; %A" (getfullpath cfg outFile) (getfullpath cfg expectedFile) diff) + match diff with + | "" -> () + | _ -> + Assert.Fail (sprintf "'%s' and '%s' differ; %A" (getfullpath cfg outFile) (getfullpath cfg expectedFile) diff) - let outFile2 = "output.test.txt" - let expectedFile2 = "output.test.bsl" + let outFile2 = "output.test.txt" + let expectedFile2 = "output.test.bsl" - execBothToOut cfg (cfg.Directory) outFile2 (cfg.Directory ++ "test.exe") "" + execBothToOut cfg (cfg.Directory) outFile2 (cfg.Directory ++ "test.exe") "" - let diff2 = fsdiff cfg outFile2 expectedFile2 - match diff2 with - | "" -> () - | _ -> - Assert.Fail (sprintf "'%s' and '%s' differ; %A" (getfullpath cfg outFile2) (getfullpath cfg expectedFile2) diff2) + let diff2 = fsdiff cfg outFile2 expectedFile2 + match diff2 with + | "" -> () + | _ -> + Assert.Fail (sprintf "'%s' and '%s' differ; %A" (getfullpath cfg outFile2) (getfullpath cfg expectedFile2) diff2) #endif [] - let ``26`` () = singleTestBuildAndRun "regression/26" FSC_BASIC + let ``26`` () = singleTestBuildAndRun' "regression/26" FSC_BASIC [] - let ``321`` () = singleTestBuildAndRun "regression/321" FSC_BASIC + let ``321`` () = singleTestBuildAndRun' "regression/321" FSC_BASIC #if !NETCOREAPP // This test is disabled in coreclr builds dependent on fixing : https://github.com/Microsoft/visualfsharp/issues/2600 [] - let ``655`` () = - let cfg = testConfig "regression/655" + let ``655`` () = + let cfg = testConfig' "regression/655" fsc cfg "%s -a -o:pack.dll" cfg.fsc_flags ["xlibC.ml"] @@ -1939,28 +1944,28 @@ module RegressionTests = exec cfg ("." ++ "test.exe") "" testOkFile.CheckExists() - + // This test is disabled in coreclr builds dependent on fixing : https://github.com/Microsoft/visualfsharp/issues/2600 [] - let ``656`` () = - let cfg = testConfig "regression/656" + let ``656`` () = + let cfg = testConfig' "regression/656" 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"] peverify cfg "pack.exe" #endif - + #if !NETCOREAPP // Requires WinForms [] - let ``83`` () = singleTestBuildAndRun "regression/83" FSC_BASIC + let ``83`` () = singleTestBuildAndRun' "regression/83" FSC_BASIC [] - let ``84`` () = singleTestBuildAndRun "regression/84" FSC_BASIC + let ``84`` () = singleTestBuildAndRun' "regression/84" FSC_BASIC [] - let ``85`` () = - let cfg = testConfig "regression/85" + let ``85`` () = + let cfg = testConfig' "regression/85" fsc cfg "%s -r:Category.dll -a -o:petshop.dll" cfg.fsc_flags ["Category.ml"] @@ -1968,16 +1973,16 @@ module RegressionTests = #endif [] - let ``86`` () = singleTestBuildAndRun "regression/86" FSC_BASIC + let ``86`` () = singleTestBuildAndRun' "regression/86" FSC_BASIC [] - let ``struct-tuple-bug-1-FSI_BASIC`` () = singleTestBuildAndRun "regression/struct-tuple-bug-1" FSI_BASIC + let ``struct-tuple-bug-1-FSI_BASIC`` () = singleTestBuildAndRun' "regression/struct-tuple-bug-1" FSI_BASIC #if !NETCOREAPP // This test is disabled in coreclr builds dependent on fixing : https://github.com/Microsoft/visualfsharp/issues/2600 [] - let ``struct-measure-bug-1`` () = - let cfg = testConfig "regression/struct-measure-bug-1" + let ``struct-measure-bug-1`` () = + let cfg = testConfig' "regression/struct-measure-bug-1" fsc cfg "%s --optimize- -o:test.exe -g" cfg.fsc_flags ["test.fs"] @@ -1986,14 +1991,14 @@ module RegressionTests = module OptimizationTests = [] - let functionSizes () = - let cfg = testConfig "optimize/analyses" + let functionSizes () = + let cfg = testConfig' "optimize/analyses" let outFile = "sizes.FunctionSizes.output.test.txt" let expectedFile = "sizes.FunctionSizes.output.test.bsl" log "== FunctionSizes" - fscBothToOut cfg outFile "%s --nologo -O --test:FunctionSizes" cfg.fsc_flags ["sizes.fs"] + fscBothToOut cfg outFile "%s --nologo -O --test:FunctionSizes" cfg.fsc_flags ["sizes.fs"] let diff = fsdiff cfg outFile expectedFile @@ -2004,14 +2009,14 @@ module OptimizationTests = [] - let totalSizes () = - let cfg = testConfig "optimize/analyses" + let totalSizes () = + let cfg = testConfig' "optimize/analyses" let outFile = "sizes.TotalSizes.output.test.txt" let expectedFile = "sizes.TotalSizes.output.test.bsl" log "== TotalSizes" - fscBothToOut cfg outFile "%s --nologo -O --test:TotalSizes" cfg.fsc_flags ["sizes.fs"] + fscBothToOut cfg outFile "%s --nologo -O --test:TotalSizes" cfg.fsc_flags ["sizes.fs"] let diff = fsdiff cfg outFile expectedFile @@ -2021,14 +2026,14 @@ module OptimizationTests = [] - let hasEffect () = - let cfg = testConfig "optimize/analyses" + let hasEffect () = + let cfg = testConfig' "optimize/analyses" let outFile = "effects.HasEffect.output.test.txt" let expectedFile = "effects.HasEffect.output.test.bsl" log "== HasEffect" - fscBothToOut cfg outFile "%s --nologo -O --test:HasEffect" cfg.fsc_flags ["effects.fs"] + fscBothToOut cfg outFile "%s --nologo -O --test:HasEffect" cfg.fsc_flags ["effects.fs"] let diff = fsdiff cfg outFile expectedFile @@ -2038,14 +2043,14 @@ module OptimizationTests = [] - let noNeedToTailcall () = - let cfg = testConfig "optimize/analyses" + let noNeedToTailcall () = + let cfg = testConfig' "optimize/analyses" let outFile = "tailcalls.NoNeedToTailcall.output.test.txt" let expectedFile = "tailcalls.NoNeedToTailcall.output.test.bsl" log "== NoNeedToTailcall" - fscBothToOut cfg outFile "%s --nologo -O --test:NoNeedToTailcall" cfg.fsc_flags ["tailcalls.fs"] + fscBothToOut cfg outFile "%s --nologo -O --test:NoNeedToTailcall" cfg.fsc_flags ["tailcalls.fs"] let diff = fsdiff cfg outFile expectedFile @@ -2055,12 +2060,12 @@ module OptimizationTests = [] - let ``inline`` () = - let cfg = testConfig "optimize/inline" + let ``inline`` () = + let cfg = testConfig' "optimize/inline" fsc cfg "%s -g --optimize- --target:library -o:lib.dll" cfg.fsc_flags ["lib.fs"; "lib2.fs"] - peverify cfg "lib.dll " + peverify cfg "lib.dll " fsc cfg "%s -g --optimize- --target:library -o:lib3.dll -r:lib.dll " cfg.fsc_flags ["lib3.fs"] @@ -2076,17 +2081,17 @@ module OptimizationTests = ildasm cfg "/out=test--optimize.il" "test--optimize.exe" - let ``test--optimize.il`` = + let ``test--optimize.il`` = File.ReadLines (getfullpath cfg "test--optimize.il") |> Seq.filter (fun line -> line.Contains(".locals init")) |> List.ofSeq match ``test--optimize.il`` with | [] -> () - | lines -> + | lines -> Assert.Fail (sprintf "Error: optimizations not removed. Relevant lines from IL file follow: %A" lines) - let numElim = + let numElim = File.ReadLines (getfullpath cfg "test.il") |> Seq.filter (fun line -> line.Contains(".locals init")) |> Seq.length @@ -2094,8 +2099,8 @@ module OptimizationTests = log "Ran ok - optimizations removed %d textual occurrences of optimizable identifiers from target IL" numElim [] - let stats () = - let cfg = testConfig "optimize/stats" + let stats () = + let cfg = testConfig' "optimize/stats" ildasm cfg "/out=FSharp.Core.il" cfg.FSCOREDLLPATH @@ -2116,710 +2121,710 @@ module OptimizationTests = log "%s" m #endif -module TypecheckTests = +module TypecheckTests = [] - let ``full-rank-arrays`` () = - let cfg = testConfig "typecheck/full-rank-arrays" + let ``full-rank-arrays`` () = + let cfg = testConfig' "typecheck/full-rank-arrays" SingleTest.singleTestBuildAndRunWithCopyDlls cfg "full-rank-arrays.dll" FSC_BASIC [] - let misc () = singleTestBuildAndRun "typecheck/misc" FSC_BASIC + let misc () = singleTestBuildAndRun' "typecheck/misc" FSC_BASIC #if !NETCOREAPP [] - let ``sigs pos26`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos26`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos26.exe" cfg.fsc_flags ["pos26.fsi"; "pos26.fs"] peverify cfg "pos26.exe" [] - let ``sigs pos25`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos25`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos25.exe" cfg.fsc_flags ["pos25.fs"] peverify cfg "pos25.exe" [] - let ``sigs pos27`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos27`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos27.exe" cfg.fsc_flags ["pos27.fs"] peverify cfg "pos27.exe" [] - let ``sigs pos28`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos28`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos28.exe" cfg.fsc_flags ["pos28.fs"] peverify cfg "pos28.exe" [] - let ``sigs pos29`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos29`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos29.exe" cfg.fsc_flags ["pos29.fsi"; "pos29.fs"; "pos29.app.fs"] peverify cfg "pos29.exe" [] - let ``sigs pos30`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos30`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos30.exe --warnaserror+" cfg.fsc_flags ["pos30.fs"] peverify cfg "pos30.exe" [] - let ``sigs pos24`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos24`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos24.exe" cfg.fsc_flags ["pos24.fs"] peverify cfg "pos24.exe" [] - let ``sigs pos31`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos31`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos31.exe --warnaserror" cfg.fsc_flags ["pos31.fsi"; "pos31.fs"] peverify cfg "pos31.exe" [] - let ``sigs pos32`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos32`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:library -o:pos32.dll --warnaserror" cfg.fsc_flags ["pos32.fs"] peverify cfg "pos32.dll" [] - let ``sigs pos33`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos33`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:library -o:pos33.dll --warnaserror" cfg.fsc_flags ["pos33.fsi"; "pos33.fs"] peverify cfg "pos33.dll" [] - let ``sigs pos34`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos34`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:library -o:pos34.dll --warnaserror" cfg.fsc_flags ["pos34.fs"] peverify cfg "pos34.dll" [] - let ``sigs pos35`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos35`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:library -o:pos35.dll --warnaserror" cfg.fsc_flags ["pos35.fs"] peverify cfg "pos35.dll" [] - let ``sigs pos23`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos23`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos23.exe" cfg.fsc_flags ["pos23.fs"] peverify cfg "pos23.exe" exec cfg ("." ++ "pos23.exe") "" [] - let ``sigs pos20`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos20`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos20.exe" cfg.fsc_flags ["pos20.fs"] peverify cfg "pos20.exe" exec cfg ("." ++ "pos20.exe") "" [] - let ``sigs pos19`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos19`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos19.exe" cfg.fsc_flags ["pos19.fs"] peverify cfg "pos19.exe" exec cfg ("." ++ "pos19.exe") "" [] - let ``sigs pos18`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos18`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos18.exe" cfg.fsc_flags ["pos18.fs"] peverify cfg "pos18.exe" exec cfg ("." ++ "pos18.exe") "" [] - let ``sigs pos16`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos16`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos16.exe" cfg.fsc_flags ["pos16.fs"] peverify cfg "pos16.exe" exec cfg ("." ++ "pos16.exe") "" [] - let ``sigs pos17`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos17`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos17.exe" cfg.fsc_flags ["pos17.fs"] peverify cfg "pos17.exe" exec cfg ("." ++ "pos17.exe") "" [] - let ``sigs pos15`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos15`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos15.exe" cfg.fsc_flags ["pos15.fs"] peverify cfg "pos15.exe" exec cfg ("." ++ "pos15.exe") "" [] - let ``sigs pos14`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos14`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos14.exe" cfg.fsc_flags ["pos14.fs"] peverify cfg "pos14.exe" exec cfg ("." ++ "pos14.exe") "" [] - let ``sigs pos13`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos13`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s --target:exe -o:pos13.exe" cfg.fsc_flags ["pos13.fs"] peverify cfg "pos13.exe" exec cfg ("." ++ "pos13.exe") "" [] - let ``sigs pos12 `` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos12 `` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s -a -o:pos12.dll" cfg.fsc_flags ["pos12.fs"] [] - let ``sigs pos11`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos11`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s -a -o:pos11.dll" cfg.fsc_flags ["pos11.fs"] [] - let ``sigs pos10`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos10`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s -a -o:pos10.dll" cfg.fsc_flags ["pos10.fs"] peverify cfg "pos10.dll" [] - let ``sigs pos09`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos09`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s -a -o:pos09.dll" cfg.fsc_flags ["pos09.fs"] peverify cfg "pos09.dll" [] - let ``sigs pos07`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos07`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s -a -o:pos07.dll" cfg.fsc_flags ["pos07.fs"] peverify cfg "pos07.dll" [] - let ``sigs pos08`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos08`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s -a -o:pos08.dll" cfg.fsc_flags ["pos08.fs"] peverify cfg "pos08.dll" [] - let ``sigs pos06`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos06`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s -a -o:pos06.dll" cfg.fsc_flags ["pos06.fs"] peverify cfg "pos06.dll" [] - let ``sigs pos03`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos03`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s -a -o:pos03.dll" cfg.fsc_flags ["pos03.fs"] peverify cfg "pos03.dll" fsc cfg "%s -a -o:pos03a.dll" cfg.fsc_flags ["pos03a.fsi"; "pos03a.fs"] peverify cfg "pos03a.dll" [] - let ``sigs pos01a`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos01a`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s -a -o:pos01a.dll" cfg.fsc_flags ["pos01a.fsi"; "pos01a.fs"] peverify cfg "pos01a.dll" [] - let ``sigs pos02`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos02`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s -a -o:pos02.dll" cfg.fsc_flags ["pos02.fs"] peverify cfg "pos02.dll" [] - let ``sigs pos05`` () = - let cfg = testConfig "typecheck/sigs" + let ``sigs pos05`` () = + let cfg = testConfig' "typecheck/sigs" fsc cfg "%s -a -o:pos05.dll" cfg.fsc_flags ["pos05.fs"] - [] - let ``type check neg01`` () = singleNegTest (testConfig "typecheck/sigs") "neg01" + [] + let ``type check neg01`` () = singleNegTest (testConfig' "typecheck/sigs") "neg01" - [] - let ``type check neg02`` () = singleNegTest (testConfig "typecheck/sigs") "neg02" + [] + let ``type check neg02`` () = singleNegTest (testConfig' "typecheck/sigs") "neg02" - [] - let ``type check neg03`` () = singleNegTest (testConfig "typecheck/sigs") "neg03" + [] + let ``type check neg03`` () = singleNegTest (testConfig' "typecheck/sigs") "neg03" - [] - let ``type check neg04`` () = singleNegTest (testConfig "typecheck/sigs") "neg04" + [] + let ``type check neg04`` () = singleNegTest (testConfig' "typecheck/sigs") "neg04" - [] - let ``type check neg05`` () = singleNegTest (testConfig "typecheck/sigs") "neg05" + [] + let ``type check neg05`` () = singleNegTest (testConfig' "typecheck/sigs") "neg05" - [] - let ``type check neg06`` () = singleNegTest (testConfig "typecheck/sigs") "neg06" + [] + let ``type check neg06`` () = singleNegTest (testConfig' "typecheck/sigs") "neg06" - [] - let ``type check neg06_a`` () = singleNegTest (testConfig "typecheck/sigs") "neg06_a" + [] + let ``type check neg06_a`` () = singleNegTest (testConfig' "typecheck/sigs") "neg06_a" - [] - let ``type check neg06_b`` () = singleNegTest (testConfig "typecheck/sigs") "neg06_b" + [] + let ``type check neg06_b`` () = singleNegTest (testConfig' "typecheck/sigs") "neg06_b" - [] - let ``type check neg07`` () = singleNegTest (testConfig "typecheck/sigs") "neg07" + [] + let ``type check neg07`` () = singleNegTest (testConfig' "typecheck/sigs") "neg07" - [] - let ``type check neg08`` () = singleNegTest (testConfig "typecheck/sigs") "neg08" + [] + let ``type check neg08`` () = singleNegTest (testConfig' "typecheck/sigs") "neg08" - [] - let ``type check neg09`` () = singleNegTest (testConfig "typecheck/sigs") "neg09" + [] + let ``type check neg09`` () = singleNegTest (testConfig' "typecheck/sigs") "neg09" - [] - let ``type check neg10`` () = singleNegTest (testConfig "typecheck/sigs") "neg10" + [] + let ``type check neg10`` () = singleNegTest (testConfig' "typecheck/sigs") "neg10" - [] - let ``type check neg10_a`` () = singleNegTest (testConfig "typecheck/sigs") "neg10_a" + [] + let ``type check neg10_a`` () = singleNegTest (testConfig' "typecheck/sigs") "neg10_a" - [] - let ``type check neg11`` () = singleNegTest (testConfig "typecheck/sigs") "neg11" + [] + let ``type check neg11`` () = singleNegTest (testConfig' "typecheck/sigs") "neg11" - [] - let ``type check neg12`` () = singleNegTest (testConfig "typecheck/sigs") "neg12" + [] + let ``type check neg12`` () = singleNegTest (testConfig' "typecheck/sigs") "neg12" - [] - let ``type check neg13`` () = singleNegTest (testConfig "typecheck/sigs") "neg13" + [] + let ``type check neg13`` () = singleNegTest (testConfig' "typecheck/sigs") "neg13" - [] - let ``type check neg14`` () = singleNegTest (testConfig "typecheck/sigs") "neg14" + [] + let ``type check neg14`` () = singleNegTest (testConfig' "typecheck/sigs") "neg14" - [] - let ``type check neg15`` () = singleNegTest (testConfig "typecheck/sigs") "neg15" + [] + let ``type check neg15`` () = singleNegTest (testConfig' "typecheck/sigs") "neg15" - [] - let ``type check neg16`` () = singleNegTest (testConfig "typecheck/sigs") "neg16" + [] + let ``type check neg16`` () = singleNegTest (testConfig' "typecheck/sigs") "neg16" - [] - let ``type check neg17`` () = singleNegTest (testConfig "typecheck/sigs") "neg17" + [] + let ``type check neg17`` () = singleNegTest (testConfig' "typecheck/sigs") "neg17" - [] - let ``type check neg18`` () = singleNegTest (testConfig "typecheck/sigs") "neg18" + [] + let ``type check neg18`` () = singleNegTest (testConfig' "typecheck/sigs") "neg18" - [] - let ``type check neg19`` () = singleNegTest (testConfig "typecheck/sigs") "neg19" + [] + let ``type check neg19`` () = singleNegTest (testConfig' "typecheck/sigs") "neg19" - [] - let ``type check neg20`` () = singleNegTest (testConfig "typecheck/sigs") "neg20" + [] + let ``type check neg20`` () = singleNegTest (testConfig' "typecheck/sigs") "neg20" - [] - let ``type check neg21`` () = singleNegTest (testConfig "typecheck/sigs") "neg21" + [] + let ``type check neg21`` () = singleNegTest (testConfig' "typecheck/sigs") "neg21" - [] - let ``type check neg22`` () = singleNegTest (testConfig "typecheck/sigs") "neg22" + [] + let ``type check neg22`` () = singleNegTest (testConfig' "typecheck/sigs") "neg22" - [] - let ``type check neg23`` () = singleNegTest (testConfig "typecheck/sigs") "neg23" + [] + let ``type check neg23`` () = singleNegTest (testConfig' "typecheck/sigs") "neg23" [] - let ``type check neg24 version 4.6`` () = - let cfg = testConfig "typecheck/sigs/version46" + let ``type check neg24 version 4.6`` () = + let cfg = testConfig' "typecheck/sigs/version46" // For some reason this warning is off by default in the test framework but in this case we are testing for it let cfg = { cfg with fsc_flags = cfg.fsc_flags.Replace("--nowarn:20", "") } singleVersionedNegTest cfg "4.6" "neg24" - [] + [] let ``type check neg24 version 4.7`` () = - let cfg = testConfig "typecheck/sigs/version47" + let cfg = testConfig' "typecheck/sigs/version47" // For some reason this warning is off by default in the test framework but in this case we are testing for it let cfg = { cfg with fsc_flags = cfg.fsc_flags.Replace("--nowarn:20", "") } singleVersionedNegTest cfg "preview" "neg24" [] - let ``type check neg25`` () = singleNegTest (testConfig "typecheck/sigs") "neg25" + let ``type check neg25`` () = singleNegTest (testConfig' "typecheck/sigs") "neg25" - [] - let ``type check neg26`` () = singleNegTest (testConfig "typecheck/sigs") "neg26" + [] + let ``type check neg26`` () = singleNegTest (testConfig' "typecheck/sigs") "neg26" - [] - let ``type check neg27`` () = singleNegTest (testConfig "typecheck/sigs") "neg27" + [] + let ``type check neg27`` () = singleNegTest (testConfig' "typecheck/sigs") "neg27" - [] - let ``type check neg28`` () = singleNegTest (testConfig "typecheck/sigs") "neg28" + [] + let ``type check neg28`` () = singleNegTest (testConfig' "typecheck/sigs") "neg28" - [] - let ``type check neg29`` () = singleNegTest (testConfig "typecheck/sigs") "neg29" + [] + let ``type check neg29`` () = singleNegTest (testConfig' "typecheck/sigs") "neg29" - [] - let ``type check neg30`` () = singleNegTest (testConfig "typecheck/sigs") "neg30" + [] + let ``type check neg30`` () = singleNegTest (testConfig' "typecheck/sigs") "neg30" - [] - let ``type check neg31`` () = singleNegTest (testConfig "typecheck/sigs") "neg31" + [] + let ``type check neg31`` () = singleNegTest (testConfig' "typecheck/sigs") "neg31" - [] - let ``type check neg32`` () = singleNegTest (testConfig "typecheck/sigs") "neg32" + [] + let ``type check neg32`` () = singleNegTest (testConfig' "typecheck/sigs") "neg32" - [] - let ``type check neg33`` () = singleNegTest (testConfig "typecheck/sigs") "neg33" + [] + let ``type check neg33`` () = singleNegTest (testConfig' "typecheck/sigs") "neg33" - [] - let ``type check neg34`` () = singleNegTest (testConfig "typecheck/sigs") "neg34" + [] + let ``type check neg34`` () = singleNegTest (testConfig' "typecheck/sigs") "neg34" - [] - let ``type check neg35`` () = singleNegTest (testConfig "typecheck/sigs") "neg35" + [] + let ``type check neg35`` () = singleNegTest (testConfig' "typecheck/sigs") "neg35" - [] - let ``type check neg36`` () = singleNegTest (testConfig "typecheck/sigs") "neg36" + [] + let ``type check neg36`` () = singleNegTest (testConfig' "typecheck/sigs") "neg36" - [] - let ``type check neg37`` () = singleNegTest (testConfig "typecheck/sigs") "neg37" + [] + let ``type check neg37`` () = singleNegTest (testConfig' "typecheck/sigs") "neg37" - [] - let ``type check neg37_a`` () = singleNegTest (testConfig "typecheck/sigs") "neg37_a" + [] + let ``type check neg37_a`` () = singleNegTest (testConfig' "typecheck/sigs") "neg37_a" - [] - let ``type check neg38`` () = singleNegTest (testConfig "typecheck/sigs") "neg38" + [] + let ``type check neg38`` () = singleNegTest (testConfig' "typecheck/sigs") "neg38" - [] - let ``type check neg39`` () = singleNegTest (testConfig "typecheck/sigs") "neg39" + [] + let ``type check neg39`` () = singleNegTest (testConfig' "typecheck/sigs") "neg39" - [] - let ``type check neg40`` () = singleNegTest (testConfig "typecheck/sigs") "neg40" + [] + let ``type check neg40`` () = singleNegTest (testConfig' "typecheck/sigs") "neg40" - [] - let ``type check neg41`` () = singleNegTest (testConfig "typecheck/sigs") "neg41" + [] + let ``type check neg41`` () = singleNegTest (testConfig' "typecheck/sigs") "neg41" - [] - let ``type check neg42`` () = singleNegTest (testConfig "typecheck/sigs") "neg42" + [] + let ``type check neg42`` () = singleNegTest (testConfig' "typecheck/sigs") "neg42" - [] - let ``type check neg43`` () = singleNegTest (testConfig "typecheck/sigs") "neg43" + [] + let ``type check neg43`` () = singleNegTest (testConfig' "typecheck/sigs") "neg43" - [] - let ``type check neg44`` () = singleNegTest (testConfig "typecheck/sigs") "neg44" + [] + let ``type check neg44`` () = singleNegTest (testConfig' "typecheck/sigs") "neg44" - [] - let ``type check neg45`` () = singleNegTest (testConfig "typecheck/sigs") "neg45" + [] + let ``type check neg45`` () = singleNegTest (testConfig' "typecheck/sigs") "neg45" - [] - let ``type check neg46`` () = singleNegTest (testConfig "typecheck/sigs") "neg46" + [] + let ``type check neg46`` () = singleNegTest (testConfig' "typecheck/sigs") "neg46" - [] - let ``type check neg47`` () = singleNegTest (testConfig "typecheck/sigs") "neg47" + [] + let ``type check neg47`` () = singleNegTest (testConfig' "typecheck/sigs") "neg47" - [] - let ``type check neg48`` () = singleNegTest (testConfig "typecheck/sigs") "neg48" + [] + let ``type check neg48`` () = singleNegTest (testConfig' "typecheck/sigs") "neg48" - [] - let ``type check neg49`` () = singleNegTest (testConfig "typecheck/sigs") "neg49" + [] + let ``type check neg49`` () = singleNegTest (testConfig' "typecheck/sigs") "neg49" - [] - let ``type check neg50`` () = singleNegTest (testConfig "typecheck/sigs") "neg50" + [] + let ``type check neg50`` () = singleNegTest (testConfig' "typecheck/sigs") "neg50" - [] - let ``type check neg51`` () = singleNegTest (testConfig "typecheck/sigs") "neg51" + [] + let ``type check neg51`` () = singleNegTest (testConfig' "typecheck/sigs") "neg51" - [] - let ``type check neg52`` () = singleNegTest (testConfig "typecheck/sigs") "neg52" + [] + let ``type check neg52`` () = singleNegTest (testConfig' "typecheck/sigs") "neg52" - [] - let ``type check neg53`` () = singleNegTest (testConfig "typecheck/sigs") "neg53" + [] + let ``type check neg53`` () = singleNegTest (testConfig' "typecheck/sigs") "neg53" - [] - let ``type check neg54`` () = singleNegTest (testConfig "typecheck/sigs") "neg54" + [] + let ``type check neg54`` () = singleNegTest (testConfig' "typecheck/sigs") "neg54" - [] - let ``type check neg55`` () = singleNegTest (testConfig "typecheck/sigs") "neg55" + [] + let ``type check neg55`` () = singleNegTest (testConfig' "typecheck/sigs") "neg55" - [] - let ``type check neg56`` () = singleNegTest (testConfig "typecheck/sigs") "neg56" + [] + let ``type check neg56`` () = singleNegTest (testConfig' "typecheck/sigs") "neg56" - [] - let ``type check neg56_a`` () = singleNegTest (testConfig "typecheck/sigs") "neg56_a" + [] + let ``type check neg56_a`` () = singleNegTest (testConfig' "typecheck/sigs") "neg56_a" - [] - let ``type check neg56_b`` () = singleNegTest (testConfig "typecheck/sigs") "neg56_b" + [] + let ``type check neg56_b`` () = singleNegTest (testConfig' "typecheck/sigs") "neg56_b" - [] - let ``type check neg57`` () = singleNegTest (testConfig "typecheck/sigs") "neg57" + [] + let ``type check neg57`` () = singleNegTest (testConfig' "typecheck/sigs") "neg57" - [] - let ``type check neg58`` () = singleNegTest (testConfig "typecheck/sigs") "neg58" + [] + let ``type check neg58`` () = singleNegTest (testConfig' "typecheck/sigs") "neg58" - [] - let ``type check neg59`` () = singleNegTest (testConfig "typecheck/sigs") "neg59" + [] + let ``type check neg59`` () = singleNegTest (testConfig' "typecheck/sigs") "neg59" - [] - let ``type check neg60`` () = singleNegTest (testConfig "typecheck/sigs") "neg60" + [] + let ``type check neg60`` () = singleNegTest (testConfig' "typecheck/sigs") "neg60" - [] - let ``type check neg61`` () = singleNegTest (testConfig "typecheck/sigs") "neg61" + [] + let ``type check neg61`` () = singleNegTest (testConfig' "typecheck/sigs") "neg61" - [] - let ``type check neg62`` () = singleNegTest (testConfig "typecheck/sigs") "neg62" + [] + let ``type check neg62`` () = singleNegTest (testConfig' "typecheck/sigs") "neg62" - [] - let ``type check neg63`` () = singleNegTest (testConfig "typecheck/sigs") "neg63" + [] + let ``type check neg63`` () = singleNegTest (testConfig' "typecheck/sigs") "neg63" - [] - let ``type check neg64`` () = singleNegTest (testConfig "typecheck/sigs") "neg64" + [] + let ``type check neg64`` () = singleNegTest (testConfig' "typecheck/sigs") "neg64" - [] - let ``type check neg65`` () = singleNegTest (testConfig "typecheck/sigs") "neg65" + [] + let ``type check neg65`` () = singleNegTest (testConfig' "typecheck/sigs") "neg65" - [] - let ``type check neg66`` () = singleNegTest (testConfig "typecheck/sigs") "neg66" + [] + let ``type check neg66`` () = singleNegTest (testConfig' "typecheck/sigs") "neg66" - [] - let ``type check neg67`` () = singleNegTest (testConfig "typecheck/sigs") "neg67" + [] + let ``type check neg67`` () = singleNegTest (testConfig' "typecheck/sigs") "neg67" - [] - let ``type check neg68`` () = singleNegTest (testConfig "typecheck/sigs") "neg68" + [] + let ``type check neg68`` () = singleNegTest (testConfig' "typecheck/sigs") "neg68" - [] - let ``type check neg69`` () = singleNegTest (testConfig "typecheck/sigs") "neg69" + [] + let ``type check neg69`` () = singleNegTest (testConfig' "typecheck/sigs") "neg69" - [] - let ``type check neg70`` () = singleNegTest (testConfig "typecheck/sigs") "neg70" + [] + let ``type check neg70`` () = singleNegTest (testConfig' "typecheck/sigs") "neg70" - [] - let ``type check neg71`` () = singleNegTest (testConfig "typecheck/sigs") "neg71" + [] + let ``type check neg71`` () = singleNegTest (testConfig' "typecheck/sigs") "neg71" - [] - let ``type check neg72`` () = singleNegTest (testConfig "typecheck/sigs") "neg72" + [] + let ``type check neg72`` () = singleNegTest (testConfig' "typecheck/sigs") "neg72" - [] - let ``type check neg73`` () = singleNegTest (testConfig "typecheck/sigs") "neg73" + [] + let ``type check neg73`` () = singleNegTest (testConfig' "typecheck/sigs") "neg73" - [] - let ``type check neg74`` () = singleNegTest (testConfig "typecheck/sigs") "neg74" + [] + let ``type check neg74`` () = singleNegTest (testConfig' "typecheck/sigs") "neg74" - [] - let ``type check neg75`` () = singleNegTest (testConfig "typecheck/sigs") "neg75" + [] + let ``type check neg75`` () = singleNegTest (testConfig' "typecheck/sigs") "neg75" - [] - let ``type check neg76`` () = singleNegTest (testConfig "typecheck/sigs") "neg76" + [] + let ``type check neg76`` () = singleNegTest (testConfig' "typecheck/sigs") "neg76" - [] - let ``type check neg77`` () = singleNegTest (testConfig "typecheck/sigs") "neg77" + [] + let ``type check neg77`` () = singleNegTest (testConfig' "typecheck/sigs") "neg77" - [] - let ``type check neg78`` () = singleNegTest (testConfig "typecheck/sigs") "neg78" + [] + let ``type check neg78`` () = singleNegTest (testConfig' "typecheck/sigs") "neg78" - [] - let ``type check neg79`` () = singleNegTest (testConfig "typecheck/sigs") "neg79" + [] + let ``type check neg79`` () = singleNegTest (testConfig' "typecheck/sigs") "neg79" - [] - let ``type check neg80`` () = singleNegTest (testConfig "typecheck/sigs") "neg80" + [] + let ``type check neg80`` () = singleNegTest (testConfig' "typecheck/sigs") "neg80" - [] - let ``type check neg81`` () = singleNegTest (testConfig "typecheck/sigs") "neg81" + [] + let ``type check neg81`` () = singleNegTest (testConfig' "typecheck/sigs") "neg81" - [] - let ``type check neg82`` () = singleNegTest (testConfig "typecheck/sigs") "neg82" + [] + let ``type check neg82`` () = singleNegTest (testConfig' "typecheck/sigs") "neg82" - [] - let ``type check neg83`` () = singleNegTest (testConfig "typecheck/sigs") "neg83" + [] + let ``type check neg83`` () = singleNegTest (testConfig' "typecheck/sigs") "neg83" - [] - let ``type check neg84`` () = singleNegTest (testConfig "typecheck/sigs") "neg84" + [] + let ``type check neg84`` () = singleNegTest (testConfig' "typecheck/sigs") "neg84" - [] - let ``type check neg85`` () = singleNegTest (testConfig "typecheck/sigs") "neg85" + [] + let ``type check neg85`` () = singleNegTest (testConfig' "typecheck/sigs") "neg85" - [] - let ``type check neg86`` () = singleNegTest (testConfig "typecheck/sigs") "neg86" + [] + let ``type check neg86`` () = singleNegTest (testConfig' "typecheck/sigs") "neg86" - [] - let ``type check neg87`` () = singleNegTest (testConfig "typecheck/sigs") "neg87" + [] + let ``type check neg87`` () = singleNegTest (testConfig' "typecheck/sigs") "neg87" - [] - let ``type check neg88`` () = singleNegTest (testConfig "typecheck/sigs") "neg88" + [] + let ``type check neg88`` () = singleNegTest (testConfig' "typecheck/sigs") "neg88" - [] - let ``type check neg89`` () = singleNegTest (testConfig "typecheck/sigs") "neg89" + [] + let ``type check neg89`` () = singleNegTest (testConfig' "typecheck/sigs") "neg89" - [] - let ``type check neg90`` () = singleNegTest (testConfig "typecheck/sigs") "neg90" + [] + let ``type check neg90`` () = singleNegTest (testConfig' "typecheck/sigs") "neg90" - [] - let ``type check neg91`` () = singleNegTest (testConfig "typecheck/sigs") "neg91" + [] + let ``type check neg91`` () = singleNegTest (testConfig' "typecheck/sigs") "neg91" - [] - let ``type check neg92`` () = singleNegTest (testConfig "typecheck/sigs") "neg92" + [] + let ``type check neg92`` () = singleNegTest (testConfig' "typecheck/sigs") "neg92" - [] - let ``type check neg93`` () = singleNegTest (testConfig "typecheck/sigs") "neg93" + [] + let ``type check neg93`` () = singleNegTest (testConfig' "typecheck/sigs") "neg93" - [] - let ``type check neg94`` () = singleNegTest (testConfig "typecheck/sigs") "neg94" + [] + let ``type check neg94`` () = singleNegTest (testConfig' "typecheck/sigs") "neg94" - [] - let ``type check neg95`` () = singleNegTest (testConfig "typecheck/sigs") "neg95" + [] + let ``type check neg95`` () = singleNegTest (testConfig' "typecheck/sigs") "neg95" - [] - let ``type check neg96`` () = singleNegTest (testConfig "typecheck/sigs") "neg96" + [] + let ``type check neg96`` () = singleNegTest (testConfig' "typecheck/sigs") "neg96" - [] - let ``type check neg97`` () = singleNegTest (testConfig "typecheck/sigs") "neg97" + [] + let ``type check neg97`` () = singleNegTest (testConfig' "typecheck/sigs") "neg97" - [] - let ``type check neg98`` () = singleNegTest (testConfig "typecheck/sigs") "neg98" + [] + let ``type check neg98`` () = singleNegTest (testConfig' "typecheck/sigs") "neg98" - [] - let ``type check neg99`` () = singleNegTest (testConfig "typecheck/sigs") "neg99" + [] + let ``type check neg99`` () = singleNegTest (testConfig' "typecheck/sigs") "neg99" - [] - let ``type check neg100`` () = - let cfg = testConfig "typecheck/sigs" + [] + let ``type check neg100`` () = + let cfg = testConfig' "typecheck/sigs" let cfg = { cfg with fsc_flags = cfg.fsc_flags + " --warnon:3218" } singleNegTest cfg "neg100" - [] - let ``type check neg101`` () = singleNegTest (testConfig "typecheck/sigs") "neg101" + [] + let ``type check neg101`` () = singleNegTest (testConfig' "typecheck/sigs") "neg101" [] - let ``type check neg102`` () = singleNegTest (testConfig "typecheck/sigs") "neg102" + let ``type check neg102`` () = singleNegTest (testConfig' "typecheck/sigs") "neg102" [] - let ``type check neg103`` () = singleNegTest (testConfig "typecheck/sigs") "neg103" + let ``type check neg103`` () = singleNegTest (testConfig' "typecheck/sigs") "neg103" [] - let ``type check neg104`` () = singleNegTest (testConfig "typecheck/sigs") "neg104" + let ``type check neg104`` () = singleNegTest (testConfig' "typecheck/sigs") "neg104" [] - let ``type check neg106`` () = singleNegTest (testConfig "typecheck/sigs") "neg106" + let ``type check neg106`` () = singleNegTest (testConfig' "typecheck/sigs") "neg106" [] - let ``type check neg107`` () = singleNegTest (testConfig "typecheck/sigs") "neg107" + let ``type check neg107`` () = singleNegTest (testConfig' "typecheck/sigs") "neg107" [] - let ``type check neg108`` () = singleNegTest (testConfig "typecheck/sigs") "neg108" + let ``type check neg108`` () = singleNegTest (testConfig' "typecheck/sigs") "neg108" [] - let ``type check neg109`` () = singleNegTest (testConfig "typecheck/sigs") "neg109" + let ``type check neg109`` () = singleNegTest (testConfig' "typecheck/sigs") "neg109" [] - let ``type check neg110`` () = singleNegTest (testConfig "typecheck/sigs") "neg110" + let ``type check neg110`` () = singleNegTest (testConfig' "typecheck/sigs") "neg110" [] - let ``type check neg111`` () = singleNegTest (testConfig "typecheck/sigs") "neg111" + let ``type check neg111`` () = singleNegTest (testConfig' "typecheck/sigs") "neg111" - [] - let ``type check neg113`` () = singleNegTest (testConfig "typecheck/sigs") "neg113" + [] + let ``type check neg113`` () = singleNegTest (testConfig' "typecheck/sigs") "neg113" - [] - let ``type check neg114`` () = singleNegTest (testConfig "typecheck/sigs") "neg114" + [] + let ``type check neg114`` () = singleNegTest (testConfig' "typecheck/sigs") "neg114" - [] - let ``type check neg115`` () = singleNegTest (testConfig "typecheck/sigs") "neg115" + [] + let ``type check neg115`` () = singleNegTest (testConfig' "typecheck/sigs") "neg115" - [] - let ``type check neg116`` () = singleNegTest (testConfig "typecheck/sigs") "neg116" + [] + let ``type check neg116`` () = singleNegTest (testConfig' "typecheck/sigs") "neg116" - [] - let ``type check neg117`` () = singleNegTest (testConfig "typecheck/sigs") "neg117" + [] + let ``type check neg117`` () = singleNegTest (testConfig' "typecheck/sigs") "neg117" - [] - let ``type check neg118`` () = singleNegTest (testConfig "typecheck/sigs") "neg118" + [] + let ``type check neg118`` () = singleNegTest (testConfig' "typecheck/sigs") "neg118" - [] - let ``type check neg119`` () = singleNegTest (testConfig "typecheck/sigs") "neg119" + [] + let ``type check neg119`` () = singleNegTest (testConfig' "typecheck/sigs") "neg119" - [] - let ``type check neg120`` () = singleNegTest (testConfig "typecheck/sigs") "neg120" + [] + let ``type check neg120`` () = singleNegTest (testConfig' "typecheck/sigs") "neg120" - [] - let ``type check neg121`` () = singleNegTest (testConfig "typecheck/sigs") "neg121" + [] + let ``type check neg121`` () = singleNegTest (testConfig' "typecheck/sigs") "neg121" - [] - let ``type check neg122`` () = singleNegTest (testConfig "typecheck/sigs") "neg122" + [] + let ``type check neg122`` () = singleNegTest (testConfig' "typecheck/sigs") "neg122" - [] - let ``type check neg123`` () = singleNegTest (testConfig "typecheck/sigs") "neg123" + [] + let ``type check neg123`` () = singleNegTest (testConfig' "typecheck/sigs") "neg123" - [] - let ``type check neg124`` () = singleNegTest (testConfig "typecheck/sigs") "neg124" + [] + let ``type check neg124`` () = singleNegTest (testConfig' "typecheck/sigs") "neg124" - [] - let ``type check neg125`` () = singleNegTest (testConfig "typecheck/sigs") "neg125" + [] + let ``type check neg125`` () = singleNegTest (testConfig' "typecheck/sigs") "neg125" - [] - let ``type check neg126`` () = singleNegTest (testConfig "typecheck/sigs") "neg126" + [] + let ``type check neg126`` () = singleNegTest (testConfig' "typecheck/sigs") "neg126" - [] - let ``type check neg127`` () = singleNegTest (testConfig "typecheck/sigs") "neg127" + [] + let ``type check neg127`` () = singleNegTest (testConfig' "typecheck/sigs") "neg127" - [] - let ``type check neg128`` () = singleNegTest (testConfig "typecheck/sigs") "neg128" + [] + let ``type check neg128`` () = singleNegTest (testConfig' "typecheck/sigs") "neg128" - [] - let ``type check neg129`` () = singleNegTest (testConfig "typecheck/sigs") "neg129" + [] + let ``type check neg129`` () = singleNegTest (testConfig' "typecheck/sigs") "neg129" - [] - let ``type check neg_anon_1`` () = singleNegTest (testConfig "typecheck/sigs") "neg_anon_1" + [] + let ``type check neg_anon_1`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_anon_1" - [] - let ``type check neg_anon_2`` () = singleNegTest (testConfig "typecheck/sigs") "neg_anon_2" + [] + let ``type check neg_anon_2`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_anon_2" - [] - let ``type check neg_issue_3752`` () = singleNegTest (testConfig "typecheck/sigs") "neg_issue_3752" + [] + let ``type check neg_issue_3752`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_issue_3752" - [] - let ``type check neg_byref_1`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_1" + [] + let ``type check neg_byref_1`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_1" - [] - let ``type check neg_byref_2`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_2" + [] + let ``type check neg_byref_2`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_2" - [] - let ``type check neg_byref_3`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_3" + [] + let ``type check neg_byref_3`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_3" - [] - let ``type check neg_byref_4`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_4" + [] + let ``type check neg_byref_4`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_4" - [] - let ``type check neg_byref_5`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_5" + [] + let ``type check neg_byref_5`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_5" - [] - let ``type check neg_byref_6`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_6" + [] + let ``type check neg_byref_6`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_6" - [] - let ``type check neg_byref_7`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_7" + [] + let ``type check neg_byref_7`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_7" - [] - let ``type check neg_byref_8`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_8" + [] + let ``type check neg_byref_8`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_8" - [] - let ``type check neg_byref_10`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_10" + [] + let ``type check neg_byref_10`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_10" - [] - let ``type check neg_byref_11`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_11" + [] + let ``type check neg_byref_11`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_11" - [] - let ``type check neg_byref_12`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_12" + [] + let ``type check neg_byref_12`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_12" - [] - let ``type check neg_byref_13`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_13" + [] + let ``type check neg_byref_13`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_13" - [] - let ``type check neg_byref_14`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_14" + [] + let ``type check neg_byref_14`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_14" - [] - let ``type check neg_byref_15`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_15" + [] + let ``type check neg_byref_15`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_15" - [] - let ``type check neg_byref_16`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_16" + [] + let ``type check neg_byref_16`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_16" - [] - let ``type check neg_byref_17`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_17" + [] + let ``type check neg_byref_17`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_17" - [] - let ``type check neg_byref_18`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_18" + [] + let ``type check neg_byref_18`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_18" - [] - let ``type check neg_byref_19`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_19" + [] + let ``type check neg_byref_19`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_19" - [] - let ``type check neg_byref_20`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_20" + [] + let ``type check neg_byref_20`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_20" - [] - let ``type check neg_byref_21`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_21" + [] + let ``type check neg_byref_21`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_21" - [] - let ``type check neg_byref_22`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_22" + [] + let ``type check neg_byref_22`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_22" - [] - let ``type check neg_byref_23`` () = singleNegTest (testConfig "typecheck/sigs") "neg_byref_23" + [] + let ``type check neg_byref_23`` () = singleNegTest (testConfig' "typecheck/sigs") "neg_byref_23" -module FscTests = +module FscTests = [] - let ``should be raised if AssemblyInformationalVersion has invalid version`` () = - let cfg = testConfig (Commands.createTempDir()) + let ``should be raised if AssemblyInformationalVersion has invalid version`` () = + let cfg = testConfig' (Commands.createTempDir()) let code = """ @@ -2838,13 +2843,13 @@ open System.Reflection fv.ProductVersion |> Assert.areEqual "45.2048.main1.2-hotfix (upgrade Second Chance security)" - (fv.ProductMajorPart, fv.ProductMinorPart, fv.ProductBuildPart, fv.ProductPrivatePart) + (fv.ProductMajorPart, fv.ProductMinorPart, fv.ProductBuildPart, fv.ProductPrivatePart) |> Assert.areEqual (45, 2048, 0, 2) [] - let ``should set file version info on generated file`` () = - let cfg = testConfig (Commands.createTempDir()) + let ``should set file version info on generated file`` () = + let cfg = testConfig' (Commands.createTempDir()) let code = """ @@ -2872,14 +2877,14 @@ open System.Runtime.InteropServices let fv = System.Diagnostics.FileVersionInfo.GetVersionInfo(Commands.getfullpath cfg.Directory "lib.dll") fv.CompanyName |> Assert.areEqual "Compressed Space Transport" fv.FileVersion |> Assert.areEqual "99.88.77.66" - + (fv.FileMajorPart, fv.FileMinorPart, fv.FileBuildPart, fv.FilePrivatePart) |> Assert.areEqual (99,88,77,66) - + fv.ProductVersion |> Assert.areEqual "17.56.2912.14" - (fv.ProductMajorPart, fv.ProductMinorPart, fv.ProductBuildPart, fv.ProductPrivatePart) + (fv.ProductMajorPart, fv.ProductMinorPart, fv.ProductBuildPart, fv.ProductPrivatePart) |> Assert.areEqual (17,56,2912,14) - + fv.LegalCopyright |> Assert.areEqual "Copyright \u00A9 Compressed Space Transport 2380" fv.LegalTrademarks |> Assert.areEqual "CST \u2122" #endif @@ -2901,9 +2906,9 @@ module ProductVersionTest = [] let ``should use correct fallback``() = - + for (assemblyVersion, fileVersion, infoVersion, expected) in fallbackTestData () do - let cfg = testConfig (Commands.createTempDir()) + let cfg = testConfig' (Commands.createTempDir()) let dir = cfg.Directory printfn "Directory: %s" dir @@ -2934,55 +2939,55 @@ namespace CST.RI.Anshun module GeneratedSignatureTests = [] - let ``members-basics-GENERATED_SIGNATURE`` () = singleTestBuildAndRun "core/members/basics" GENERATED_SIGNATURE + let ``members-basics-GENERATED_SIGNATURE`` () = singleTestBuildAndRun' "core/members/basics" GENERATED_SIGNATURE [] - let ``access-GENERATED_SIGNATURE``() = singleTestBuildAndRun "core/access" GENERATED_SIGNATURE + let ``access-GENERATED_SIGNATURE``() = singleTestBuildAndRun' "core/access" GENERATED_SIGNATURE [] - let ``array-GENERATED_SIGNATURE``() = singleTestBuildAndRun "core/array" GENERATED_SIGNATURE + let ``array-GENERATED_SIGNATURE``() = singleTestBuildAndRun' "core/array" GENERATED_SIGNATURE [] - let ``genericmeasures-GENERATED_SIGNATURE`` () = singleTestBuildAndRun "core/genericmeasures" GENERATED_SIGNATURE + let ``genericmeasures-GENERATED_SIGNATURE`` () = singleTestBuildAndRun' "core/genericmeasures" GENERATED_SIGNATURE [] - let ``innerpoly-GENERATED_SIGNATURE`` () = singleTestBuildAndRun "core/innerpoly" GENERATED_SIGNATURE + let ``innerpoly-GENERATED_SIGNATURE`` () = singleTestBuildAndRun' "core/innerpoly" GENERATED_SIGNATURE [] - let ``measures-GENERATED_SIGNATURE`` () = singleTestBuildAndRun "core/measures" GENERATED_SIGNATURE + let ``measures-GENERATED_SIGNATURE`` () = singleTestBuildAndRun' "core/measures" GENERATED_SIGNATURE #endif #if !NETCOREAPP module OverloadResolution = - module ``fsharpqa migrated tests`` = - let [] ``Conformance\Expressions\SyntacticSugar (E_Slices01.fs)`` () = singleNegTest (testConfig "conformance/expressions/syntacticsugar") "E_Slices01" - let [] ``Conformance\Expressions\Type-relatedExpressions (E_RigidTypeAnnotation03.fsx)`` () = singleNegTest (testConfig "conformance/expressions/type-relatedexpressions") "E_RigidTypeAnnotation03" - let [] ``Conformance\Inference (E_OneTypeVariable03.fs)`` () = singleNegTest (testConfig "conformance/inference") "E_OneTypeVariable03" - let [] ``Conformance\Inference (E_OneTypeVariable03rec.fs)`` () = singleNegTest (testConfig "conformance/inference") "E_OneTypeVariable03rec" - let [] ``Conformance\Inference (E_TwoDifferentTypeVariablesGen00.fs)`` () = singleNegTest (testConfig "conformance/inference") "E_TwoDifferentTypeVariablesGen00" - let [] ``Conformance\Inference (E_TwoDifferentTypeVariables01.fs)`` () = singleNegTest (testConfig "conformance/inference") "E_TwoDifferentTypeVariables01" - let [] ``Conformance\Inference (E_TwoDifferentTypeVariables01rec.fs)`` () = singleNegTest (testConfig "conformance/inference") "E_TwoDifferentTypeVariables01rec" - let [] ``Conformance\Inference (E_TwoDifferentTypeVariablesGen00rec.fs)`` () = singleNegTest (testConfig "conformance/inference") "E_TwoDifferentTypeVariablesGen00rec" - let [] ``Conformance\Inference (E_TwoEqualTypeVariables02.fs)`` () = singleNegTest (testConfig "conformance/inference") "E_TwoEqualTypeVariables02" - let [] ``Conformance\Inference (E_TwoEqualYypeVariables02rec.fs)`` () = singleNegTest (testConfig "conformance/inference") "E_TwoEqualYypeVariables02rec" - let [] ``Conformance\Inference (E_LeftToRightOverloadResolution01.fs)`` () = singleNegTest (testConfig "conformance/inference") "E_LeftToRightOverloadResolution01" - let [] ``Conformance\WellFormedness (E_Clashing_Values_in_AbstractClass01.fs)`` () = singleNegTest (testConfig "conformance/wellformedness") "E_Clashing_Values_in_AbstractClass01" - let [] ``Conformance\WellFormedness (E_Clashing_Values_in_AbstractClass03.fs)`` () = singleNegTest (testConfig "conformance/wellformedness") "E_Clashing_Values_in_AbstractClass03" - let [] ``Conformance\WellFormedness (E_Clashing_Values_in_AbstractClass04.fs)`` () = singleNegTest (testConfig "conformance/wellformedness") "E_Clashing_Values_in_AbstractClass04" + module ``fsharpqa migrated tests`` = + let [] ``Conformance\Expressions\SyntacticSugar (E_Slices01.fs)`` () = singleNegTest (testConfig' "conformance/expressions/syntacticsugar") "E_Slices01" + let [] ``Conformance\Expressions\Type-relatedExpressions (E_RigidTypeAnnotation03.fsx)`` () = singleNegTest (testConfig' "conformance/expressions/type-relatedexpressions") "E_RigidTypeAnnotation03" + let [] ``Conformance\Inference (E_OneTypeVariable03.fs)`` () = singleNegTest (testConfig' "conformance/inference") "E_OneTypeVariable03" + let [] ``Conformance\Inference (E_OneTypeVariable03rec.fs)`` () = singleNegTest (testConfig' "conformance/inference") "E_OneTypeVariable03rec" + let [] ``Conformance\Inference (E_TwoDifferentTypeVariablesGen00.fs)`` () = singleNegTest (testConfig' "conformance/inference") "E_TwoDifferentTypeVariablesGen00" + let [] ``Conformance\Inference (E_TwoDifferentTypeVariables01.fs)`` () = singleNegTest (testConfig' "conformance/inference") "E_TwoDifferentTypeVariables01" + let [] ``Conformance\Inference (E_TwoDifferentTypeVariables01rec.fs)`` () = singleNegTest (testConfig' "conformance/inference") "E_TwoDifferentTypeVariables01rec" + let [] ``Conformance\Inference (E_TwoDifferentTypeVariablesGen00rec.fs)`` () = singleNegTest (testConfig' "conformance/inference") "E_TwoDifferentTypeVariablesGen00rec" + let [] ``Conformance\Inference (E_TwoEqualTypeVariables02.fs)`` () = singleNegTest (testConfig' "conformance/inference") "E_TwoEqualTypeVariables02" + let [] ``Conformance\Inference (E_TwoEqualYypeVariables02rec.fs)`` () = singleNegTest (testConfig' "conformance/inference") "E_TwoEqualYypeVariables02rec" + let [] ``Conformance\Inference (E_LeftToRightOverloadResolution01.fs)`` () = singleNegTest (testConfig' "conformance/inference") "E_LeftToRightOverloadResolution01" + let [] ``Conformance\WellFormedness (E_Clashing_Values_in_AbstractClass01.fs)`` () = singleNegTest (testConfig' "conformance/wellformedness") "E_Clashing_Values_in_AbstractClass01" + let [] ``Conformance\WellFormedness (E_Clashing_Values_in_AbstractClass03.fs)`` () = singleNegTest (testConfig' "conformance/wellformedness") "E_Clashing_Values_in_AbstractClass03" + let [] ``Conformance\WellFormedness (E_Clashing_Values_in_AbstractClass04.fs)`` () = singleNegTest (testConfig' "conformance/wellformedness") "E_Clashing_Values_in_AbstractClass04" // note: this test still exist in fsharpqa to assert the compiler doesn't crash // the part of the code generating a flaky error due to https://github.com/dotnet/fsharp/issues/6725 // is elided here to focus on overload resolution error messages - let [] ``Conformance\LexicalAnalysis\SymbolicOperators (E_LessThanDotOpenParen001.fs)`` () = singleNegTest (testConfig "conformance/lexicalanalysis") "E_LessThanDotOpenParen001" - + let [] ``Conformance\LexicalAnalysis\SymbolicOperators (E_LessThanDotOpenParen001.fs)`` () = singleNegTest (testConfig' "conformance/lexicalanalysis") "E_LessThanDotOpenParen001" + module ``error messages using BCL``= - let [] ``neg_System.Convert.ToString.OverloadList``() = singleNegTest (testConfig "typecheck/overloads") "neg_System.Convert.ToString.OverloadList" - let [] ``neg_System.Threading.Tasks.Task.Run.OverloadList``() = singleNegTest (testConfig "typecheck/overloads") "neg_System.Threading.Tasks.Task.Run.OverloadList" - let [] ``neg_System.Drawing.Graphics.DrawRectangleOverloadList.fsx``() = singleNegTest (testConfig "typecheck/overloads") "neg_System.Drawing.Graphics.DrawRectangleOverloadList" + let [] ``neg_System.Convert.ToString.OverloadList``() = singleNegTest (testConfig' "typecheck/overloads") "neg_System.Convert.ToString.OverloadList" + let [] ``neg_System.Threading.Tasks.Task.Run.OverloadList``() = singleNegTest (testConfig' "typecheck/overloads") "neg_System.Threading.Tasks.Task.Run.OverloadList" + let [] ``neg_System.Drawing.Graphics.DrawRectangleOverloadList.fsx``() = singleNegTest (testConfig' "typecheck/overloads") "neg_System.Drawing.Graphics.DrawRectangleOverloadList" module ``ad hoc code overload error messages``= - let [] ``neg_many_many_overloads`` () = singleNegTest (testConfig "typecheck/overloads") "neg_many_many_overloads" - let [] ``neg_interface_generics`` () = singleNegTest (testConfig "typecheck/overloads") "neg_interface_generics" - let [] ``neg_known_return_type_and_known_type_arguments`` () = singleNegTest (testConfig "typecheck/overloads") "neg_known_return_type_and_known_type_arguments" - let [] ``neg_generic_known_argument_types`` () = singleNegTest (testConfig "typecheck/overloads") "neg_generic_known_argument_types" - let [] ``neg_tupled_arguments`` () = singleNegTest (testConfig "typecheck/overloads") "neg_tupled_arguments" + let [] ``neg_many_many_overloads`` () = singleNegTest (testConfig' "typecheck/overloads") "neg_many_many_overloads" + let [] ``neg_interface_generics`` () = singleNegTest (testConfig' "typecheck/overloads") "neg_interface_generics" + let [] ``neg_known_return_type_and_known_type_arguments`` () = singleNegTest (testConfig' "typecheck/overloads") "neg_known_return_type_and_known_type_arguments" + let [] ``neg_generic_known_argument_types`` () = singleNegTest (testConfig' "typecheck/overloads") "neg_generic_known_argument_types" + let [] ``neg_tupled_arguments`` () = singleNegTest (testConfig' "typecheck/overloads") "neg_tupled_arguments" #endif \ No newline at end of file