aboutsummaryrefslogtreecommitdiff
path: root/src/test/BurnUnitTest/VariantTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/test/BurnUnitTest/VariantTest.cpp52
1 files changed, 36 insertions, 16 deletions
diff --git a/src/test/BurnUnitTest/VariantTest.cpp b/src/test/BurnUnitTest/VariantTest.cpp
index c982db72..34328f53 100644
--- a/src/test/BurnUnitTest/VariantTest.cpp
+++ b/src/test/BurnUnitTest/VariantTest.cpp
@@ -37,10 +37,10 @@ namespace Bootstrapper
37 { 37 {
38 InitNumericValue(expectedVariants + 0, 2, FALSE, L"PROP1", actualVariants + 0); 38 InitNumericValue(expectedVariants + 0, 2, FALSE, L"PROP1", actualVariants + 0);
39 InitStringValue(expectedVariants + 1, L"VAL2", FALSE, L"PROP2", actualVariants + 1); 39 InitStringValue(expectedVariants + 1, L"VAL2", FALSE, L"PROP2", actualVariants + 1);
40 InitVersionValue(expectedVariants + 2, MAKEQWORDVERSION(1, 1, 0, 0), FALSE, L"PROP3", actualVariants + 2); 40 InitVersionValue(expectedVariants + 2, L"1.1.0.0", FALSE, L"PROP3", actualVariants + 2);
41 InitNoneValue(expectedVariants + 3, FALSE, L"PROP4", actualVariants + 3); 41 InitNoneValue(expectedVariants + 3, FALSE, L"PROP4", actualVariants + 3);
42 InitNoneValue(expectedVariants + 4, TRUE, L"PROP5", actualVariants + 4); 42 InitNoneValue(expectedVariants + 4, TRUE, L"PROP5", actualVariants + 4);
43 InitVersionValue(expectedVariants + 5, MAKEQWORDVERSION(1, 1, 1, 0), TRUE, L"PROP6", actualVariants + 5); 43 InitVersionValue(expectedVariants + 5, L"1.1.1.0", TRUE, L"PROP6", actualVariants + 5);
44 InitStringValue(expectedVariants + 6, L"7", TRUE, L"PROP7", actualVariants + 6); 44 InitStringValue(expectedVariants + 6, L"7", TRUE, L"PROP7", actualVariants + 6);
45 InitNumericValue(expectedVariants + 7, 11, TRUE, L"PROP8", actualVariants + 7); 45 InitNumericValue(expectedVariants + 7, 11, TRUE, L"PROP8", actualVariants + 7);
46 InitFormattedValue(expectedVariants + 8, L"VAL9", FALSE, L"PROP9", actualVariants + 8); 46 InitFormattedValue(expectedVariants + 8, L"VAL9", FALSE, L"PROP9", actualVariants + 8);
@@ -143,21 +143,34 @@ namespace Bootstrapper
143 } 143 }
144 } 144 }
145 145
146 void InitVersionValue(BURN_VARIANT* pValue, DWORD64 qwValue, BOOL fHidden, LPCWSTR wz, BURN_VARIANT* pActualValue) 146 void InitVersionValue(BURN_VARIANT* pValue, LPCWSTR wzValue, BOOL fHidden, LPCWSTR wz, BURN_VARIANT* pActualValue)
147 { 147 {
148 HRESULT hr = S_OK; 148 HRESULT hr = S_OK;
149 pValue->Type = BURN_VARIANT_TYPE_VERSION; 149 VERUTIL_VERSION* pVersion = NULL;
150 pValue->qwValue = qwValue;
151 150
152 hr = BVariantCopy(pValue, pActualValue); 151 try
153 NativeAssert::Succeeded(hr, "Failed to copy variant {0}", wz);
154
155 if (fHidden)
156 { 152 {
157 hr = BVariantSetEncryption(pActualValue, TRUE); 153 hr = VerParseVersion(wzValue, 0, FALSE, &pVersion);
158 NativeAssert::Succeeded(hr, "Failed to encrypt variant {0}", wz); 154 NativeAssert::Succeeded(hr, "Failed to parse version {0}", wzValue);
159 155
160 NativeAssert::True(pActualValue->fEncryptString); 156 pValue->Type = BURN_VARIANT_TYPE_VERSION;
157 pValue->pValue = pVersion;
158 pVersion = NULL;
159
160 hr = BVariantCopy(pValue, pActualValue);
161 NativeAssert::Succeeded(hr, "Failed to copy variant {0}", wz);
162
163 if (fHidden)
164 {
165 hr = BVariantSetEncryption(pActualValue, TRUE);
166 NativeAssert::Succeeded(hr, "Failed to encrypt variant {0}", wz);
167
168 NativeAssert::True(pActualValue->fEncryptString);
169 }
170 }
171 finally
172 {
173 ReleaseVerutilVersion(pVersion);
161 } 174 }
162 } 175 }
163 176
@@ -224,14 +237,21 @@ namespace Bootstrapper
224 void VerifyVersionValue(BURN_VARIANT* pExpectedValue, BURN_VARIANT* pActualValue) 237 void VerifyVersionValue(BURN_VARIANT* pExpectedValue, BURN_VARIANT* pActualValue)
225 { 238 {
226 HRESULT hr = S_OK; 239 HRESULT hr = S_OK;
227 DWORD64 qwValue = 0; 240 VERUTIL_VERSION* pValue = NULL;
228 NativeAssert::Equal<DWORD>(BURN_VARIANT_TYPE_VERSION, pExpectedValue->Type); 241 NativeAssert::Equal<DWORD>(BURN_VARIANT_TYPE_VERSION, pExpectedValue->Type);
229 NativeAssert::Equal<DWORD>(BURN_VARIANT_TYPE_VERSION, pActualValue->Type); 242 NativeAssert::Equal<DWORD>(BURN_VARIANT_TYPE_VERSION, pActualValue->Type);
230 243
231 hr = BVariantGetVersion(pActualValue, &qwValue); 244 try
232 NativeAssert::Succeeded(hr, "Failed to get version value"); 245 {
246 hr = BVariantGetVersion(pActualValue, &pValue);
247 NativeAssert::Succeeded(hr, "Failed to get version value");
233 248
234 NativeAssert::Equal<DWORD64>(pExpectedValue->qwValue, qwValue); 249 NativeAssert::StringEqual(pExpectedValue->pValue->sczVersion, pActualValue->pValue->sczVersion);
250 }
251 finally
252 {
253 ReleaseVerutilVersion(pValue);
254 }
235 } 255 }
236 }; 256 };
237} 257}