diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/BurnUnitTest/VariantTest.cpp | 52 |
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 | } |