@joebigelow / wix / commits / 930b0ca1

Fix infinite loop in ResolveDelayedFieldsCommand and add failing test.

Sean Hall committed Apr 14, 2021 at 22:03 UTC 930b0ca136824d7f4917482fe7a7a577d28f6903
3 files changed +37
src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs
+1
@@ -149,6 +149,7 @@ namespace WixToolset.Core.Bind
149 else
150 {
151 this.Messaging.Write(ErrorMessages.UnresolvedBindReference(sourceLineNumbers, value));
152 + break;
153 }
154 }
155 else
src/test/WixToolsetTest.CoreIntegration/BindVariablesFixture.cs
+28
@@ -10,6 +10,34 @@ namespace WixToolsetTest.CoreIntegration
10
11 public class BindVariablesFixture
12 {
13 + [Fact(Skip = "Test demonstrates failure")]
14 + public void CanBuildBundleWithPackageBindVariables()
15 + {
16 + var folder = TestData.Get(@"TestData");
17 +
18 + using (var fs = new DisposableFileSystem())
19 + {
20 + var baseFolder = fs.GetFolder();
21 + var intermediateFolder = Path.Combine(baseFolder, "obj");
22 + var exePath = Path.Combine(baseFolder, @"bin\test.exe");
23 +
24 + var result = WixRunner.Execute(new[]
25 + {
26 + "build",
27 + Path.Combine(folder, "BundleBindVariables", "CacheIdFromPackageDescription.wxs"),
28 + Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"),
29 + "-bindpath", Path.Combine(folder, "SimpleBundle", "data"),
30 + "-bindpath", Path.Combine(folder, ".Data"),
31 + "-intermediateFolder", intermediateFolder,
32 + "-o", exePath,
33 + });
34 +
35 + result.AssertSuccess();
36 +
37 + Assert.True(File.Exists(exePath));
38 + }
39 + }
40 +
41 [Fact]
42 public void CanBuildWithDefaultValue()
43 {
src/test/WixToolsetTest.CoreIntegration/TestData/BundleBindVariables/CacheIdFromPackageDescription.wxs new
+8
@@ -0,0 +1,8 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 + <Fragment>
4 + <PackageGroup Id="BundlePackages">
5 + <MsiPackage SourceFile="test.msi" CacheId="!(bind.packageDescription.test.msi)" />
6 + </PackageGroup>
7 + </Fragment>
8 +</Wix>