@@ -13,20 +13,9 @@ public GivenThatWeWantToVerifyNuGetReferenceCompat(ITestOutputHelper log) : base
13
13
14
14
[ Theory ]
15
15
[ InlineData ( "net45" , "Full" , "netstandard1.0 netstandard1.1 net45" , true , true ) ]
16
- [ InlineData ( "net451" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2 net45 net451" , true , true ) ]
17
- [ InlineData ( "net46" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 net45 net451 net46" , true , true ) ]
18
- [ InlineData ( "net461" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netstandard2.0 net45 net451 net46 net461" , true , true ) ]
19
16
[ InlineData ( "net462" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netstandard2.0 net45 net451 net46 net461 net462" , true , true ) ]
20
- [ InlineData ( "netstandard1.0" , "Full" , "netstandard1.0" , true , true ) ]
21
- [ InlineData ( "netstandard1.1" , "Full" , "netstandard1.0 netstandard1.1" , true , true ) ]
22
- [ InlineData ( "netstandard1.2" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2" , true , true ) ]
23
- [ InlineData ( "netstandard1.3" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3" , true , true ) ]
24
- [ InlineData ( "netstandard1.4" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4" , true , true ) ]
25
- [ InlineData ( "netstandard1.5" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5" , true , true ) ]
26
17
[ InlineData ( "netstandard1.6" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6" , true , true ) ]
27
18
[ InlineData ( "netstandard2.0" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netstandard2.0" , true , true ) ]
28
- [ InlineData ( "netcoreapp1.0" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netcoreapp1.0" , true , true ) ]
29
- [ InlineData ( "netcoreapp1.1" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netcoreapp1.0 netcoreapp1.1" , true , true ) ]
30
19
[ InlineData ( "netcoreapp2.0" , "Full" , "netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netstandard2.0 netcoreapp1.0 netcoreapp1.1 netcoreapp2.0" , true , true ) ]
31
20
32
21
[ InlineData ( "netstandard2.0" , "OptIn" , "net45 net451 net46 net461" , true , true ) ]
@@ -46,31 +35,53 @@ public void Nuget_reference_compat(string referencerTarget, string testDescripti
46
35
return ;
47
36
}
48
37
49
- foreach ( string dependencyTarget in rawDependencyTargets . Split ( ',' , ';' , ' ' ) . ToList ( ) )
50
- {
51
- TestProject dependencyProject = GetTestProject ( ConstantStringValues . DependencyDirectoryNamePrefix + dependencyTarget . Replace ( '.' , '_' ) , dependencyTarget , true ) ;
52
- TestPackageReference dependencyPackageReference = new (
53
- dependencyProject . Name ,
54
- "1.0.0" ,
55
- ConstantStringValues . ConstructNuGetPackageReferencePath ( dependencyProject , identifier : referencerTarget + testDescription + rawDependencyTargets ) ) ;
38
+ var dependencyPackageReferences = new List < TestPackageReference > ( ) ;
56
39
57
- // Skip creating the NuGet package if not running on Windows; or if the NuGet package already exists
58
- // https://github.com/dotnet/sdk/issues/335
59
- if ( RuntimeInformation . IsOSPlatform ( OSPlatform . Windows ) || dependencyProject . BuildsOnNonWindows )
40
+ // Process all dependencies in parallel
41
+ Parallel . ForEach (
42
+ rawDependencyTargets . Split ( ',' , ';' , ' ' ) . Where ( s => ! string . IsNullOrWhiteSpace ( s ) ) ,
43
+ new ParallelOptions { MaxDegreeOfParallelism = Environment . ProcessorCount } ,
44
+ dependencyTarget =>
60
45
{
61
- if ( ! dependencyPackageReference . NuGetPackageExists ( ) )
46
+ // Create the dependency project and package
47
+ TestProject dependencyProject = GetTestProject (
48
+ ConstantStringValues . DependencyDirectoryNamePrefix + dependencyTarget . Replace ( '.' , '_' ) ,
49
+ dependencyTarget ,
50
+ true ) ;
51
+
52
+ TestPackageReference dependencyPackageReference = new (
53
+ dependencyProject . Name ,
54
+ "1.0.0" ,
55
+ ConstantStringValues . ConstructNuGetPackageReferencePath ( dependencyProject , identifier : referencerTarget + testDescription + rawDependencyTargets ) ) ;
56
+
57
+ // Create package if it doesn't exist
58
+ if ( ! dependencyPackageReference . NuGetPackageExists ( ) &&
59
+ ( RuntimeInformation . IsOSPlatform ( OSPlatform . Windows ) || dependencyProject . BuildsOnNonWindows ) )
62
60
{
63
- // Create the NuGet packages
64
- var dependencyTestAsset = _testAssetsManager . CreateTestProject ( dependencyProject , identifier : referencerTarget + testDescription + rawDependencyTargets ) ;
65
- var dependencyRestoreCommand = dependencyTestAsset . GetRestoreCommand ( Log , relativePath : dependencyProject . Name ) . Execute ( ) . Should ( ) . Pass ( ) ;
66
- var dependencyProjectDirectory = Path . Combine ( dependencyTestAsset . TestRoot , dependencyProject . Name ) ;
61
+ if ( ! dependencyPackageReference . NuGetPackageExists ( ) )
62
+ {
63
+ var dependencyTestAsset = _testAssetsManager . CreateTestProject (
64
+ dependencyProject ,
65
+ identifier : referencerTarget + testDescription + rawDependencyTargets ) ;
66
+
67
+ dependencyTestAsset . GetRestoreCommand ( Log , relativePath : dependencyProject . Name )
68
+ . Execute ( ) . Should ( ) . Pass ( ) ;
69
+
70
+ var dependencyProjectDirectory = Path . Combine (
71
+ dependencyTestAsset . TestRoot ,
72
+ dependencyProject . Name ) ;
73
+
74
+ new PackCommand ( Log , dependencyProjectDirectory )
75
+ . Execute ( ) . Should ( ) . Pass ( ) ;
76
+ }
67
77
68
- var dependencyPackCommand = new PackCommand ( Log , dependencyProjectDirectory ) ;
69
- var dependencyPackResult = dependencyPackCommand . Execute ( ) . Should ( ) . Pass ( ) ;
70
78
}
79
+ } ) ;
71
80
72
- referencerProject . PackageReferences . Add ( dependencyPackageReference ) ;
73
- }
81
+ // Add all references to the referencer project
82
+ foreach ( var dependencyPackageReference in dependencyPackageReferences )
83
+ {
84
+ referencerProject . PackageReferences . Add ( dependencyPackageReference ) ;
74
85
}
75
86
76
87
// Skip running tests if no NuGet packages are referenced
0 commit comments