@@ -14,11 +14,18 @@ open FSharp.Test.ScriptHelpers
1414module Configuration =
1515 let supportedNames = set [ " testlib.fsi" ; " testlib.fs" ; " test.mli" ; " test.ml" ; " test.fsi" ; " test.fs" ; " test2.fsi" ; " test2.fs" ; " test.fsx" ; " test2.fsx" ]
1616
17+ [<RequireQualifiedAccess>]
18+ type ScriptSessionIsolation = Shared | Isolated
19+
1720module ScriptRunner =
1821 open Internal.Utilities .Library
1922
20- let private createEngine ( args , version ) =
21- getSessionForEval args version
23+ let private createEngine ( args , version ) sessionIsolation =
24+ match sessionIsolation with
25+ | ScriptSessionIsolation.Isolated ->
26+ new FSharpScript( args, true , version)
27+ | ScriptSessionIsolation.Shared ->
28+ getSessionForEval args version
2229
2330 let defaultDefines =
2431 [
@@ -27,12 +34,12 @@ module ScriptRunner =
2734#endif
2835 ]
2936
30- let runScriptFile version ( cu : CompilationUnit ) =
37+ let runScriptFile version sessionIsolation ( cu : CompilationUnit ) =
3138 let cu = cu |> withDefines defaultDefines
3239 match cu with
3340 | FS fsSource ->
3441 use capture = new TestConsole.ExecutionCapture()
35- let engine = createEngine ( fsSource.Options |> Array.ofList, version)
42+ let engine = createEngine ( fsSource.Options |> Array.ofList, version) sessionIsolation
3643 let res = evalScriptFromDiskInSharedSession engine cu
3744 match res with
3845 | CompilationResult.Failure _ -> res
@@ -88,7 +95,7 @@ module TestFrameworkAdapter =
8895 | LangVersion.SupportsMl -> " 5.0" , " --mlcompatibility" :: bonusArgs
8996
9097
91- let singleTestBuildAndRunAuxVersion ( folder : string ) bonusArgs mode langVersion =
98+ let singleTestBuildAndRunAuxVersion ( folder : string ) bonusArgs mode langVersion sessionIsolation =
9299 let absFolder = Path.Combine( baseFolder, folder)
93100 let supportedNames , files =
94101 match mode with
@@ -137,17 +144,17 @@ module TestFrameworkAdapter =
137144 cu
138145 |> withDebug
139146 |> withNoOptimize
140- |> ScriptRunner.runScriptFile langVersion
147+ |> ScriptRunner.runScriptFile langVersion sessionIsolation
141148 |> shouldSucceed
142149 | FSC_ OPTIMIZED ->
143150 cu
144151 |> withOptimize
145152 |> withNoDebug
146- |> ScriptRunner.runScriptFile langVersion
153+ |> ScriptRunner.runScriptFile langVersion sessionIsolation
147154 |> shouldSucceed
148155 | FSI ->
149156 cu
150- |> ScriptRunner.runScriptFile langVersion
157+ |> ScriptRunner.runScriptFile langVersion sessionIsolation
151158 |> shouldSucceed
152159 | COMPILED_ EXE_ APP ->
153160 cu
@@ -161,7 +168,8 @@ module TestFrameworkAdapter =
161168
162169 let singleTestBuildAndRunAux folder bonusArgs mode = singleTestBuildAndRunAuxVersion folder bonusArgs mode LangVersion.Latest
163170 let singleTestBuildAndRunVersion folder mode version = singleTestBuildAndRunAuxVersion folder [] mode version
164- let singleTestBuildAndRun folder mode = singleTestBuildAndRunVersion folder mode LangVersion.Latest
171+ let singleTestBuildAndRun folder mode = singleTestBuildAndRunVersion folder mode LangVersion.Latest ScriptSessionIsolation.Shared
172+ let singleTestBuildAndRunIsolated folder mode = singleTestBuildAndRunVersion folder mode LangVersion.Latest ScriptSessionIsolation.Isolated
165173
166174 let singleVersionedNegTestAux folder bonusArgs version testName =
167175 singleTestBuildAndRunAuxVersion folder bonusArgs ( NEG_ TEST_ BUILD testName) version
0 commit comments