@joebigelow / wix / commits / d8c4f61e

Add tests demonstrating linker error.

Bob Arnson committed Mar 7, 2024 at 20:48 UTC d8c4f61e080a3950faf8fb46b0a5c849988fec8e
2 files changed +50 -18
src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs
+49 -17
@@ -19,7 +19,7 @@ namespace WixToolsetTest.UI
19 var bindFolder = TestData.Get(@"TestData", "data");
20 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
21
22 - var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent");
22 + var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent", "InstallUISequence");
23 Assert.Single(results, result => result.StartsWith("Dialog:AdvancedWelcomeEulaDlg\t"));
24 WixAssert.CompareLineByLine(new[]
25 {
@@ -46,6 +46,11 @@ namespace WixToolsetTest.UI
46 "ControlEvent:BrowseDlg\tOK\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t1",
47 "ControlEvent:InstallDirDlg\tNext\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t2",
48 }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray());
49 + WixAssert.CompareLineByLine(new[]
50 + {
51 + "InstallUISequence:AdvancedWelcomeEulaDlg\tNOT Installed\t1296",
52 + "InstallUISequence:WelcomeDlg\tInstalled AND PATCH\t1295",
53 + }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
54 }
55
56 [Fact]
@@ -55,7 +60,7 @@ namespace WixToolsetTest.UI
60 var bindFolder = TestData.Get(@"TestData", "data");
61 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
62
58 - var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent");
63 + var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent", "InstallUISequence");
64 Assert.Single(results, result => result.StartsWith("Dialog:AdvancedWelcomeEulaDlg\t"));
65 WixAssert.CompareLineByLine(new[]
66 {
@@ -91,7 +96,7 @@ namespace WixToolsetTest.UI
96 var bindFolder = TestData.Get(@"TestData", "data");
97 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
98
94 - var results = build.BuildAndQuery(BuildARM64, "Binary", "Dialog", "CustomAction", "ControlEvent");
99 + var results = build.BuildAndQuery(BuildARM64, "Binary", "Dialog", "CustomAction", "ControlEvent", "InstallUISequence");
100 Assert.Single(results, result => result.StartsWith("Dialog:AdvancedWelcomeEulaDlg\t"));
101 WixAssert.CompareLineByLine(new[]
102 {
@@ -120,14 +125,14 @@ namespace WixToolsetTest.UI
125 }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray());
126 }
127
123 - [Fact]
128 + [Fact(Skip = "Linker problem")]
129 public void CanBuildUsingWixUIFeatureTree()
130 {
131 var folder = TestData.Get(@"TestData", "WixUI_FeatureTree");
132 var bindFolder = TestData.Get(@"TestData", "data");
133 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
134
130 - var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent");
135 + var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent", "InstallUISequence");
136 Assert.Single(results, result => result.StartsWith("Dialog:WelcomeDlg\t"));
137 Assert.Single(results, result => result.StartsWith("Dialog:CustomizeDlg\t"));
138 Assert.Empty(results.Where(result => result.StartsWith("Dialog:SetupTypeDlg\t")));
@@ -150,17 +155,22 @@ namespace WixToolsetTest.UI
155 {
156 "ControlEvent:LicenseAgreementDlg\tPrint\tDoAction\tWixUIPrintEula_X64\t1\t1",
157 }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray());
158 + WixAssert.CompareLineByLine(new[]
159 + {
160 + "InstallUISequence:WelcomeDlg\tNOT Installed OR PATCH\t1297",
161 + }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
162 }
163
155 - [Fact]
156 - public void CanBuildUsingWixUIInstallDirWithCustomizedEula()
164 + [Fact(Skip = "Linker problem")]
165 + public void CanBuildWithWixUIInstallDirWithCustomizedEula()
166 {
167 var folder = TestData.Get(@"TestData", "WixUI_InstallDir");
168 var bindFolder = TestData.Get(@"TestData", "data");
169 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
170
162 - var results = build.BuildAndQuery(BuildEula, "Binary", "Dialog", "CustomAction", "Property", "ControlEvent");
171 + var results = build.BuildAndQuery(BuildEula, "Binary", "Dialog", "CustomAction", "Property", "ControlEvent", "InstallUISequence");
172 Assert.Single(results, result => result.StartsWith("Dialog:InstallDirDlg\t"));
173 + Assert.Single(results, result => result.StartsWith("Dialog:WelcomeDlg\t"));
174 WixAssert.CompareLineByLine(new[]
175 {
176 "Binary:WixUI_Bmp_Banner\t[Binary data]",
@@ -186,6 +196,10 @@ namespace WixToolsetTest.UI
196 "ControlEvent:InstallDirDlg\tNext\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t2",
197 "ControlEvent:LicenseAgreementDlg\tPrint\tDoAction\tWixUIPrintEula_X86\t1\t1",
198 }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).OrderBy(s => s).ToArray());
199 + WixAssert.CompareLineByLine(new[]
200 + {
201 + "InstallUISequence:WelcomeDlg\tNOT Installed OR PATCH\t1297",
202 + }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
203 }
204
205 [Fact]
@@ -195,7 +209,7 @@ namespace WixToolsetTest.UI
209 var bindFolder = TestData.Get(@"TestData", "data");
210 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
211
198 - var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent");
212 + var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent", "InstallUISequence");
213 Assert.Single(results, result => result.StartsWith("Dialog:WelcomeEulaDlg\t"));
214 WixAssert.CompareLineByLine(new[]
215 {
@@ -215,6 +229,11 @@ namespace WixToolsetTest.UI
229 {
230 "ControlEvent:WelcomeEulaDlg\tPrint\tDoAction\tWixUIPrintEula_X86\t1\t1",
231 }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).OrderBy(s => s).ToArray());
232 + WixAssert.CompareLineByLine(new[]
233 + {
234 + "InstallUISequence:WelcomeDlg\tInstalled AND PATCH\t1295",
235 + "InstallUISequence:WelcomeEulaDlg\tNOT Installed\t1296",
236 + }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
237 }
238
239 [Fact]
@@ -255,14 +274,14 @@ namespace WixToolsetTest.UI
274 }
275 }
276
258 - [Fact]
277 + [Fact(Skip = "Linker problem")]
278 public void CanBuildUsingWixUIMondo()
279 {
280 var folder = TestData.Get(@"TestData", "WixUI_Mondo");
281 var bindFolder = TestData.Get(@"TestData", "data");
282 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
283
265 - var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent");
284 + var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent", "InstallUISequence");
285 Assert.Single(results, result => result.StartsWith("Dialog:WelcomeDlg\t"));
286 Assert.Single(results, result => result.StartsWith("Dialog:CustomizeDlg\t"));
287 Assert.Single(results, result => result.StartsWith("Dialog:SetupTypeDlg\t"));
@@ -286,6 +305,10 @@ namespace WixToolsetTest.UI
305 "ControlEvent:BrowseDlg\tOK\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t3",
306 "ControlEvent:LicenseAgreementDlg\tPrint\tDoAction\tWixUIPrintEula_X86\t1\t1",
307 }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray());
308 + WixAssert.CompareLineByLine(new[]
309 + {
310 + "InstallUISequence:WelcomeDlg\tInstalled AND PATCH\t1295",
311 + }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
312 }
313
314 [Fact]
@@ -302,14 +325,14 @@ namespace WixToolsetTest.UI
325 }, results.Where(s => s.StartsWith("Control:ErrorDlg\tY")).Select(s => s.Split('\t')[9]).ToArray());
326 }
327
305 - [Fact]
306 - public void CanBuildUsingWithInstallDirAndRemovedDialog()
328 + [Fact(Skip = "Linker problem")]
329 + public void CanBuildWithInstallDirAndRemovedDialog()
330 {
331 var folder = TestData.Get(@"TestData", "InstallDir_NoLicense");
332 var bindFolder = TestData.Get(@"TestData", "data");
333 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
334
312 - var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "Property", "ControlEvent");
335 + var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "Property", "ControlEvent", "InstallUISequence");
336 Assert.Single(results, result => result.StartsWith("Dialog:InstallDirDlg\t"));
337 WixAssert.CompareLineByLine(new[]
338 {
@@ -336,16 +359,21 @@ namespace WixToolsetTest.UI
359 }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).OrderBy(s => s).ToArray());
360
361 Assert.Empty(results.Where(result => result.Contains("LicenseAgreementDlg")).ToArray());
362 +
363 + WixAssert.CompareLineByLine(new[]
364 + {
365 + "InstallUISequence:WelcomeDlg\tNOT Installed OR PATCH\t1297",
366 + }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
367 }
368
341 - [Fact]
342 - public void CanBuildUsingWithInstallDirAndAddedDialog()
369 + [Fact(Skip = "Linker problem")]
370 + public void CanBuildWithInstallDirAndAddedDialog()
371 {
372 var folder = TestData.Get(@"TestData", "InstallDir_SpecialDlg");
373 var bindFolder = TestData.Get(@"TestData", "data");
374 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
375
348 - var results = build.BuildAndQuery(BuildX64, "Binary", "Control", "Dialog", "CustomAction", "Property", "ControlEvent");
376 + var results = build.BuildAndQuery(BuildX64, "Binary", "Control", "Dialog", "CustomAction", "Property", "ControlEvent", "InstallUISequence");
377 Assert.Single(results, result => result.StartsWith("Dialog:InstallDirDlg\t"));
378 WixAssert.CompareLineByLine(new[]
379 {
@@ -372,6 +400,10 @@ namespace WixToolsetTest.UI
400 "ControlEvent:InstallDirDlg\tNext\tDoAction\tWixUIValidatePath_X64\tNOT WIXUI_DONTVALIDATEPATH\t2",
401 "ControlEvent:LicenseAgreementDlg\tPrint\tDoAction\tWixUIPrintEula_X64\t1\t1",
402 }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).OrderBy(s => s).ToArray());
403 + WixAssert.CompareLineByLine(new[]
404 + {
405 + "InstallUISequence:WelcomeDlg\tNOT Installed OR PATCH\t1297",
406 + }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
407
408 Assert.Equal(8, results.Where(result => result.StartsWith("Control:") && result.Contains("SpecialDlg")).Count());
409 Assert.Equal(5, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("SpecialDlg")).Count());
src/ext/UI/ui.cmd
+1 -1
@@ -23,7 +23,7 @@
23 msbuild -Restore -p:Configuration=%_C% -tl -nologo -warnaserror -bl:%_L%\ext_ui_build.binlog || exit /b
24
25 :: Test
26 -:: dotnet test -c %_C% --no-build test\WixToolsetTest.UI || exit /b
26 +dotnet test -c %_C% --no-build test\WixToolsetTest.UI || exit /b
27
28 :: Pack
29 msbuild -t:Pack -p:Configuration=%_C% -tl -nologo -warnaserror -p:NoBuild=true wixext\WixToolset.UI.wixext.csproj || exit /b