@@ -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