public void VerifyDependsOnWarningFromManifest() { string testDirectoryRoot = Path.Combine(Path.GetTempPath(), "VerifyDependsOnWarningFromManifest"); string testDirectory = Path.Combine(testDirectoryRoot, "GoodTestSDK\\2.0\\"); string sdkManifestContents = @"<FileList Identity = 'GoodTestSDK, Version=2.0' DisplayName = 'GoodTestSDK 2.0' FrameworkIdentity = 'ShouldNotPickup' FrameworkIdentity-retail = 'ShouldNotPickup' FrameworkIdentity-retail-Neutral = 'GoodTestSDKIdentity' APPX = 'ShouldNotPickup' APPX-Retail = 'ShouldNotPickup' APPX-Retail-Neutral = 'RetailX86Location' SDKType='Debug' DependsOn='Foo, Version=1.0;bar, Version=2.0;foooooggg;;;;' CopyRedistToSubDirectory='GoodTestSDK\Redist'> <File WinMD = 'GoodTestSDK.Sprint, Version=8.0' /> <File AssemblyName = 'Assembly1, Version=8.0' /> <DependsOn Identity='Windows SDK, Version 8.0'/> </FileList>"; try { string sdkManifestFile = Path.Combine(testDirectory, "SdkManifest.xml"); if (Directory.Exists(testDirectoryRoot)) { FileUtilities.DeleteDirectoryNoThrow(testDirectoryRoot, true); } Directory.CreateDirectory(testDirectory); File.WriteAllText(sdkManifestFile, sdkManifestContents); // Create the engine. MockEngine engine = new MockEngine(); ResolveSDKReference t = new ResolveSDKReference(); ITaskItem item = new TaskItem("GoodTestSDK, Version=2.0"); t.SDKReferences = new ITaskItem[] { item }; ITaskItem installLocation = new TaskItem(testDirectory); installLocation.SetMetadata("SDKName", "GoodTestSDK, Version=2.0"); t.InstalledSDKs = new ITaskItem[] { installLocation }; t.BuildEngine = engine; bool succeeded = t.Execute(); Assert.True(succeeded); string warning = ResourceUtilities.FormatResourceString("ResolveSDKReference.SDKMissingDependency", "GoodTestSDK, Version=2.0", "\"Foo, Version=1.0\", \"bar, Version=2.0\""); engine.AssertLogContains(warning); engine.AssertLogDoesntContainMessageFromResource(_resourceDelegate, "ResolveSDKReference.NoFrameworkIdentitiesFound"); Assert.True(t.ResolvedSDKReferences[0].ItemSpec.Equals(testDirectory, StringComparison.OrdinalIgnoreCase)); } finally { if (Directory.Exists(testDirectoryRoot)) { FileUtilities.DeleteDirectoryNoThrow(testDirectoryRoot, true); } } }
private void SupportsMultipleVersionsVerifyManifestReading(string manifestEntry) { string testDirectoryRoot = Path.Combine(Path.GetTempPath(), "SupportsMultipleVersionsVerifyManifestReading"); string testDirectory = Path.Combine(testDirectoryRoot, "GoodTestSDK\\2.0\\"); string sdkManifestContents = @"<FileList Identity = 'GoodTestSDK, Version=2.0' DisplayName = 'GoodTestSDK 2.0' FrameworkIdentity-retail-x86 = 'GoodTestSDKIdentity' APPX-Retail-x86 = 'RetailX86Location' APPX-Retail-x64 = 'RetailX64Location' SDKType='External' SupportedArchitectures = 'X86' ProductFamilyName = 'MyFamily' SupportsMultipleVersions='" + manifestEntry + @"' CopyRedistToSubDirectory='GoodTestSDK\Redist'> <File WinMD = 'GoodTestSDK.Sprint, Version=8.0' /> <File AssemblyName = 'Assembly1, Version=8.0' /> <DependsOn Identity='Windows SDK, Version 8.0'/> </FileList>"; try { string sdkManifestFile = Path.Combine(testDirectory, "SdkManifest.xml"); if (Directory.Exists(testDirectoryRoot)) { FileUtilities.DeleteDirectoryNoThrow(testDirectoryRoot, true); } Directory.CreateDirectory(testDirectory); File.WriteAllText(sdkManifestFile, sdkManifestContents); // Create the engine. MockEngine engine = new MockEngine(); ResolveSDKReference t = new ResolveSDKReference(); ITaskItem item = new TaskItem("GoodTestSDK, Version=2.0"); t.SDKReferences = new ITaskItem[] { item }; t.TargetedSDKArchitecture = "x86"; t.TargetedSDKConfiguration = "Release"; ITaskItem installLocation = new TaskItem(testDirectory); installLocation.SetMetadata("SDKName", "GoodTestSDK, Version=2.0"); t.InstalledSDKs = new ITaskItem[] { installLocation }; t.BuildEngine = engine; bool succeeded = t.Execute(); Assert.True(succeeded); engine.AssertLogDoesntContainMessageFromResource(_resourceDelegate, "ResolveSDKReference.NoFrameworkIdentitiesFound"); Assert.True(t.ResolvedSDKReferences[0].ItemSpec.Equals(testDirectory, StringComparison.OrdinalIgnoreCase)); if (String.Equals(manifestEntry, "WoofWoof", StringComparison.OrdinalIgnoreCase)) { Assert.True(t.ResolvedSDKReferences[0].GetMetadata("SupportsMultipleVersions").Equals("Allow", StringComparison.OrdinalIgnoreCase)); } else { Assert.True(t.ResolvedSDKReferences[0].GetMetadata("SupportsMultipleVersions").Equals(manifestEntry, StringComparison.OrdinalIgnoreCase)); } } finally { if (Directory.Exists(testDirectoryRoot)) { FileUtilities.DeleteDirectoryNoThrow(testDirectoryRoot, true); } } }
public void MultipleSupportedArchitectureMatchesProject() { string testDirectoryRoot = Path.Combine(Path.GetTempPath(), "MultipleSupportedArchitectureMatchesProject"); string testDirectory = Path.Combine(testDirectoryRoot, "GoodTestSDK\\2.0\\"); string sdkManifestContents = @"<FileList Identity = 'GoodTestSDK, Version=2.0' DisplayName = 'GoodTestSDK 2.0' FrameworkIdentity-retail-Neutral = 'GoodTestSDKIdentity' APPX = 'ShouldNotPickup' APPX-Retail-Neutral = 'RetailNeutralLocation' SDKType='External' SupportedArchitectures = 'X86;Neutral;X64' CopyRedistToSubDirectory='GoodTestSDK\Redist'> <File WinMD = 'GoodTestSDK.Sprint, Version=8.0' /> <File AssemblyName = 'Assembly1, Version=8.0' /> <DependsOn Identity='Windows SDK, Version 8.0'/> </FileList>"; try { string sdkManifestFile = Path.Combine(testDirectory, "SdkManifest.xml"); if (Directory.Exists(testDirectoryRoot)) { FileUtilities.DeleteDirectoryNoThrow(testDirectoryRoot, true); } Directory.CreateDirectory(testDirectory); File.WriteAllText(sdkManifestFile, sdkManifestContents); // Create the engine. MockEngine engine = new MockEngine(); ResolveSDKReference t = new ResolveSDKReference(); ITaskItem item = new TaskItem("GoodTestSDK, Version=2.0"); t.SDKReferences = new ITaskItem[] { item }; t.TargetedSDKArchitecture = "AnyCPU"; t.TargetedSDKConfiguration = "Release"; ITaskItem installLocation = new TaskItem(testDirectory); installLocation.SetMetadata("SDKName", "GoodTestSDK, Version=2.0"); t.InstalledSDKs = new ITaskItem[] { installLocation }; t.BuildEngine = engine; bool succeeded = t.Execute(); Assert.True(succeeded); engine.AssertLogDoesntContainMessageFromResource(_resourceDelegate, "ResolveSDKReference.NoFrameworkIdentitiesFound"); Assert.True(t.ResolvedSDKReferences[0].ItemSpec.Equals(testDirectory, StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("FrameworkIdentity").Equals("GoodTestSDKIdentity", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("AppXLocation").Equals("Neutral|RetailNeutralLocation", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("SDKType").Equals("External", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("CopyRedist").Equals("False", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("ExpandReferenceAssemblies").Equals("True", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("CopyLocalExpandedReferenceAssemblies").Equals("False", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("TargetedSDKConfiguration").Equals("Retail", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("TargetedSDKArchitecture").Equals("Neutral", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("OriginalItemSpec").Equals(item.ItemSpec, StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("CopyRedistToSubDirectory").Equals("GoodTestSDK\\Redist", StringComparison.OrdinalIgnoreCase)); } finally { if (Directory.Exists(testDirectoryRoot)) { FileUtilities.DeleteDirectoryNoThrow(testDirectoryRoot, true); } } }
public void OverrideManifestAttributes() { string testDirectoryRoot = Path.Combine(Path.GetTempPath(), "OverrideManifestAttributes"); string testDirectory = Path.Combine(testDirectoryRoot, "GoodTestSDK\\2.0\\"); string sdkManifestContents = @"<FileList Identity = 'GoodTestSDK, Version=2.0' DisplayName = 'GoodTestSDK 2.0' FrameworkIdentity = 'Manifest Identity' PlatformIdentity = 'Manifest platform Identity' APPX = 'Manifest Location' SDKType='External' SupportsMultipleVersions='Warning' MaxPlatformVersion = '8.0' MinOSVersion = '2.2.1' MaxOSVersionTested = '2.2.1' CopyRedistToSubDirectory = 'Manifest RedistSubDirectory' DependsOn ='Windows SDK, Version 8.0'> <File WinMD = 'GoodTestSDK.Sprint, Version=8.0' /> <File AssemblyName = 'Assembly1, Version=8.0' /> </FileList>"; try { string sdkManifestFile = Path.Combine(testDirectory, "SdkManifest.xml"); if (Directory.Exists(testDirectoryRoot)) { FileUtilities.DeleteDirectoryNoThrow(testDirectoryRoot, true); } Directory.CreateDirectory(testDirectory); File.WriteAllText(sdkManifestFile, sdkManifestContents); // Create the engine. MockEngine engine = new MockEngine(); ResolveSDKReference t = new ResolveSDKReference(); ITaskItem item = new TaskItem("GoodTestSDK, Version=2.0"); item.SetMetadata("FrameworkIdentity", "MetadataIdentity"); item.SetMetadata("PlatformIdentity", "PlatformIdentity"); item.SetMetadata("AppXLocation", "Metadata AppxLocation"); item.SetMetadata("SDKType", "External"); item.SetMetadata("SupportsMultipleVersions", "Error"); item.SetMetadata("DisplayName", "ManifestDisplayName"); item.SetMetadata("CopyRedist", "True"); item.SetMetadata("ExpandReferenceAssemblies", "True"); item.SetMetadata("CopyLocalExpandedReferenceAssemblies", "True"); item.SetMetadata("TargetedSDKConfiguration", "Custom"); item.SetMetadata("TargetedSDKArchitecture", "Any CPU"); item.SetMetadata("CopyRedistToSubDirectory", "MyRedistSubDirectory"); item.SetMetadata("MaxPlatformVersion", "9.0"); item.SetMetadata("MaxOSVersionTested", "3.3.3"); item.SetMetadata("MinOSVersion", "3.3.3"); t.SDKReferences = new ITaskItem[] { item }; ITaskItem installLocation = new TaskItem(testDirectory); installLocation.SetMetadata("SDKName", "GoodTestSDK, Version=2.0"); t.InstalledSDKs = new ITaskItem[] { installLocation }; t.BuildEngine = engine; bool succeeded = t.Execute(); Assert.True(succeeded); engine.AssertLogDoesntContainMessageFromResource(_resourceDelegate, "ResolveSDKReference.NoFrameworkIdentitiesFound"); Assert.True(t.ResolvedSDKReferences[0].ItemSpec.Equals(testDirectory, StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("FrameworkIdentity").Equals("MetadataIdentity", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("PlatformIdentity").Equals("PlatformIdentity", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("AppXLocation").Equals("Metadata AppxLocation", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("SDKType").Equals("External", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("SupportsMultipleVersions").Equals("Error", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("DisplayName").Equals("ManifestDisplayName", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("CopyRedist").Equals("True", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("ExpandReferenceAssemblies").Equals("True", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("CopyLocalExpandedReferenceAssemblies").Equals("True", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("TargetedSDKConfiguration").Equals("Custom", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("TargetedSDKArchitecture").Equals("Neutral", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("OriginalItemSpec").Equals(item.ItemSpec, StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("CopyRedistToSubDirectory").Equals("MyRedistSubDirectory", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("MaxPlatformVersion").Equals("9.0", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("MaxOSVersionTested").Equals("3.3.3", StringComparison.OrdinalIgnoreCase)); Assert.True(t.ResolvedSDKReferences[0].GetMetadata("MinOSVersion").Equals("3.3.3", StringComparison.OrdinalIgnoreCase)); } finally { if (Directory.Exists(testDirectoryRoot)) { FileUtilities.DeleteDirectoryNoThrow(testDirectoryRoot, true); } } }
public void TestMaxPlatformVersionWithTargetFrameworkVersion() { string testDirectoryRoot = Path.Combine(Path.GetTempPath(), "TestMaxPlatformVersionWithTargetFrameworkVersion"); string testDirectory = Path.Combine(testDirectoryRoot, "GoodTestSDK\\2.0\\"); string sdkManifestContents1 = @"<FileList Identity = 'GoodTestSDK, Version=2.0' DisplayName = 'GoodTestSDK' FrameworkIdentity = '' PlatformIdentity = 'Windows' APPX = '' SDKType='' CopyRedistToSubDirectory='' SupportedArchitectures='' ProductFamilyName='' SupportsMultipleVersions='' ArchitectureForRuntime = '' DependsOn = '' MaxPlatformVersion = '6.0' MinOSVersion = '' MaxOSVersionTested = '' MoreInfo='ESDK information' > <File WinMD = 'GoodTestSDK.Sprint, Version=8.0' /> <File AssemblyName = 'Assembly1, Version=8.0' /> <DependsOn Identity='Windows SDK, Version 8.0'/> </FileList>"; string sdkManifestContents2 = @"<FileList Identity = 'GoodTestSDK, Version=2.0' DisplayName = 'GoodTestSDK' FrameworkIdentity = 'Windows' PlatformIdentity = '' APPX = '' SDKType='' CopyRedistToSubDirectory='' SupportedArchitectures='' ProductFamilyName='' SupportsMultipleVersions='' ArchitectureForRuntime = '' DependsOn = '' MaxPlatformVersion = '8.0' MinOSVersion = '' MaxOSVersionTested = '' MoreInfo='ESDK information' > <File WinMD = 'GoodTestSDK.Sprint, Version=8.0' /> <File AssemblyName = 'Assembly1, Version=8.0' /> <DependsOn Identity='Windows SDK, Version 8.0'/> </FileList>"; try { string sdkManifestFile = Path.Combine(testDirectory, "SdkManifest.xml"); if (Directory.Exists(testDirectoryRoot)) { FileUtilities.DeleteDirectoryNoThrow(testDirectoryRoot, true); } Directory.CreateDirectory(testDirectory); ITaskItem item = new TaskItem("GoodTestSDK, Version=2.0"); ITaskItem installLocation = new TaskItem(testDirectory); installLocation.SetMetadata("SDKName", "GoodTestSDK, Version=2.0"); // In the test below the SDK MaxPlatformVersion is smaller than the TargetPlatformVersion - the build fails File.WriteAllText(sdkManifestFile, sdkManifestContents1); MockEngine engine1 = new MockEngine(); ResolveSDKReference t1 = new ResolveSDKReference(); t1.SDKReferences = new ITaskItem[] { item }; t1.InstalledSDKs = new ITaskItem[] { installLocation }; t1.TargetPlatformIdentifier = "Windows"; t1.ProjectName = "myproject.csproj"; t1.BuildEngine = engine1; bool succeeded1 = t1.Execute(); Assert.True(succeeded1); engine1.AssertLogContainsMessageFromResource(_resourceDelegate, "ResolveSDKReference.MaxPlatformVersionLessThanTargetPlatformVersion", "myproject.csproj", "GoodTestSDK", "2.0", "Windows", "6.0", "Windows", "7.0"); // In the test below the SDK MaxPlatformVersion is greater than the TargetPlatformVersion - the build succeeds File.WriteAllText(sdkManifestFile, sdkManifestContents2); MockEngine engine2 = new MockEngine(); ResolveSDKReference t2 = new ResolveSDKReference(); t2.SDKReferences = new ITaskItem[] { item }; t2.InstalledSDKs = new ITaskItem[] { installLocation }; t1.TargetPlatformIdentifier = "Windows"; t1.ProjectName = "myproject.csproj"; t2.BuildEngine = engine1; bool succeeded2 = t2.Execute(); Assert.True(succeeded2); engine2.AssertLogDoesntContainMessageFromResource(_resourceDelegate, "ResolveSDKReference.MaxPlatformVersionLessThanTargetPlatformVersion", "myproject.csproj", "GoodTestSDK", "2.0", "Windows", "6.0", "Windows", "7.0"); } finally { if (Directory.Exists(testDirectoryRoot)) { FileUtilities.DeleteDirectoryNoThrow(testDirectoryRoot, true); } } }
public void VerifyBuildWarningForESDKWithoutMaxPlatformVersionOnBlueOrAbove() { string testDirectoryRoot = Path.Combine(Path.GetTempPath(), "TestMaxPlatformVersionWithTargetFrameworkVersion"); string testDirectory = Path.Combine(testDirectoryRoot, "MyPlatform\\8.0\\ExtensionSDKs\\SDkWithManifest\\2.0\\"); // manifest does not contain MaxPlatformVersion string sdkManifestContents1 = @"<FileList Identity = 'GoodTestSDK, Version=2.0' DisplayName = 'GoodTestSDK' FrameworkIdentity = '' PlatformIdentity = 'windows' APPX = '' SDKType='' CopyRedistToSubDirectory='' SupportedArchitectures='' ProductFamilyName='' SupportsMultipleVersions='' ArchitectureForRuntime = '' DependsOn = '' MinOSVersion = '' MaxOSVersionTested = '' > <File WinMD = 'GoodTestSDK.Sprint, Version=8.0' /> <File AssemblyName = 'Assembly1, Version=8.0' /> <DependsOn Identity='Windows SDK, Version 8.0'/> </FileList>"; // manifest contains MaxPlatformVersion string sdkManifestContents2 = @"<FileList Identity = 'BadTestSDK, Version=1.0' DisplayName = 'BadTestSDK' FrameworkIdentity = '' PlatformIdentity = 'windows' APPX = '' SDKType='' CopyRedistToSubDirectory='' SupportedArchitectures='' ProductFamilyName='' SupportsMultipleVersions='' ArchitectureForRuntime = '' DependsOn = '' MinOSVersion = '' MaxOSVersionTested = '' MaxPlatformVersion = '8.1' > <File WinMD = 'GoodTestSDK.Sprint, Version=8.0' /> <File AssemblyName = 'Assembly1, Version=8.0' /> <DependsOn Identity='Windows SDK, Version 8.0'/> </FileList>"; try { string sdkManifestFile = Path.Combine(testDirectory, "SdkManifest.xml"); if (Directory.Exists(testDirectoryRoot)) { FileUtilities.DeleteDirectoryNoThrow(testDirectoryRoot, true); } Directory.CreateDirectory(testDirectory); ITaskItem item = new TaskItem("GoodTestSDK, Version=2.0"); ITaskItem installLocation = new TaskItem(testDirectory); installLocation.SetMetadata("SDKName", "GoodTestSDK, Version=2.0"); installLocation.SetMetadata("PlatformVersion", "8.0"); File.WriteAllText(sdkManifestFile, sdkManifestContents1); // Resolve with PlatformVersion 7.0 MockEngine engine1 = new MockEngine(); TaskLoggingHelper log1 = new TaskLoggingHelper(engine1, "ResolveSDKReference"); log1.TaskResources = AssemblyResources.PrimaryResources; ResolveSDKReference t1 = new ResolveSDKReference(); t1.SDKReferences = new ITaskItem[] { item }; t1.InstalledSDKs = new ITaskItem[] { installLocation }; t1.WarnOnMissingPlatformVersion = true; t1.BuildEngine = engine1; t1.TargetPlatformVersion = "7.0"; t1.ProjectName = "project.proj"; t1.TargetPlatformIdentifier = "windows"; bool succeeded1 = t1.Execute(); Assert.True(succeeded1); engine1.AssertLogDoesntContainMessageFromResource(_resourceDelegate, "ResolveSDKReference.MaxPlatformVersionNotSpecified", "project.proj", "GoodTestSDK", "2.0", "windows", "8.0", "windows", t1.TargetPlatformVersion); // Resolve with PlatformVersion 8.0 MockEngine engine2 = new MockEngine(); TaskLoggingHelper log2 = new TaskLoggingHelper(engine2, "ResolveSDKReference"); log2.TaskResources = AssemblyResources.PrimaryResources; ResolveSDKReference t2 = new ResolveSDKReference(); t2.SDKReferences = new ITaskItem[] { item }; t2.InstalledSDKs = new ITaskItem[] { installLocation }; t2.WarnOnMissingPlatformVersion = true; t2.BuildEngine = engine2; t2.TargetPlatformVersion = "8.0"; t2.ProjectName = "project.proj"; t2.TargetPlatformIdentifier = "windows"; bool succeeded2 = t2.Execute(); Assert.True(succeeded2); engine2.AssertLogDoesntContainMessageFromResource(_resourceDelegate, "ResolveSDKReference.MaxPlatformVersionNotSpecified", "project.proj", "GoodTestSDK", "2.0", "windows", "8.0", "windows", t2.TargetPlatformVersion); // Resolve with PlatformVersion 8.1 MockEngine engine3 = new MockEngine(); TaskLoggingHelper log3 = new TaskLoggingHelper(engine3, "ResolveSDKReference"); log3.TaskResources = AssemblyResources.PrimaryResources; ResolveSDKReference t3 = new ResolveSDKReference(); t3.SDKReferences = new ITaskItem[] { item }; t3.InstalledSDKs = new ITaskItem[] { installLocation }; t3.WarnOnMissingPlatformVersion = true; t3.BuildEngine = engine3; t3.TargetPlatformVersion = "8.1"; t3.ProjectName = "project.proj"; t3.TargetPlatformIdentifier = "windows"; bool succeeded3 = t3.Execute(); Assert.True(succeeded3); engine3.AssertLogContainsMessageFromResource(_resourceDelegate, "ResolveSDKReference.MaxPlatformVersionNotSpecified", "project.proj", "GoodTestSDK", "2.0", "windows", "8.0", "windows", t3.TargetPlatformVersion); // Resolve with PlatformVersion 8.1 with WarnOnMissingPlatformVersion = false MockEngine engine3a = new MockEngine(); TaskLoggingHelper log3a = new TaskLoggingHelper(engine3a, "ResolveSDKReference"); log3a.TaskResources = AssemblyResources.PrimaryResources; ResolveSDKReference t3a = new ResolveSDKReference(); t3a.SDKReferences = new ITaskItem[] { item }; t3a.InstalledSDKs = new ITaskItem[] { installLocation }; t3a.WarnOnMissingPlatformVersion = false; t3a.BuildEngine = engine3a; t3a.TargetPlatformVersion = "8.1"; t3a.ProjectName = "project.proj"; t3a.TargetPlatformIdentifier = "windows"; bool succeeded3a = t3a.Execute(); Assert.True(succeeded3a); engine3a.AssertLogDoesntContainMessageFromResource(_resourceDelegate, "ResolveSDKReference.MaxPlatformVersionNotSpecified", "project.proj", "GoodTestSDK", "2.0", "windows", "8.0", "windows", t3a.TargetPlatformVersion); FileUtilities.DeleteNoThrow(sdkManifestFile); // Manifest with MaxPlatformVersion File.WriteAllText(sdkManifestFile, sdkManifestContents2); // Resolve with PlatformVersion 8.0 MockEngine engine4 = new MockEngine(); TaskLoggingHelper log4 = new TaskLoggingHelper(engine4, "ResolveSDKReference"); log4.TaskResources = AssemblyResources.PrimaryResources; ResolveSDKReference t4 = new ResolveSDKReference(); t4.SDKReferences = new ITaskItem[] { item }; t4.InstalledSDKs = new ITaskItem[] { installLocation }; t4.WarnOnMissingPlatformVersion = true; t4.BuildEngine = engine4; t4.TargetPlatformVersion = "8.0"; t4.ProjectName = "project.proj"; t4.TargetPlatformIdentifier = "windows"; bool succeeded4 = t4.Execute(); Assert.True(succeeded4); engine4.AssertLogDoesntContainMessageFromResource(_resourceDelegate, "ResolveSDKReference.MaxPlatformVersionNotSpecified", "project.proj", "BadTestSDK", "1.0", "windows", "8.0", "windows", t4.TargetPlatformVersion); // Resolve with PlatformVersion 8.1 MockEngine engine5 = new MockEngine(); TaskLoggingHelper log5 = new TaskLoggingHelper(engine5, "ResolveSDKReference"); log5.TaskResources = AssemblyResources.PrimaryResources; ResolveSDKReference t5 = new ResolveSDKReference(); t5.SDKReferences = new ITaskItem[] { item }; t5.InstalledSDKs = new ITaskItem[] { installLocation }; t5.WarnOnMissingPlatformVersion = true; t5.BuildEngine = engine5; t5.ProjectName = "project.proj"; t5.TargetPlatformVersion = "8.1"; t5.TargetPlatformIdentifier = "windows"; bool succeeded5 = t5.Execute(); Assert.True(succeeded5); engine5.AssertLogDoesntContainMessageFromResource(_resourceDelegate, "ResolveSDKReference.MaxPlatformVersionNotSpecified", "project.proj", "BadTestSDK", "1.0", "windows", "8.0", "windows", t5.TargetPlatformVersion); } finally { if (Directory.Exists(testDirectoryRoot)) { FileUtilities.DeleteDirectoryNoThrow(testDirectoryRoot, true); } } }
public void VerifyRedistFilesLogRedistFalse() { MockEngine engine = new MockEngine(); GetSDKReferenceFiles t = new GetSDKReferenceFiles(); t.BuildEngine = engine; t.CacheFileFolderPath = s_cacheDirectory; ITaskItem item = new TaskItem(s_sdkDirectory); item.SetMetadata("ExpandReferenceAssemblies", "true"); item.SetMetadata("TargetedSDKConfiguration", "Retail"); item.SetMetadata("TargetedSDKArchitecture", "x86"); item.SetMetadata("CopyRedist", "true"); item.SetMetadata("CopyRedistToSubDirectory", "Super"); item.SetMetadata("OriginalItemSpec", "SDKWithManifest, Version=2.0"); t.ResolvedSDKReferences = new ITaskItem[] { item }; t.LogRedistFilesList = false; bool success = t.Execute(s_getAssemblyName, s_getAssemblyRuntimeVersion, FileUtilities.FileExistsNoThrow); Assert.IsTrue(success); Assert.IsTrue(t.CopyLocalFiles.Length == 0); Assert.IsTrue(t.References.Length == 8); Assert.IsTrue(t.RedistFiles.Length == 5); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingRedistFile", t.RedistFiles[0].ItemSpec.Replace(t.RedistFiles[0].GetMetadata("SDKRootPath"), String.Empty), t.RedistFiles[0].GetMetadata("TargetPath")); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingRedistFile", t.RedistFiles[1].ItemSpec.Replace(t.RedistFiles[1].GetMetadata("SDKRootPath"), String.Empty), t.RedistFiles[1].GetMetadata("TargetPath")); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingRedistFile", t.RedistFiles[2].ItemSpec.Replace(t.RedistFiles[2].GetMetadata("SDKRootPath"), String.Empty), t.RedistFiles[2].GetMetadata("TargetPath")); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingRedistFile", t.RedistFiles[3].ItemSpec.Replace(t.RedistFiles[3].GetMetadata("SDKRootPath"), String.Empty), t.RedistFiles[3].GetMetadata("TargetPath")); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingRedistFile", t.RedistFiles[4].ItemSpec.Replace(t.RedistFiles[4].GetMetadata("SDKRootPath"), String.Empty), t.RedistFiles[4].GetMetadata("TargetPath")); Assert.IsTrue(Path.GetFileName(t.RedistFiles[0].ItemSpec).Equals("A.dll", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[0].GetMetadata("TargetPath").Equals("Super\\A.dll", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[0].GetMetadata("OriginalItemSpec").Equals("SDkWithManifest, Version=2.0", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[0].GetMetadata("ResolvedFrom").Equals("GetSDKReferenceFiles", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[0].GetMetadata("Root").Length == 0); Assert.IsTrue(Path.GetFileName(t.RedistFiles[1].ItemSpec).Equals("B.dll", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[1].GetMetadata("TargetPath").Equals("Super\\ASubDirectory\\TwoDeep\\B.dll", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[1].GetMetadata("OriginalItemSpec").Equals("SDkWithManifest, Version=2.0", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[1].GetMetadata("ResolvedFrom").Equals("GetSDKReferenceFiles", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[1].GetMetadata("Root").Length == 0); Assert.IsTrue(Path.GetFileName(t.RedistFiles[2].ItemSpec).Equals("B.PRI", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[2].GetMetadata("TargetPath").Equals("Super\\B.PRI", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[2].GetMetadata("OriginalItemSpec").Equals("SDkWithManifest, Version=2.0", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[2].GetMetadata("ResolvedFrom").Equals("GetSDKReferenceFiles", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[2].GetMetadata("Root").Equals("Super", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(Path.GetFileName(t.RedistFiles[3].ItemSpec).Equals("C.dll", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[3].GetMetadata("TargetPath").Equals("Super\\C.dll", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[3].GetMetadata("OriginalItemSpec").Equals("SDkWithManifest, Version=2.0", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[3].GetMetadata("ResolvedFrom").Equals("GetSDKReferenceFiles", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[3].GetMetadata("Root").Length == 0); Assert.IsTrue(Path.GetFileName(t.RedistFiles[4].ItemSpec).Equals("D.dll", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[4].GetMetadata("TargetPath").Equals("Super\\D.dll", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[4].GetMetadata("OriginalItemSpec").Equals("SDkWithManifest, Version=2.0", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[4].GetMetadata("ResolvedFrom").Equals("GetSDKReferenceFiles", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(t.RedistFiles[4].GetMetadata("Root").Length == 0); }
public void VerifyLogReferencesFalse() { MockEngine engine = new MockEngine(); GetSDKReferenceFiles t = new GetSDKReferenceFiles(); t.BuildEngine = engine; t.CacheFileFolderPath = s_cacheDirectory; ITaskItem item = new TaskItem(s_sdkDirectory); item.SetMetadata("ExpandReferenceAssemblies", "true"); item.SetMetadata("TargetedSDKConfiguration", "Retail"); item.SetMetadata("TargetedSDKArchitecture", "x86"); item.SetMetadata("OriginalItemSpec", "SDKWithManifest, Version=2.0"); t.ResolvedSDKReferences = new ITaskItem[] { item }; t.LogReferencesList = false; bool success = t.Execute(s_getAssemblyName, s_getAssemblyRuntimeVersion, FileUtilities.FileExistsNoThrow); Assert.IsTrue(success); Assert.IsTrue(t.CopyLocalFiles.Length == 0); Assert.IsTrue(t.References.Length == 8); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingReference", t.References[0].ItemSpec.Replace(t.References[0].GetMetadata("SDKRootPath"), String.Empty)); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingReference", t.References[1].ItemSpec.Replace(t.References[1].GetMetadata("SDKRootPath"), String.Empty)); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingReference", t.References[2].ItemSpec.Replace(t.References[2].GetMetadata("SDKRootPath"), String.Empty)); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingReference", t.References[3].ItemSpec.Replace(t.References[3].GetMetadata("SDKRootPath"), String.Empty)); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingReference", t.References[4].ItemSpec.Replace(t.References[4].GetMetadata("SDKRootPath"), String.Empty)); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingReference", t.References[5].ItemSpec.Replace(t.References[5].GetMetadata("SDKRootPath"), String.Empty)); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingReference", t.References[6].ItemSpec.Replace(t.References[6].GetMetadata("SDKRootPath"), String.Empty)); engine.AssertLogDoesntContainMessageFromResource(s_resourceDelegate, "GetSDKReferenceFiles.AddingReference", t.References[7].ItemSpec.Replace(t.References[7].GetMetadata("SDKRootPath"), String.Empty)); }