Skip to content

Commit c228ace

Browse files
authored
Run more tests in temporary directory (dotnet#17683)
* run tests in temp dirs * rename * update comment * diff * use single temp dir for compile * unskip sdktest, naming * refactor * parametrize msbuild in SDKTests * nicer
1 parent b494d1e commit c228ace

19 files changed

+289
-254
lines changed

Diff for: tests/FSharp.Compiler.ComponentTests/Miscellaneous/XmlDoc.fs

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ let xmlFileContents signature = $"""<?xml version="1.0" encoding="utf-8"?>
3030
[<InlineData("P:Microsoft.FSharp.Collections.FSharpList`1.Length")>]
3131
[<InlineData("P:Microsoft.FSharp.Collections.FSharpList`1.Length'")>]
3232
let ``Can extract XML docs from a file for a signature`` signature =
33-
let xmlFileName = tryCreateTemporaryFileName () + ".xml"
33+
let xmlFileName = getTemporaryFileName () + ".xml"
3434

3535
try
3636
File.WriteAllText(xmlFileName, xmlFileContents signature)

Diff for: tests/FSharp.Compiler.Service.Tests/CSharpProjectAnalysis.fs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ open TestFramework
1212
let internal getProjectReferences (content: string, dllFiles, libDirs, otherFlags) =
1313
let otherFlags = defaultArg otherFlags []
1414
let libDirs = defaultArg libDirs []
15-
let base1 = tryCreateTemporaryFileName ()
15+
let base1 = getTemporaryFileName ()
1616
let dllName = Path.ChangeExtension(base1, ".dll")
1717
let fileName1 = Path.ChangeExtension(base1, ".fs")
1818
let projFileName = Path.ChangeExtension(base1, ".fsproj")

Diff for: tests/FSharp.Compiler.Service.Tests/Common.fs

+4-4
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ type Async with
3434
let checker = FSharpChecker.Create(useTransparentCompiler=FSharp.Compiler.CompilerConfig.FSharpExperimentalFeaturesEnabledAutomatically)
3535

3636
type TempFile(ext, contents: string) =
37-
let tmpFile = Path.ChangeExtension(tryCreateTemporaryFileName (), ext)
37+
let tmpFile = Path.ChangeExtension(getTemporaryFileName (), ext)
3838
do FileSystem.OpenFileForWriteShim(tmpFile).Write(contents)
3939

4040
interface IDisposable with
@@ -130,8 +130,8 @@ let mkProjectCommandLineArgsForScript (dllName, fileNames) =
130130
#endif
131131

132132
let mkTestFileAndOptions source additionalArgs =
133-
let fileName = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
134-
let project = tryCreateTemporaryFileName ()
133+
let fileName = Path.ChangeExtension(getTemporaryFileName (), ".fs")
134+
let project = getTemporaryFileName ()
135135
let dllName = Path.ChangeExtension(project, ".dll")
136136
let projFileName = Path.ChangeExtension(project, ".fsproj")
137137
let fileSource1 = "module M"
@@ -481,7 +481,7 @@ module TempDirUtils =
481481
/// Returns the file name part of a temp file name created with tryCreateTemporaryFileName ()
482482
/// and an added process id and thread id to ensure uniqueness between threads.
483483
let getTempFileName() =
484-
let tempFileName = tryCreateTemporaryFileName ()
484+
let tempFileName = getTemporaryFileName ()
485485
try
486486
let tempFile, tempExt = Path.GetFileNameWithoutExtension tempFileName, Path.GetExtension tempFileName
487487
let procId, threadId = Process.GetCurrentProcess().Id, Thread.CurrentThread.ManagedThreadId

Diff for: tests/FSharp.Compiler.Service.Tests/ExprTests.fs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3155,7 +3155,7 @@ let ``Test expressions of declarations stress big expressions`` useTransparentCo
31553155
printDeclarations None (List.ofSeq file1.Declarations) |> Seq.toList |> ignore
31563156

31573157
#if !NETFRAMEWORK && DEBUG
3158-
[<Fact(Skip = "Test is known to fail in DEBUG when not using NetFramework. Use RELEASE configuration or NetFramework to run it.")>]
3158+
[<Theory(Skip = "Test is known to fail in DEBUG when not using NetFramework. Use RELEASE configuration or NetFramework to run it.")>]
31593159
#else
31603160
[<Theory>]
31613161
[<InlineData(false)>]

Diff for: tests/FSharp.Compiler.Service.Tests/MultiProjectAnalysisTests.fs

+24-24
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ let internal tups (m:range) = (m.StartLine, m.StartColumn), (m.EndLine, m.EndCol
2323

2424
module internal Project1A =
2525

26-
let fileName1 = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
27-
let baseName = tryCreateTemporaryFileName ()
26+
let fileName1 = Path.ChangeExtension(getTemporaryFileName (), ".fs")
27+
let baseName = getTemporaryFileName ()
2828
let dllName = Path.ChangeExtension(baseName, ".dll")
2929
let projFileName = Path.ChangeExtension(baseName, ".fsproj")
3030
let fileSource1 = """
@@ -69,8 +69,8 @@ type U =
6969
//-----------------------------------------------------------------------------------------
7070
module internal Project1B =
7171

72-
let fileName1 = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
73-
let baseName = tryCreateTemporaryFileName ()
72+
let fileName1 = Path.ChangeExtension(getTemporaryFileName (), ".fs")
73+
let baseName = getTemporaryFileName ()
7474
let dllName = Path.ChangeExtension(baseName, ".dll")
7575
let projFileName = Path.ChangeExtension(baseName, ".fsproj")
7676
let fileSource1 = """
@@ -96,8 +96,8 @@ let x =
9696
// A project referencing two sub-projects
9797
module internal MultiProject1 =
9898

99-
let fileName1 = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
100-
let baseName = tryCreateTemporaryFileName ()
99+
let fileName1 = Path.ChangeExtension(getTemporaryFileName (), ".fs")
100+
let baseName = getTemporaryFileName ()
101101
let dllName = Path.ChangeExtension(baseName, ".dll")
102102
let projFileName = Path.ChangeExtension(baseName, ".fsproj")
103103
let fileSource1 = """
@@ -271,7 +271,7 @@ module internal ManyProjectsStressTest =
271271
type Project = { ModuleName: string; FileName: string; Options: FSharpProjectOptions; DllName: string }
272272
let projects =
273273
[ for i in 1 .. numProjectsForStressTest do
274-
let fileName1 = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
274+
let fileName1 = Path.ChangeExtension(getTemporaryFileName (), ".fs")
275275
let moduleName = "Project" + string i
276276
let fileSource1 = "module " + moduleName + """
277277
@@ -287,7 +287,7 @@ let p = C.Print()
287287
288288
"""
289289
FileSystem.OpenFileForWriteShim(fileName1).Write(fileSource1)
290-
let baseName = tryCreateTemporaryFileName ()
290+
let baseName = getTemporaryFileName ()
291291
let dllName = Path.ChangeExtension(baseName, ".dll")
292292
let projFileName = Path.ChangeExtension(baseName, ".fsproj")
293293
let fileNames = [|fileName1|]
@@ -296,8 +296,8 @@ let p = C.Print()
296296
yield { ModuleName = moduleName; FileName=fileName1; Options = options; DllName=dllName } ]
297297

298298
let jointProject =
299-
let fileName = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
300-
let dllBase = tryCreateTemporaryFileName ()
299+
let fileName = Path.ChangeExtension(getTemporaryFileName (), ".fs")
300+
let dllBase = getTemporaryFileName ()
301301
let dllName = Path.ChangeExtension(dllBase, ".dll")
302302
let projFileName = Path.ChangeExtension(dllBase, ".fsproj")
303303
let fileSource =
@@ -396,8 +396,8 @@ let ``Test ManyProjectsStressTest all symbols`` useTransparentCompiler =
396396

397397
module internal MultiProjectDirty1 =
398398

399-
let fileName1 = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
400-
let baseName = tryCreateTemporaryFileName()
399+
let fileName1 = Path.ChangeExtension(getTemporaryFileName (), ".fs")
400+
let baseName = getTemporaryFileName()
401401
let dllName = Path.ChangeExtension(baseName, ".dll")
402402
let projFileName = Path.ChangeExtension(baseName, ".fsproj")
403403
let content = """module Project1
@@ -418,8 +418,8 @@ let x = "F#"
418418
module internal MultiProjectDirty2 =
419419

420420

421-
let fileName1 = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
422-
let baseName = tryCreateTemporaryFileName ()
421+
let fileName1 = Path.ChangeExtension(getTemporaryFileName (), ".fs")
422+
let baseName = getTemporaryFileName ()
423423
let dllName = Path.ChangeExtension(baseName, ".dll")
424424
let projFileName = Path.ChangeExtension(baseName, ".fsproj")
425425

@@ -609,10 +609,10 @@ let ``Test multi project symbols should pick up changes in dependent projects``
609609

610610
module internal Project2A =
611611

612-
let fileName1 = Path.ChangeExtension(tryCreateTemporaryFileName(), ".fs")
613-
let baseName1 = tryCreateTemporaryFileName ()
614-
let baseName2 = tryCreateTemporaryFileName ()
615-
let baseName3 = tryCreateTemporaryFileName () // this one doesn't get InternalsVisibleTo rights
612+
let fileName1 = Path.ChangeExtension(getTemporaryFileName(), ".fs")
613+
let baseName1 = getTemporaryFileName ()
614+
let baseName2 = getTemporaryFileName ()
615+
let baseName3 = getTemporaryFileName () // this one doesn't get InternalsVisibleTo rights
616616
let dllShortName = Path.GetFileNameWithoutExtension(baseName2)
617617
let dllName = Path.ChangeExtension(baseName1, ".dll")
618618
let projFileName = Path.ChangeExtension(baseName1, ".fsproj")
@@ -638,7 +638,7 @@ type C() =
638638
// A project referencing Project2A
639639
module internal Project2B =
640640

641-
let fileName1 = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
641+
let fileName1 = Path.ChangeExtension(getTemporaryFileName (), ".fs")
642642
let dllName = Path.ChangeExtension(Project2A.baseName2, ".dll")
643643
let projFileName = Path.ChangeExtension(Project2A.baseName2, ".fsproj")
644644
let fileSource1 = """
@@ -662,7 +662,7 @@ let v = Project2A.C().InternalMember // access an internal symbol
662662
// A project referencing Project2A but without access to the internals of A
663663
module internal Project2C =
664664

665-
let fileName1 = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
665+
let fileName1 = Path.ChangeExtension(getTemporaryFileName (), ".fs")
666666
let dllName = Path.ChangeExtension(Project2A.baseName3, ".dll")
667667
let projFileName = Path.ChangeExtension(Project2A.baseName3, ".fsproj")
668668
let fileSource1 = """
@@ -733,8 +733,8 @@ let ``Test multi project 2 all symbols`` useTransparentCompiler =
733733

734734
module internal Project3A =
735735

736-
let fileName1 = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
737-
let baseName = tryCreateTemporaryFileName ()
736+
let fileName1 = Path.ChangeExtension(getTemporaryFileName (), ".fs")
737+
let baseName = getTemporaryFileName ()
738738
let dllName = Path.ChangeExtension(baseName, ".dll")
739739
let projFileName = Path.ChangeExtension(baseName, ".fsproj")
740740
let fileSource1 = """
@@ -756,8 +756,8 @@ let (|DivisibleBy|_|) by n =
756756
// A project referencing a sub-project
757757
module internal MultiProject3 =
758758

759-
let fileName1 = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
760-
let baseName = tryCreateTemporaryFileName ()
759+
let fileName1 = Path.ChangeExtension(getTemporaryFileName (), ".fs")
760+
let baseName = getTemporaryFileName ()
761761
let dllName = Path.ChangeExtension(baseName, ".dll")
762762
let projFileName = Path.ChangeExtension(baseName, ".fsproj")
763763
let fileSource1 = """

Diff for: tests/FSharp.Compiler.Service.Tests/PerfTests.fs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ let internal checker = FSharpChecker.Create()
1414

1515
module internal Project1 =
1616

17-
let fileNamesI = [ for i in 1 .. 10 -> (i, Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")) ]
18-
let base2 = tryCreateTemporaryFileName ()
17+
let fileNamesI = [ for i in 1 .. 10 -> (i, Path.ChangeExtension(getTemporaryFileName (), ".fs")) ]
18+
let base2 = getTemporaryFileName ()
1919
let dllName = Path.ChangeExtension(base2, ".dll")
2020
let projFileName = Path.ChangeExtension(base2, ".fsproj")
2121
let fileSources = [ for i,f in fileNamesI -> (f, "module M" + string i) ]

0 commit comments

Comments
 (0)