aboutsummaryrefslogtreecommitdiff
path: root/src/api/burn
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-05-16 16:07:43 -0500
committerSean Hall <r.sean.hall@gmail.com>2022-05-17 22:54:13 -0500
commit46fb0597d4d6192833ddcf836f4bcf6295ef0aaf (patch)
treebfe188365bb37b298c42238d39568ebfc8809dcb /src/api/burn
parent0ea53e27361cbfe664df98d717e55005f329aff1 (diff)
downloadwix-46fb0597d4d6192833ddcf836f4bcf6295ef0aaf.tar.gz
wix-46fb0597d4d6192833ddcf836f4bcf6295ef0aaf.tar.bz2
wix-46fb0597d4d6192833ddcf836f4bcf6295ef0aaf.zip
Keep track of when parts of verutil/WixVersions are missing.
Return null when WixVersion.TryParse returns false. 6776
Diffstat (limited to 'src/api/burn')
-rw-r--r--src/api/burn/WixToolset.Mba.Core/VerUtil.cs4
-rw-r--r--src/api/burn/WixToolset.Mba.Core/VerUtilVersion.cs24
-rw-r--r--src/api/burn/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs8
3 files changed, 36 insertions, 0 deletions
diff --git a/src/api/burn/WixToolset.Mba.Core/VerUtil.cs b/src/api/burn/WixToolset.Mba.Core/VerUtil.cs
index 611f9710..14552310 100644
--- a/src/api/burn/WixToolset.Mba.Core/VerUtil.cs
+++ b/src/api/burn/WixToolset.Mba.Core/VerUtil.cs
@@ -68,6 +68,10 @@ namespace WixToolset.Mba.Core
68 public IntPtr rgReleaseLabels; 68 public IntPtr rgReleaseLabels;
69 public IntPtr cchMetadataOffset; 69 public IntPtr cchMetadataOffset;
70 public bool fInvalid; 70 public bool fInvalid;
71 public bool fHasMajor;
72 public bool fHasMinor;
73 public bool fHasPatch;
74 public bool fHasRevision;
71 } 75 }
72 76
73 internal static string VersionStringFromOffset(IntPtr wzVersion, IntPtr cchOffset, int? cchLength = null) 77 internal static string VersionStringFromOffset(IntPtr wzVersion, IntPtr cchOffset, int? cchLength = null)
diff --git a/src/api/burn/WixToolset.Mba.Core/VerUtilVersion.cs b/src/api/burn/WixToolset.Mba.Core/VerUtilVersion.cs
index 731dedaf..e0312474 100644
--- a/src/api/burn/WixToolset.Mba.Core/VerUtilVersion.cs
+++ b/src/api/burn/WixToolset.Mba.Core/VerUtilVersion.cs
@@ -25,6 +25,10 @@ namespace WixToolset.Mba.Core
25 this.ReleaseLabels = new VerUtilVersionReleaseLabel[version.cReleaseLabels]; 25 this.ReleaseLabels = new VerUtilVersionReleaseLabel[version.cReleaseLabels];
26 this.Metadata = VerUtil.VersionStringFromOffset(version.sczVersion, version.cchMetadataOffset); 26 this.Metadata = VerUtil.VersionStringFromOffset(version.sczVersion, version.cchMetadataOffset);
27 this.IsInvalid = version.fInvalid; 27 this.IsInvalid = version.fInvalid;
28 this.HasMajor = version.fHasMajor;
29 this.HasMinor = version.fHasMinor;
30 this.HasPatch = version.fHasPatch;
31 this.HasRevision = version.fHasRevision;
28 32
29 for (var i = 0; i < version.cReleaseLabels; ++i) 33 for (var i = 0; i < version.cReleaseLabels; ++i)
30 { 34 {
@@ -80,6 +84,26 @@ namespace WixToolset.Mba.Core
80 /// </summary> 84 /// </summary>
81 public bool IsInvalid { get; private set; } 85 public bool IsInvalid { get; private set; }
82 86
87 /// <summary>
88 /// Whether the Major part was specified.
89 /// </summary>
90 public bool HasMajor { get; private set; }
91
92 /// <summary>
93 /// Whether the Minor part was specified.
94 /// </summary>
95 public bool HasMinor { get; private set; }
96
97 /// <summary>
98 /// Whether the Patch part was specified.
99 /// </summary>
100 public bool HasPatch { get; private set; }
101
102 /// <summary>
103 /// Whether the Revision part was specified.
104 /// </summary>
105 public bool HasRevision { get; private set; }
106
83 /// <inheritdoc/> 107 /// <inheritdoc/>
84 public void Dispose() 108 public void Dispose()
85 { 109 {
diff --git a/src/api/burn/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs b/src/api/burn/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs
index ceb1b12a..6fb8aced 100644
--- a/src/api/burn/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs
+++ b/src/api/burn/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs
@@ -57,6 +57,10 @@ namespace WixToolsetTest.Mba.Core
57 Assert.Empty(parsedVersion.ReleaseLabels); 57 Assert.Empty(parsedVersion.ReleaseLabels);
58 Assert.Equal("", parsedVersion.Metadata); 58 Assert.Equal("", parsedVersion.Metadata);
59 Assert.False(parsedVersion.IsInvalid); 59 Assert.False(parsedVersion.IsInvalid);
60 Assert.True(parsedVersion.HasMajor);
61 Assert.True(parsedVersion.HasMinor);
62 Assert.True(parsedVersion.HasPatch);
63 Assert.True(parsedVersion.HasRevision);
60 } 64 }
61 65
62 [Fact] 66 [Fact]
@@ -74,6 +78,10 @@ namespace WixToolsetTest.Mba.Core
74 Assert.Equal(5, parsedVersion.ReleaseLabels.Length); 78 Assert.Equal(5, parsedVersion.ReleaseLabels.Length);
75 Assert.Equal("+abc123", parsedVersion.Metadata); 79 Assert.Equal("+abc123", parsedVersion.Metadata);
76 Assert.True(parsedVersion.IsInvalid); 80 Assert.True(parsedVersion.IsInvalid);
81 Assert.True(parsedVersion.HasMajor);
82 Assert.True(parsedVersion.HasMinor);
83 Assert.True(parsedVersion.HasPatch);
84 Assert.True(parsedVersion.HasRevision);
77 85
78 Assert.Equal("a", parsedVersion.ReleaseLabels[0].Label); 86 Assert.Equal("a", parsedVersion.ReleaseLabels[0].Label);
79 Assert.False(parsedVersion.ReleaseLabels[0].IsNumeric); 87 Assert.False(parsedVersion.ReleaseLabels[0].IsNumeric);