Support and test preprocessor variables without "var." prefix
Rob Mensching committed
Dec 8, 2017 at 10:10 UTC
c99ba1a05efffd7c43edd87380bc1442942de7a9
4 files changed
+71
-33
src/WixToolset.Core/CommandLine/CommandLineOption.cs
deleted
-27
@@ -1,27 +0,0 @@
1
-// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
-
3
-namespace WixToolset
4
-{
5
- /// <summary>
6
- /// A command line option.
7
- /// </summary>
8
- public struct CommandLineOption
9
- {
10
- public string Option;
11
- public string Description;
12
- public int AdditionalArguments;
13
-
14
- /// <summary>
15
- /// Instantiates a new BuilderCommandLineOption.
16
- /// </summary>
17
- /// <param name="option">The option name.</param>
18
- /// <param name="description">The description of the option.</param>
19
- /// <param name="additionalArguments">Count of additional arguments to require after this switch.</param>
20
- public CommandLineOption(string option, string description, int additionalArguments)
21
- {
22
- this.Option = option;
23
- this.Description = description;
24
- this.AdditionalArguments = additionalArguments;
25
- }
26
- }
27
-}
src/WixToolset.Core/ExtensibilityServices/PreprocessHelper.cs
+2
-2
@@ -86,7 +86,7 @@ namespace WixToolset.Core.ExtensibilityServices
86
// the use of open and closed parens inside variable names. Example: $(env.ProgramFiles(x86)) should resolve.
87
if (result == null)
88
{
89
- result = this.GetVariableValue(context, function, false);
89
+ result = this.GetVariableValue(context, function, true);
90
}
91
92
return result;
@@ -403,7 +403,7 @@ namespace WixToolset.Core.ExtensibilityServices
403
}
404
else
405
{
406
- result = this.GetVariableValue(context, subString, false);
406
+ result = this.GetVariableValue(context, subString, true);
407
}
408
409
if (null == result)
src/test/WixToolsetTest.CoreIntegration/ProgramFixture.cs
+61
-1
@@ -73,7 +73,7 @@ namespace WixToolsetTest.CoreIntegration
73
Assert.Equal(0, result);
74
75
Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
76
- Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\cab1.cab")));
76
+ Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\example.cab")));
77
Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
78
79
var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wir"));
@@ -85,6 +85,66 @@ namespace WixToolsetTest.CoreIntegration
85
}
86
}
87
88
+ [Fact]
89
+ public void CanBuildSingleFileCompressedWithMediaTemplate()
90
+ {
91
+ var folder = TestData.Get(@"TestData\SingleFileCompressed");
92
+
93
+ using (var fs = new DisposableFileSystem())
94
+ {
95
+ var intermediateFolder = fs.GetFolder();
96
+
97
+ var program = new Program();
98
+ var result = program.Run(new WixToolsetServiceProvider(), new[]
99
+ {
100
+ "build",
101
+ Path.Combine(folder, "Package.wxs"),
102
+ Path.Combine(folder, "PackageComponents.wxs"),
103
+ "-d", "MediaTemplateCompressionLevel",
104
+ "-loc", Path.Combine(folder, "Package.en-us.wxl"),
105
+ "-bindpath", Path.Combine(folder, "data"),
106
+ "-intermediateFolder", intermediateFolder,
107
+ "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
108
+ });
109
+
110
+ Assert.Equal(0, result);
111
+
112
+ Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
113
+ Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\cab1.cab")));
114
+ Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
115
+ }
116
+ }
117
+
118
+ [Fact]
119
+ public void CanBuildSingleFileCompressedWithMediaTemplateWithLowCompression()
120
+ {
121
+ var folder = TestData.Get(@"TestData\SingleFileCompressed");
122
+
123
+ using (var fs = new DisposableFileSystem())
124
+ {
125
+ var intermediateFolder = fs.GetFolder();
126
+
127
+ var program = new Program();
128
+ var result = program.Run(new WixToolsetServiceProvider(), new[]
129
+ {
130
+ "build",
131
+ Path.Combine(folder, "Package.wxs"),
132
+ Path.Combine(folder, "PackageComponents.wxs"),
133
+ "-d", "MediaTemplateCompressionLevel=low",
134
+ "-loc", Path.Combine(folder, "Package.en-us.wxl"),
135
+ "-bindpath", Path.Combine(folder, "data"),
136
+ "-intermediateFolder", intermediateFolder,
137
+ "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
138
+ });
139
+
140
+ Assert.Equal(0, result);
141
+
142
+ Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
143
+ Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\lowcab1.cab")));
144
+ Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
145
+ }
146
+ }
147
+
148
[Fact]
149
public void CanBuildSimpleModule()
150
{
src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs
+8
-3
@@ -4,10 +4,15 @@
4
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <!--<MediaTemplate />-->
8
- <MediaTemplate CompressionLevel="low" />
9
- <!--<Media Id="1" Cabinet="example.cab" />-->
7
8
+ <?ifndef MediaTemplateCompressionLevel?>
9
+ <Media Id="1" Cabinet="example.cab" />
10
+ <?elseif $(MediaTemplateCompressionLevel) = ""?>
11
+ <MediaTemplate />
12
+ <?else?>
13
+ <MediaTemplate CabinetTemplate="lowcab{0}.cab" CompressionLevel="$(MediaTemplateCompressionLevel)" />
14
+ <?endif?>
15
+
16
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
17
<ComponentGroupRef Id="ProductComponents" />
18
</Feature>