diff options
author | Bob Arnson <bob@firegiant.com> | 2020-03-05 16:47:31 -0500 |
---|---|---|
committer | Bob Arnson <bob@firegiant.com> | 2020-03-05 17:12:17 -0500 |
commit | 72b6f0109008103dfe974fa4d2d3ce42e7b6b53e (patch) | |
tree | 8d836a61711f312395022867e4881c16735bd97e /src | |
parent | 6c4f0767ee16e95e0f3f735586caaa07d356245d (diff) | |
download | wix-72b6f0109008103dfe974fa4d2d3ce42e7b6b53e.tar.gz wix-72b6f0109008103dfe974fa4d2d3ce42e7b6b53e.tar.bz2 wix-72b6f0109008103dfe974fa4d2d3ce42e7b6b53e.zip |
Correctly handle custom action default suffix.
Diffstat (limited to 'src')
-rw-r--r-- | src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs | 14 | ||||
-rw-r--r-- | src/test/WixToolsetTest.CoreIntegration/ParseFixture.cs | 36 |
2 files changed, 41 insertions, 9 deletions
diff --git a/src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs b/src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs index e16f909a..7447d420 100644 --- a/src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs +++ b/src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs | |||
@@ -897,35 +897,31 @@ namespace WixToolset.Core.ExtensibilityServices | |||
897 | if (!this.Messaging.EncounteredError) | 897 | if (!this.Messaging.EncounteredError) |
898 | { | 898 | { |
899 | var name = String.Concat("Wix4", customAction); | 899 | var name = String.Concat("Wix4", customAction); |
900 | var suffix = "_X86"; | ||
900 | 901 | ||
901 | switch (currentPlatform) | 902 | switch (currentPlatform) |
902 | { | 903 | { |
903 | case Platform.X64: | 904 | case Platform.X64: |
904 | if ((supportedPlatforms & CustomActionPlatforms.X64) == CustomActionPlatforms.X64) | 905 | if ((supportedPlatforms & CustomActionPlatforms.X64) == CustomActionPlatforms.X64) |
905 | { | 906 | { |
906 | name = String.Concat(name, "_X64"); | 907 | suffix = "_X64"; |
907 | } | 908 | } |
908 | break; | 909 | break; |
909 | case Platform.ARM: | 910 | case Platform.ARM: |
910 | if ((supportedPlatforms & CustomActionPlatforms.ARM) == CustomActionPlatforms.ARM) | 911 | if ((supportedPlatforms & CustomActionPlatforms.ARM) == CustomActionPlatforms.ARM) |
911 | { | 912 | { |
912 | name = String.Concat(name, "_A32"); | 913 | suffix = "_A32"; |
913 | } | 914 | } |
914 | break; | 915 | break; |
915 | case Platform.ARM64: | 916 | case Platform.ARM64: |
916 | if ((supportedPlatforms & CustomActionPlatforms.ARM64) == CustomActionPlatforms.ARM64) | 917 | if ((supportedPlatforms & CustomActionPlatforms.ARM64) == CustomActionPlatforms.ARM64) |
917 | { | 918 | { |
918 | name = String.Concat(name, "_A64"); | 919 | suffix = "_A64"; |
919 | } | 920 | } |
920 | break; | 921 | break; |
921 | // Fall back to x86. | ||
922 | case Platform.X86: | ||
923 | default: | ||
924 | name = String.Concat(name, "_X86"); | ||
925 | break; | ||
926 | } | 922 | } |
927 | 923 | ||
928 | this.CreateSimpleReference(section, sourceLineNumbers, nameof(TupleDefinitionType.CustomAction), name); | 924 | this.CreateSimpleReference(section, sourceLineNumbers, nameof(TupleDefinitionType.CustomAction), name + suffix); |
929 | } | 925 | } |
930 | } | 926 | } |
931 | 927 | ||
diff --git a/src/test/WixToolsetTest.CoreIntegration/ParseFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ParseFixture.cs new file mode 100644 index 00000000..eca3aa34 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/ParseFixture.cs | |||
@@ -0,0 +1,36 @@ | |||
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 WixToolsetTest.CoreIntegration | ||
4 | { | ||
5 | using System.Linq; | ||
6 | using WixToolset.Core; | ||
7 | using WixToolset.Data; | ||
8 | using WixToolset.Data.Tuples; | ||
9 | using WixToolset.Extensibility.Data; | ||
10 | using WixToolset.Extensibility.Services; | ||
11 | using Xunit; | ||
12 | |||
13 | public class ParseFixture | ||
14 | { | ||
15 | [Fact] | ||
16 | public void GeneratesCorrectCustomActionIdentifiers() | ||
17 | { | ||
18 | var serviceProvider = new WixToolsetServiceProvider(); | ||
19 | var section = new IntermediateSection("section", SectionType.Fragment, 0); | ||
20 | var parseHelper = serviceProvider.GetService<IParseHelper>(); | ||
21 | |||
22 | parseHelper.CreateCustomActionReference(null, section, "CustomAction32", Platform.X86, CustomActionPlatforms.X86 | CustomActionPlatforms.ARM); | ||
23 | parseHelper.CreateCustomActionReference(null, section, "CustomArmAction", Platform.ARM64, CustomActionPlatforms.X86 | CustomActionPlatforms.ARM); | ||
24 | parseHelper.CreateCustomActionReference(null, section, "CustomArmAction", Platform.ARM64, CustomActionPlatforms.X86 | CustomActionPlatforms.X64 | CustomActionPlatforms.ARM64); | ||
25 | parseHelper.CreateCustomActionReference(null, section, "CustomAction", Platform.X64, CustomActionPlatforms.X86 | CustomActionPlatforms.ARM); | ||
26 | parseHelper.CreateCustomActionReference(null, section, "CustomAction", Platform.X64, CustomActionPlatforms.X86 | CustomActionPlatforms.X64); | ||
27 | |||
28 | var simpleReferences = section.Tuples.OfType<WixSimpleReferenceTuple>(); | ||
29 | Assert.NotNull(simpleReferences.Where(t => t.SymbolicName == "CustomAction:Wix4CustomAction32_X86").FirstOrDefault()); | ||
30 | Assert.NotNull(simpleReferences.Where(t => t.SymbolicName == "CustomAction:Wix4CustomArmAction_X86").FirstOrDefault()); | ||
31 | Assert.NotNull(simpleReferences.Where(t => t.SymbolicName == "CustomAction:Wix4CustomArmAction_A64").FirstOrDefault()); | ||
32 | Assert.NotNull(simpleReferences.Where(t => t.SymbolicName == "CustomAction:Wix4CustomAction_X86").FirstOrDefault()); | ||
33 | Assert.NotNull(simpleReferences.Where(t => t.SymbolicName == "CustomAction:Wix4CustomAction_X64").FirstOrDefault()); | ||
34 | } | ||
35 | } | ||
36 | } | ||