aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2022-02-08 12:15:22 -0800
committerRob Mensching <rob@firegiant.com>2022-02-10 20:47:53 -0800
commit504f4dc9d73af705c2509f65d910bb9b2e266ad8 (patch)
treeaf68832d3ca8cd14cf47726ffe1a6aa8ba44ebb9
parent585086c7f2a1f5f41e9b4d948e968906ef890ed8 (diff)
downloadwix-504f4dc9d73af705c2509f65d910bb9b2e266ad8.tar.gz
wix-504f4dc9d73af705c2509f65d910bb9b2e266ad8.tar.bz2
wix-504f4dc9d73af705c2509f65d910bb9b2e266ad8.zip
Centralize all validating tests in a single fixture
This should prevent validation from running in parallel.
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs153
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/ValidationFixture.cs165
-rw-r--r--src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs4
3 files changed, 163 insertions, 159 deletions
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs
index 9c271ab4..234aec78 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs
@@ -14,92 +14,6 @@ namespace WixToolsetTest.CoreIntegration
14 14
15 public class ModuleFixture 15 public class ModuleFixture
16 { 16 {
17 [Fact(Skip = "Flaky")]
18 public void CanBuildAndValidateSimpleModule()
19 {
20 var folder = TestData.Get(@"TestData\SimpleModule");
21
22 using (var fs = new DisposableFileSystem())
23 {
24 var intermediateFolder = fs.GetFolder();
25
26 var result = WixRunner.Execute(new[]
27 {
28 "build",
29 Path.Combine(folder, "Module.wxs"),
30 "-loc", Path.Combine(folder, "Module.en-us.wxl"),
31 "-bindpath", Path.Combine(folder, "data"),
32 "-intermediateFolder", intermediateFolder,
33 "-o", Path.Combine(intermediateFolder, @"bin\test.msm")
34 });
35
36 result.AssertSuccess();
37
38 var msmPath = Path.Combine(intermediateFolder, @"bin\test.msm");
39 Assert.True(File.Exists(msmPath));
40 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
41
42 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
43 var section = intermediate.Sections.Single();
44
45 var dirSymbols = section.Symbols.OfType<DirectorySymbol>().OrderBy(d => d.Id.Id).ToList();
46 WixAssert.CompareLineByLine(new[]
47 {
48 "MergeRedirectFolder\tTARGETDIR\t.",
49 "NotTheMergeRedirectFolder\tTARGETDIR\t.",
50 "TARGETDIR\t\tSourceDir"
51 }, dirSymbols.Select(d => String.Join("\t", d.Id.Id, d.ParentDirectoryRef, d.Name)).ToArray());
52
53 var fileSymbols = section.Symbols.OfType<FileSymbol>().OrderBy(d => d.Id.Id).ToList();
54 WixAssert.CompareLineByLine(new[]
55 {
56 $"File1\t{Path.Combine(folder, @"data\test.txt")}\ttest.txt",
57 $"File2\t{Path.Combine(folder, @"data\test.txt")}\ttest.txt",
58 }, fileSymbols.Select(fileSymbol => String.Join("\t", fileSymbol.Id.Id, fileSymbol[FileSymbolFields.Source].AsPath().Path, fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path)).ToArray());
59
60 var data = WindowsInstallerData.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
61 var fileRows = data.Tables["File"].Rows;
62 WixAssert.CompareLineByLine(new[]
63 {
64 "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
65 "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
66 }, fileRows.Select(r => r.FieldAsString(0)).ToArray());
67
68 var cabPath = Path.Combine(intermediateFolder, "msm-test.cab");
69 Query.ExtractStream(msmPath, "MergeModule.CABinet", cabPath);
70 var files = Query.GetCabinetFiles(cabPath);
71 WixAssert.CompareLineByLine(new[]
72 {
73 "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
74 "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
75 }, files.Select(f => Path.Combine(f.Path, f.Name)).ToArray());
76
77 var rows = Query.QueryDatabase(msmPath, new[] { "_SummaryInformation" });
78 WixAssert.CompareLineByLine(new[]
79 {
80 "_SummaryInformation:Title\tMerge Module",
81 "_SummaryInformation:Subject\tMergeModule1",
82 "_SummaryInformation:Author\tExample Company",
83 "_SummaryInformation:Keywords\tMergeModule, MSI, database",
84 "_SummaryInformation:Comments\tThis merge module contains the logic and data required to install MergeModule1.",
85 "_SummaryInformation:Template\tIntel;1033",
86 "_SummaryInformation:CodePage\t1252",
87 "_SummaryInformation:PageCount\t200",
88 "_SummaryInformation:WordCount\t0",
89 "_SummaryInformation:CharacterCount\t0",
90 "_SummaryInformation:Security\t2",
91 }, rows);
92
93 var validationResult = WixRunner.Execute(new[]
94 {
95 "msi", "validate",
96 "-intermediateFolder", intermediateFolder,
97 msmPath
98 });
99 validationResult.AssertSuccess();
100 }
101 }
102
103 [Fact] 17 [Fact]
104 public void CanSuppressModularization() 18 public void CanSuppressModularization()
105 { 19 {
@@ -133,72 +47,5 @@ namespace WixToolsetTest.CoreIntegration
133 }, rows); 47 }, rows);
134 } 48 }
135 } 49 }
136
137 [Fact(Skip = "Flaky")]
138 public void CanMergeModule()
139 {
140 var msmFolder = TestData.Get(@"TestData\SimpleModule");
141 var folder = TestData.Get(@"TestData\SimpleMerge");
142
143 using (var fs = new DisposableFileSystem())
144 {
145 var intermediateFolder = fs.GetFolder();
146 var msiPath = Path.Combine(intermediateFolder, @"bin\test.msi");
147 var cabPath = Path.Combine(intermediateFolder, @"bin\cab1.cab");
148
149 var msmResult = WixRunner.Execute(new[]
150 {
151 "build",
152 Path.Combine(msmFolder, "Module.wxs"),
153 "-loc", Path.Combine(msmFolder, "Module.en-us.wxl"),
154 "-bindpath", Path.Combine(msmFolder, "data"),
155 "-intermediateFolder", intermediateFolder,
156 "-o", Path.Combine(intermediateFolder, "bin", "test", "test.msm")
157 });
158
159 msmResult.AssertSuccess();
160
161 var result = WixRunner.Execute(new[]
162 {
163 "build",
164 Path.Combine(folder, "Package.wxs"),
165 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
166 "-bindpath", Path.Combine(intermediateFolder, "bin", "test"),
167 "-intermediateFolder", intermediateFolder,
168 "-o", msiPath
169 });
170
171 result.AssertSuccess();
172
173 var validationResult = WixRunner.Execute(new[]
174 {
175 "msi", "validate",
176 "-intermediateFolder", intermediateFolder,
177 msiPath
178 });
179 validationResult.AssertSuccess();
180
181 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
182 var section = intermediate.Sections.Single();
183 Assert.Empty(section.Symbols.OfType<FileSymbol>());
184
185 var data = WindowsInstallerData.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
186 Assert.Empty(data.Tables["File"].Rows);
187
188 var results = Query.QueryDatabase(msiPath, new[] { "File" });
189 WixAssert.CompareLineByLine(new[]
190 {
191 "File:File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tModuleComponent1.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tfile1.txt\t17\t\t\t512\t1",
192 "File:File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tModuleComponent2.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tfile2.txt\t17\t\t\t512\t2",
193 }, results);
194
195 var files = Query.GetCabinetFiles(cabPath);
196 WixAssert.CompareLineByLine(new[]
197 {
198 "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
199 "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE"
200 }, files.Select(f => f.Name).ToArray());
201 }
202 }
203 } 50 }
204} 51}
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/ValidationFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/ValidationFixture.cs
index b94f0255..69965c0d 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/ValidationFixture.cs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/ValidationFixture.cs
@@ -2,15 +2,172 @@
2 2
3namespace WixToolsetTest.CoreIntegration 3namespace WixToolsetTest.CoreIntegration
4{ 4{
5 using System;
5 using System.IO; 6 using System.IO;
6 using System.Linq; 7 using System.Linq;
7 using WixBuildTools.TestSupport; 8 using WixBuildTools.TestSupport;
8 using WixToolset.Core.TestPackage; 9 using WixToolset.Core.TestPackage;
10 using WixToolset.Data;
11 using WixToolset.Data.Symbols;
12 using WixToolset.Data.WindowsInstaller;
9 using Xunit; 13 using Xunit;
10 14
11 public class ValidationFixture 15 public class ValidationFixture
12 { 16 {
13 [Fact(Skip = "Flaky")] 17 [Fact]
18 public void CanBuildAndValidateSimpleModule()
19 {
20 var folder = TestData.Get(@"TestData\SimpleModule");
21
22 using (var fs = new DisposableFileSystem())
23 {
24 var intermediateFolder = fs.GetFolder();
25
26 var result = WixRunner.Execute(new[]
27 {
28 "build",
29 Path.Combine(folder, "Module.wxs"),
30 "-loc", Path.Combine(folder, "Module.en-us.wxl"),
31 "-bindpath", Path.Combine(folder, "data"),
32 "-intermediateFolder", intermediateFolder,
33 "-o", Path.Combine(intermediateFolder, @"bin\test.msm")
34 });
35
36 result.AssertSuccess();
37
38 var msmPath = Path.Combine(intermediateFolder, @"bin\test.msm");
39 Assert.True(File.Exists(msmPath));
40 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
41
42 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
43 var section = intermediate.Sections.Single();
44
45 var dirSymbols = section.Symbols.OfType<DirectorySymbol>().OrderBy(d => d.Id.Id).ToList();
46 WixAssert.CompareLineByLine(new[]
47 {
48 "MergeRedirectFolder\tTARGETDIR\t.",
49 "NotTheMergeRedirectFolder\tTARGETDIR\t.",
50 "TARGETDIR\t\tSourceDir"
51 }, dirSymbols.Select(d => String.Join("\t", d.Id.Id, d.ParentDirectoryRef, d.Name)).ToArray());
52
53 var fileSymbols = section.Symbols.OfType<FileSymbol>().OrderBy(d => d.Id.Id).ToList();
54 WixAssert.CompareLineByLine(new[]
55 {
56 $"File1\t{Path.Combine(folder, @"data\test.txt")}\ttest.txt",
57 $"File2\t{Path.Combine(folder, @"data\test.txt")}\ttest.txt",
58 }, fileSymbols.Select(fileSymbol => String.Join("\t", fileSymbol.Id.Id, fileSymbol[FileSymbolFields.Source].AsPath().Path, fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path)).ToArray());
59
60 var data = WindowsInstallerData.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
61 var fileRows = data.Tables["File"].Rows;
62 WixAssert.CompareLineByLine(new[]
63 {
64 "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
65 "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
66 }, fileRows.Select(r => r.FieldAsString(0)).ToArray());
67
68 var cabPath = Path.Combine(intermediateFolder, "msm-test.cab");
69 Query.ExtractStream(msmPath, "MergeModule.CABinet", cabPath);
70 var files = Query.GetCabinetFiles(cabPath);
71 WixAssert.CompareLineByLine(new[]
72 {
73 "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
74 "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
75 }, files.Select(f => Path.Combine(f.Path, f.Name)).ToArray());
76
77 var rows = Query.QueryDatabase(msmPath, new[] { "_SummaryInformation" });
78 WixAssert.CompareLineByLine(new[]
79 {
80 "_SummaryInformation:Title\tMerge Module",
81 "_SummaryInformation:Subject\tMergeModule1",
82 "_SummaryInformation:Author\tExample Company",
83 "_SummaryInformation:Keywords\tMergeModule, MSI, database",
84 "_SummaryInformation:Comments\tThis merge module contains the logic and data required to install MergeModule1.",
85 "_SummaryInformation:Template\tIntel;1033",
86 "_SummaryInformation:CodePage\t1252",
87 "_SummaryInformation:PageCount\t200",
88 "_SummaryInformation:WordCount\t0",
89 "_SummaryInformation:CharacterCount\t0",
90 "_SummaryInformation:Security\t2",
91 }, rows);
92
93 var validationResult = WixRunner.Execute(new[]
94 {
95 "msi", "validate",
96 "-intermediateFolder", intermediateFolder,
97 msmPath
98 });
99 validationResult.AssertSuccess();
100 }
101 }
102
103 [Fact]
104 public void CanMergeModuleAndValidate()
105 {
106 var msmFolder = TestData.Get(@"TestData\SimpleModule");
107 var folder = TestData.Get(@"TestData\SimpleMerge");
108
109 using (var fs = new DisposableFileSystem())
110 {
111 var intermediateFolder = fs.GetFolder();
112 var msiPath = Path.Combine(intermediateFolder, @"bin\test.msi");
113 var cabPath = Path.Combine(intermediateFolder, @"bin\cab1.cab");
114
115 var msmResult = WixRunner.Execute(new[]
116 {
117 "build",
118 Path.Combine(msmFolder, "Module.wxs"),
119 "-loc", Path.Combine(msmFolder, "Module.en-us.wxl"),
120 "-bindpath", Path.Combine(msmFolder, "data"),
121 "-intermediateFolder", intermediateFolder,
122 "-o", Path.Combine(intermediateFolder, "bin", "test", "test.msm")
123 });
124
125 msmResult.AssertSuccess();
126
127 var result = WixRunner.Execute(new[]
128 {
129 "build",
130 Path.Combine(folder, "Package.wxs"),
131 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
132 "-bindpath", Path.Combine(intermediateFolder, "bin", "test"),
133 "-intermediateFolder", intermediateFolder,
134 "-o", msiPath
135 });
136
137 result.AssertSuccess();
138
139 var validationResult = WixRunner.Execute(new[]
140 {
141 "msi", "validate",
142 "-intermediateFolder", intermediateFolder,
143 msiPath
144 });
145 validationResult.AssertSuccess();
146
147 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
148 var section = intermediate.Sections.Single();
149 Assert.Empty(section.Symbols.OfType<FileSymbol>());
150
151 var data = WindowsInstallerData.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
152 Assert.Empty(data.Tables["File"].Rows);
153
154 var results = Query.QueryDatabase(msiPath, new[] { "File" });
155 WixAssert.CompareLineByLine(new[]
156 {
157 "File:File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tModuleComponent1.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tfile1.txt\t17\t\t\t512\t1",
158 "File:File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tModuleComponent2.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tfile2.txt\t17\t\t\t512\t2",
159 }, results);
160
161 var files = Query.GetCabinetFiles(cabPath);
162 WixAssert.CompareLineByLine(new[]
163 {
164 "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
165 "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE"
166 }, files.Select(f => f.Name).ToArray());
167 }
168 }
169
170 [Fact]
14 public void CanValidateMsiWithIceIssues() 171 public void CanValidateMsiWithIceIssues()
15 { 172 {
16 var folder = TestData.Get(@"TestData"); 173 var folder = TestData.Get(@"TestData");
@@ -19,7 +176,7 @@ namespace WixToolsetTest.CoreIntegration
19 { 176 {
20 var baseFolder = fs.GetFolder(); 177 var baseFolder = fs.GetFolder();
21 var intermediateFolder = Path.Combine(baseFolder, "obj"); 178 var intermediateFolder = Path.Combine(baseFolder, "obj");
22 var msiPath = Path.Combine(baseFolder, @"bin", "test.msi"); 179 var msiPath = Path.Combine(baseFolder, @"bin", "CanValidateMsiWithIceIssues.msi");
23 180
24 var result = WixRunner.Execute(new[] 181 var result = WixRunner.Execute(new[]
25 { 182 {
@@ -50,7 +207,7 @@ namespace WixToolsetTest.CoreIntegration
50 } 207 }
51 } 208 }
52 209
53 [Fact(Skip = "Flaky")] 210 [Fact]
54 public void CanValidateMsiSuppressIceError() 211 public void CanValidateMsiSuppressIceError()
55 { 212 {
56 var folder = TestData.Get(@"TestData"); 213 var folder = TestData.Get(@"TestData");
@@ -90,7 +247,7 @@ namespace WixToolsetTest.CoreIntegration
90 } 247 }
91 } 248 }
92 249
93 [Fact(Skip = "Flaky")] 250 [Fact]
94 public void CanValidateMsiWithWarningsAsErrors() 251 public void CanValidateMsiWithWarningsAsErrors()
95 { 252 {
96 var folder = TestData.Get(@"TestData"); 253 var folder = TestData.Get(@"TestData");
diff --git a/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs b/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs
index c94513b9..3b113242 100644
--- a/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs
+++ b/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs
@@ -193,7 +193,7 @@ namespace WixToolsetTest.Sdk
193 } 193 }
194 } 194 }
195 195
196 [Theory(Skip = "Flaky")] 196 [Theory]
197 [InlineData(BuildSystem.DotNetCoreSdk)] 197 [InlineData(BuildSystem.DotNetCoreSdk)]
198 [InlineData(BuildSystem.MSBuild)] 198 [InlineData(BuildSystem.MSBuild)]
199 [InlineData(BuildSystem.MSBuild64)] 199 [InlineData(BuildSystem.MSBuild64)]
@@ -320,7 +320,7 @@ namespace WixToolsetTest.Sdk
320 } 320 }
321 } 321 }
322 322
323 [Theory(Skip = "Flaky")] 323 [Theory]
324 [InlineData(BuildSystem.DotNetCoreSdk)] 324 [InlineData(BuildSystem.DotNetCoreSdk)]
325 [InlineData(BuildSystem.MSBuild)] 325 [InlineData(BuildSystem.MSBuild)]
326 [InlineData(BuildSystem.MSBuild64)] 326 [InlineData(BuildSystem.MSBuild64)]