diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2020-10-17 19:12:21 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2020-10-24 20:07:21 -0500 |
commit | 273c69f34311f4f4e5f6b5896e71d0788f12d96a (patch) | |
tree | 4cf8f42f3ecfa9341a41686b74aa5e48068ede87 /src/test | |
parent | 3f8e35223216ebbe7f6683a5031a5a97bbc66d5a (diff) | |
download | wix-273c69f34311f4f4e5f6b5896e71d0788f12d96a.tar.gz wix-273c69f34311f4f4e5f6b5896e71d0788f12d96a.tar.bz2 wix-273c69f34311f4f4e5f6b5896e71d0788f12d96a.zip |
WIXFEAT:6210 Change data type of versions to strings.
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/BurnUnitTest/BurnUnitTest.vcxproj | 4 | ||||
-rw-r--r-- | src/test/BurnUnitTest/SearchTest.cpp | 17 | ||||
-rw-r--r-- | src/test/BurnUnitTest/VariableHelpers.cpp | 34 | ||||
-rw-r--r-- | src/test/BurnUnitTest/VariableHelpers.h | 4 | ||||
-rw-r--r-- | src/test/BurnUnitTest/VariableTest.cpp | 32 | ||||
-rw-r--r-- | src/test/BurnUnitTest/VariantTest.cpp | 52 | ||||
-rw-r--r-- | src/test/BurnUnitTest/packages.config | 2 | ||||
-rw-r--r-- | src/test/BurnUnitTest/precomp.h | 1 |
8 files changed, 95 insertions, 51 deletions
diff --git a/src/test/BurnUnitTest/BurnUnitTest.vcxproj b/src/test/BurnUnitTest/BurnUnitTest.vcxproj index fda7cb7b..cc19fa60 100644 --- a/src/test/BurnUnitTest/BurnUnitTest.vcxproj +++ b/src/test/BurnUnitTest/BurnUnitTest.vcxproj | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | 5 | <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
6 | <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.40\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.40\build\WixBuildTools.TestSupport.Native.props')" /> | 6 | <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.40\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.40\build\WixBuildTools.TestSupport.Native.props')" /> |
7 | <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.49\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.49\build\WixToolset.DUtil.props')" /> | 7 | <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" /> |
8 | <ItemGroup Label="ProjectConfigurations"> | 8 | <ItemGroup Label="ProjectConfigurations"> |
9 | <ProjectConfiguration Include="Debug|Win32"> | 9 | <ProjectConfiguration Include="Debug|Win32"> |
10 | <Configuration>Debug</Configuration> | 10 | <Configuration>Debug</Configuration> |
@@ -80,6 +80,6 @@ | |||
80 | </PropertyGroup> | 80 | </PropertyGroup> |
81 | <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.40\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.40\build\WixBuildTools.TestSupport.Native.props'))" /> | 81 | <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.40\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.40\build\WixBuildTools.TestSupport.Native.props'))" /> |
82 | <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.40\build\WixBuildTools.TestSupport.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.40\build\WixBuildTools.TestSupport.Native.targets'))" /> | 82 | <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.40\build\WixBuildTools.TestSupport.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.40\build\WixBuildTools.TestSupport.Native.targets'))" /> |
83 | <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.49\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.49\build\WixToolset.DUtil.props'))" /> | 83 | <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props'))" /> |
84 | </Target> | 84 | </Target> |
85 | </Project> | 85 | </Project> |
diff --git a/src/test/BurnUnitTest/SearchTest.cpp b/src/test/BurnUnitTest/SearchTest.cpp index 32107d87..d868190d 100644 --- a/src/test/BurnUnitTest/SearchTest.cpp +++ b/src/test/BurnUnitTest/SearchTest.cpp | |||
@@ -106,6 +106,7 @@ namespace Bootstrapper | |||
106 | BURN_SEARCHES searches = { }; | 106 | BURN_SEARCHES searches = { }; |
107 | BURN_EXTENSIONS burnExtensions = { }; | 107 | BURN_EXTENSIONS burnExtensions = { }; |
108 | ULARGE_INTEGER uliVersion = { }; | 108 | ULARGE_INTEGER uliVersion = { }; |
109 | VERUTIL_VERSION* pVersion = NULL; | ||
109 | try | 110 | try |
110 | { | 111 | { |
111 | hr = VariableInitialize(&variables); | 112 | hr = VariableInitialize(&variables); |
@@ -117,6 +118,9 @@ namespace Bootstrapper | |||
117 | hr = FileVersion(wzFile2, &uliVersion.HighPart, &uliVersion.LowPart); | 118 | hr = FileVersion(wzFile2, &uliVersion.HighPart, &uliVersion.LowPart); |
118 | TestThrowOnFailure(hr, L"Failed to get DLL version."); | 119 | TestThrowOnFailure(hr, L"Failed to get DLL version."); |
119 | 120 | ||
121 | hr = VerVersionFromQword(uliVersion.QuadPart, &pVersion); | ||
122 | NativeAssert::Succeeded(hr, "Failed to create version."); | ||
123 | |||
120 | VariableSetStringHelper(&variables, L"File1", wzFile1, FALSE); | 124 | VariableSetStringHelper(&variables, L"File1", wzFile1, FALSE); |
121 | VariableSetStringHelper(&variables, L"File2", wzFile2, FALSE); | 125 | VariableSetStringHelper(&variables, L"File2", wzFile2, FALSE); |
122 | 126 | ||
@@ -140,10 +144,11 @@ namespace Bootstrapper | |||
140 | // check variable values | 144 | // check variable values |
141 | Assert::Equal(0ll, VariableGetNumericHelper(&variables, L"Variable1")); | 145 | Assert::Equal(0ll, VariableGetNumericHelper(&variables, L"Variable1")); |
142 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable2")); | 146 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable2")); |
143 | Assert::Equal(uliVersion.QuadPart, VariableGetVersionHelper(&variables, L"Variable3")); | 147 | Assert::Equal<String^>(gcnew String(pVersion->sczVersion), VariableGetVersionHelper(&variables, L"Variable3")); |
144 | } | 148 | } |
145 | finally | 149 | finally |
146 | { | 150 | { |
151 | ReleaseVerutilVersion(pVersion); | ||
147 | ReleaseObject(pixeBundle); | 152 | ReleaseObject(pixeBundle); |
148 | VariablesUninitialize(&variables); | 153 | VariablesUninitialize(&variables); |
149 | SearchesUninitialize(&searches); | 154 | SearchesUninitialize(&searches); |
@@ -247,8 +252,8 @@ namespace Bootstrapper | |||
247 | Assert::NotEqual(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable10")); | 252 | Assert::NotEqual(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable10")); |
248 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable11")); | 253 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable11")); |
249 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable12")); | 254 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable12")); |
250 | Assert::Equal(MAKEQWORDVERSION(1,1,1,1), VariableGetVersionHelper(&variables, L"Variable13")); | 255 | Assert::Equal<String^>(gcnew String(L"1.1.1.1"), VariableGetVersionHelper(&variables, L"Variable13")); |
251 | Assert::Equal(MAKEQWORDVERSION(1,1,1,1), VariableGetVersionHelper(&variables, L"Variable14")); | 256 | Assert::Equal<String^>(gcnew String(L"1.1.1.1"), VariableGetVersionHelper(&variables, L"Variable14")); |
252 | Assert::Equal<String^>(gcnew String(L"String1"), VariableGetStringHelper(&variables, L"Variable15")); | 257 | Assert::Equal<String^>(gcnew String(L"String1"), VariableGetStringHelper(&variables, L"Variable15")); |
253 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable16")); | 258 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable16")); |
254 | Assert::False(VariableExistsHelper(&variables, L"Variable17")); | 259 | Assert::False(VariableExistsHelper(&variables, L"Variable17")); |
@@ -401,11 +406,11 @@ namespace Bootstrapper | |||
401 | 406 | ||
402 | // check variable values | 407 | // check variable values |
403 | Assert::Equal(2ll, VariableGetNumericHelper(&variables, L"Variable1")); | 408 | Assert::Equal(2ll, VariableGetNumericHelper(&variables, L"Variable1")); |
404 | Assert::Equal(MAKEQWORDVERSION(1,0,0,0), VariableGetVersionHelper(&variables, L"Variable2")); | 409 | Assert::Equal<String^>(gcnew String(L"1.0.0.0"), VariableGetVersionHelper(&variables, L"Variable2")); |
405 | Assert::Equal(1033ll, VariableGetNumericHelper(&variables, L"Variable3")); | 410 | Assert::Equal(1033ll, VariableGetNumericHelper(&variables, L"Variable3")); |
406 | Assert::Equal(5ll, VariableGetNumericHelper(&variables, L"Variable4")); | 411 | Assert::Equal(5ll, VariableGetNumericHelper(&variables, L"Variable4")); |
407 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable5")); | 412 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable5")); |
408 | Assert::Equal(MAKEQWORDVERSION(1,0,0,0), VariableGetVersionHelper(&variables, L"Variable6")); | 413 | Assert::Equal<String^>(gcnew String(L"1.0.0.0"), VariableGetVersionHelper(&variables, L"Variable6")); |
409 | } | 414 | } |
410 | finally | 415 | finally |
411 | { | 416 | { |
@@ -581,7 +586,7 @@ namespace Bootstrapper | |||
581 | Assert::Equal<String^>(gcnew String(L"VAL5"), VariableGetStringHelper(&variables, L"PROP5")); | 586 | Assert::Equal<String^>(gcnew String(L"VAL5"), VariableGetStringHelper(&variables, L"PROP5")); |
582 | Assert::Equal<String^>(gcnew String(L"VAL6"), VariableGetStringHelper(&variables, L"PROP6")); | 587 | Assert::Equal<String^>(gcnew String(L"VAL6"), VariableGetStringHelper(&variables, L"PROP6")); |
583 | Assert::Equal(7ll, VariableGetNumericHelper(&variables, L"PROP7")); | 588 | Assert::Equal(7ll, VariableGetNumericHelper(&variables, L"PROP7")); |
584 | Assert::Equal(MAKEQWORDVERSION(1, 1, 0, 0), VariableGetVersionHelper(&variables, L"PROP8")); | 589 | Assert::Equal<String^>(gcnew String(L"1.1.0.0"), VariableGetVersionHelper(&variables, L"PROP8")); |
585 | Assert::Equal<String^>(gcnew String(L"1.1.0.0"), VariableGetStringHelper(&variables, L"PROP8")); | 590 | Assert::Equal<String^>(gcnew String(L"1.1.0.0"), VariableGetStringHelper(&variables, L"PROP8")); |
586 | Assert::Equal<String^>(gcnew String(L"[VAL9]"), VariableGetStringHelper(&variables, L"PROP9")); | 591 | Assert::Equal<String^>(gcnew String(L"[VAL9]"), VariableGetStringHelper(&variables, L"PROP9")); |
587 | 592 | ||
diff --git a/src/test/BurnUnitTest/VariableHelpers.cpp b/src/test/BurnUnitTest/VariableHelpers.cpp index fdfb9191..99ba492a 100644 --- a/src/test/BurnUnitTest/VariableHelpers.cpp +++ b/src/test/BurnUnitTest/VariableHelpers.cpp | |||
@@ -33,12 +33,23 @@ namespace Bootstrapper | |||
33 | TestThrowOnFailure2(hr, L"Failed to set %s to: %I64d", wzVariable, llValue); | 33 | TestThrowOnFailure2(hr, L"Failed to set %s to: %I64d", wzVariable, llValue); |
34 | } | 34 | } |
35 | 35 | ||
36 | void VariableSetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable, DWORD64 qwValue) | 36 | void VariableSetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable, LPCWSTR wzValue) |
37 | { | 37 | { |
38 | HRESULT hr = S_OK; | 38 | HRESULT hr = S_OK; |
39 | VERUTIL_VERSION* pVersion = NULL; | ||
39 | 40 | ||
40 | hr = VariableSetVersion(pVariables, wzVariable, qwValue, FALSE); | 41 | try |
41 | TestThrowOnFailure2(hr, L"Failed to set %s to: 0x%016I64x", wzVariable, qwValue); | 42 | { |
43 | hr = VerParseVersion(wzValue, 0, FALSE, &pVersion); | ||
44 | TestThrowOnFailure1(hr, L"Failed to parse version '%ls'", wzValue); | ||
45 | |||
46 | hr = VariableSetVersion(pVariables, wzVariable, pVersion, FALSE); | ||
47 | TestThrowOnFailure2(hr, L"Failed to set %s to: '%ls'", wzVariable, wzValue); | ||
48 | } | ||
49 | finally | ||
50 | { | ||
51 | ReleaseVerutilVersion(pVersion); | ||
52 | } | ||
42 | } | 53 | } |
43 | 54 | ||
44 | String^ VariableGetStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable) | 55 | String^ VariableGetStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable) |
@@ -69,15 +80,22 @@ namespace Bootstrapper | |||
69 | return llValue; | 80 | return llValue; |
70 | } | 81 | } |
71 | 82 | ||
72 | unsigned __int64 VariableGetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable) | 83 | String^ VariableGetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable) |
73 | { | 84 | { |
74 | HRESULT hr = S_OK; | 85 | HRESULT hr = S_OK; |
75 | DWORD64 qwValue = 0; | 86 | VERUTIL_VERSION* pValue = NULL; |
76 | 87 | ||
77 | hr = VariableGetVersion(pVariables, wzVariable, &qwValue); | 88 | try |
78 | TestThrowOnFailure1(hr, L"Failed to get: %s", wzVariable); | 89 | { |
90 | hr = VariableGetVersion(pVariables, wzVariable, &pValue); | ||
91 | TestThrowOnFailure1(hr, L"Failed to get: %s", wzVariable); | ||
79 | 92 | ||
80 | return qwValue; | 93 | return gcnew String(pValue->sczVersion); |
94 | } | ||
95 | finally | ||
96 | { | ||
97 | ReleaseVerutilVersion(pValue); | ||
98 | } | ||
81 | } | 99 | } |
82 | 100 | ||
83 | String^ VariableGetFormattedHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable) | 101 | String^ VariableGetFormattedHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable) |
diff --git a/src/test/BurnUnitTest/VariableHelpers.h b/src/test/BurnUnitTest/VariableHelpers.h index 8c2b081a..96122219 100644 --- a/src/test/BurnUnitTest/VariableHelpers.h +++ b/src/test/BurnUnitTest/VariableHelpers.h | |||
@@ -16,10 +16,10 @@ namespace Bootstrapper | |||
16 | 16 | ||
17 | void VariableSetStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable, LPCWSTR wzValue, BOOL fFormatted); | 17 | void VariableSetStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable, LPCWSTR wzValue, BOOL fFormatted); |
18 | void VariableSetNumericHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable, LONGLONG llValue); | 18 | void VariableSetNumericHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable, LONGLONG llValue); |
19 | void VariableSetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable, DWORD64 qwValue); | 19 | void VariableSetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable, LPCWSTR wzValue); |
20 | System::String^ VariableGetStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); | 20 | System::String^ VariableGetStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); |
21 | __int64 VariableGetNumericHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); | 21 | __int64 VariableGetNumericHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); |
22 | unsigned __int64 VariableGetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); | 22 | System::String^ VariableGetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); |
23 | System::String^ VariableGetFormattedHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); | 23 | System::String^ VariableGetFormattedHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); |
24 | System::String^ VariableFormatStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzIn); | 24 | System::String^ VariableFormatStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzIn); |
25 | System::String^ VariableEscapeStringHelper(LPCWSTR wzIn); | 25 | System::String^ VariableEscapeStringHelper(LPCWSTR wzIn); |
diff --git a/src/test/BurnUnitTest/VariableTest.cpp b/src/test/BurnUnitTest/VariableTest.cpp index 0b49a530..405c8fab 100644 --- a/src/test/BurnUnitTest/VariableTest.cpp +++ b/src/test/BurnUnitTest/VariableTest.cpp | |||
@@ -42,7 +42,7 @@ namespace Bootstrapper | |||
42 | VariableSetStringHelper(&variables, L"PROP4", L"VAL4", FALSE); | 42 | VariableSetStringHelper(&variables, L"PROP4", L"VAL4", FALSE); |
43 | VariableSetStringHelper(&variables, L"PROP6", L"VAL6", FALSE); | 43 | VariableSetStringHelper(&variables, L"PROP6", L"VAL6", FALSE); |
44 | VariableSetStringHelper(&variables, L"PROP7", L"7", FALSE); | 44 | VariableSetStringHelper(&variables, L"PROP7", L"7", FALSE); |
45 | VariableSetVersionHelper(&variables, L"PROP8", MAKEQWORDVERSION(1,1,0,0)); | 45 | VariableSetVersionHelper(&variables, L"PROP8", L"1.1.0.0"); |
46 | VariableSetStringHelper(&variables, L"PROP9", L"[VAL9]", TRUE); | 46 | VariableSetStringHelper(&variables, L"PROP9", L"[VAL9]", TRUE); |
47 | 47 | ||
48 | // set overwritten variables | 48 | // set overwritten variables |
@@ -61,7 +61,7 @@ namespace Bootstrapper | |||
61 | Assert::Equal<String^>(gcnew String(L"VAL5"), VariableGetStringHelper(&variables, L"PROP5")); | 61 | Assert::Equal<String^>(gcnew String(L"VAL5"), VariableGetStringHelper(&variables, L"PROP5")); |
62 | Assert::Equal<String^>(gcnew String(L"VAL6"), VariableGetStringHelper(&variables, L"PROP6")); | 62 | Assert::Equal<String^>(gcnew String(L"VAL6"), VariableGetStringHelper(&variables, L"PROP6")); |
63 | Assert::Equal(7ll, VariableGetNumericHelper(&variables, L"PROP7")); | 63 | Assert::Equal(7ll, VariableGetNumericHelper(&variables, L"PROP7")); |
64 | Assert::Equal(MAKEQWORDVERSION(1,1,0,0), VariableGetVersionHelper(&variables, L"PROP8")); | 64 | Assert::Equal<String^>(gcnew String(L"1.1.0.0"), VariableGetVersionHelper(&variables, L"PROP8")); |
65 | Assert::Equal<String^>(gcnew String(L"1.1.0.0"), VariableGetStringHelper(&variables, L"PROP8")); | 65 | Assert::Equal<String^>(gcnew String(L"1.1.0.0"), VariableGetStringHelper(&variables, L"PROP8")); |
66 | Assert::Equal<String^>(gcnew String(L"[VAL9]"), VariableGetStringHelper(&variables, L"PROP9")); | 66 | Assert::Equal<String^>(gcnew String(L"[VAL9]"), VariableGetStringHelper(&variables, L"PROP9")); |
67 | 67 | ||
@@ -110,7 +110,7 @@ namespace Bootstrapper | |||
110 | 110 | ||
111 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Var1")); | 111 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Var1")); |
112 | Assert::Equal<String^>(gcnew String(L"String value."), VariableGetStringHelper(&variables, L"Var2")); | 112 | Assert::Equal<String^>(gcnew String(L"String value."), VariableGetStringHelper(&variables, L"Var2")); |
113 | Assert::Equal(MAKEQWORDVERSION(1,2,3,4), VariableGetVersionHelper(&variables, L"Var3")); | 113 | Assert::Equal<String^>(gcnew String(L"1.2.3.4"), VariableGetVersionHelper(&variables, L"Var3")); |
114 | Assert::Equal<String^>(gcnew String(L"[Formatted]"), VariableGetStringHelper(&variables, L"Var6")); | 114 | Assert::Equal<String^>(gcnew String(L"[Formatted]"), VariableGetStringHelper(&variables, L"Var6")); |
115 | } | 115 | } |
116 | finally | 116 | finally |
@@ -214,13 +214,13 @@ namespace Bootstrapper | |||
214 | VariableSetNumericHelper(&variables, L"PROP13", 0x00010000); | 214 | VariableSetNumericHelper(&variables, L"PROP13", 0x00010000); |
215 | VariableSetNumericHelper(&variables, L"PROP14", 0x00000001); | 215 | VariableSetNumericHelper(&variables, L"PROP14", 0x00000001); |
216 | VariableSetNumericHelper(&variables, L"PROP15", 0x00010001); | 216 | VariableSetNumericHelper(&variables, L"PROP15", 0x00010001); |
217 | VariableSetVersionHelper(&variables, L"PROP16", MAKEQWORDVERSION(0,0,0,0)); | 217 | VariableSetVersionHelper(&variables, L"PROP16", L"0.0.0.0"); |
218 | VariableSetVersionHelper(&variables, L"PROP17", MAKEQWORDVERSION(1,0,0,0)); | 218 | VariableSetVersionHelper(&variables, L"PROP17", L"1.0.0.0"); |
219 | VariableSetVersionHelper(&variables, L"PROP18", MAKEQWORDVERSION(1,1,0,0)); | 219 | VariableSetVersionHelper(&variables, L"PROP18", L"1.1.0.0"); |
220 | VariableSetVersionHelper(&variables, L"PROP19", MAKEQWORDVERSION(1,1,1,0)); | 220 | VariableSetVersionHelper(&variables, L"PROP19", L"1.1.1.0"); |
221 | VariableSetVersionHelper(&variables, L"PROP20", MAKEQWORDVERSION(1,1,1,1)); | 221 | VariableSetVersionHelper(&variables, L"PROP20", L"1.1.1.1"); |
222 | VariableSetNumericHelper(&variables, L"vPROP21", 1); | 222 | VariableSetNumericHelper(&variables, L"vPROP21", 1); |
223 | VariableSetVersionHelper(&variables, L"PROP22", MAKEQWORDVERSION(65535,65535,65535,65535)); | 223 | VariableSetVersionHelper(&variables, L"PROP22", L"65535.65535.65535.65535"); |
224 | VariableSetStringHelper(&variables, L"PROP23", L"1.1.1", FALSE); | 224 | VariableSetStringHelper(&variables, L"PROP23", L"1.1.1", FALSE); |
225 | VariableSetStringHelper(&variables, L"PROP24", L"[PROP1]", TRUE); | 225 | VariableSetStringHelper(&variables, L"PROP24", L"[PROP1]", TRUE); |
226 | VariableSetStringHelper(&variables, L"PROP25", L"[PROP7]", TRUE); | 226 | VariableSetStringHelper(&variables, L"PROP25", L"[PROP7]", TRUE); |
@@ -233,7 +233,7 @@ namespace Bootstrapper | |||
233 | Assert::False(EvaluateConditionHelper(&variables, L"PROP7")); | 233 | Assert::False(EvaluateConditionHelper(&variables, L"PROP7")); |
234 | Assert::False(EvaluateConditionHelper(&variables, L"PROP8")); | 234 | Assert::False(EvaluateConditionHelper(&variables, L"PROP8")); |
235 | Assert::True(EvaluateConditionHelper(&variables, L"_PROP9")); | 235 | Assert::True(EvaluateConditionHelper(&variables, L"_PROP9")); |
236 | Assert::False(EvaluateConditionHelper(&variables, L"PROP16")); | 236 | Assert::True(EvaluateConditionHelper(&variables, L"PROP16")); |
237 | Assert::True(EvaluateConditionHelper(&variables, L"PROP17")); | 237 | Assert::True(EvaluateConditionHelper(&variables, L"PROP17")); |
238 | Assert::True(EvaluateConditionHelper(&variables, L"PROP24")); | 238 | Assert::True(EvaluateConditionHelper(&variables, L"PROP24")); |
239 | Assert::True(EvaluateConditionHelper(&variables, L"PROP25")); | 239 | Assert::True(EvaluateConditionHelper(&variables, L"PROP25")); |
@@ -268,8 +268,8 @@ namespace Bootstrapper | |||
268 | Assert::True(EvaluateConditionHelper(&variables, L"PROP18 = v1.1")); | 268 | Assert::True(EvaluateConditionHelper(&variables, L"PROP18 = v1.1")); |
269 | Assert::True(EvaluateConditionHelper(&variables, L"PROP19 = v1.1.1")); | 269 | Assert::True(EvaluateConditionHelper(&variables, L"PROP19 = v1.1.1")); |
270 | Assert::True(EvaluateConditionHelper(&variables, L"PROP20 = v1.1.1.1")); | 270 | Assert::True(EvaluateConditionHelper(&variables, L"PROP20 = v1.1.1.1")); |
271 | Assert::True(EvaluateFailureConditionHelper(&variables, L"PROP20 = v1.1.1.1.0")); | 271 | Assert::True(EvaluateConditionHelper(&variables, L"PROP20 > v1.1.1.1.0")); |
272 | Assert::True(EvaluateFailureConditionHelper(&variables, L"PROP20 = v1.1.1.1.1")); | 272 | Assert::True(EvaluateConditionHelper(&variables, L"PROP20 > v1.1.1.1.1")); |
273 | Assert::True(EvaluateConditionHelper(&variables, L"vPROP21 = 1")); | 273 | Assert::True(EvaluateConditionHelper(&variables, L"vPROP21 = 1")); |
274 | Assert::True(EvaluateConditionHelper(&variables, L"PROP23 = v1.1.1")); | 274 | Assert::True(EvaluateConditionHelper(&variables, L"PROP23 = v1.1.1")); |
275 | Assert::True(EvaluateConditionHelper(&variables, L"v1.1.1 = PROP23")); | 275 | Assert::True(EvaluateConditionHelper(&variables, L"v1.1.1 = PROP23")); |
@@ -287,8 +287,8 @@ namespace Bootstrapper | |||
287 | Assert::True(EvaluateFailureConditionHelper(&variables, L"PROP12 = -92233720368547758080000")); | 287 | Assert::True(EvaluateFailureConditionHelper(&variables, L"PROP12 = -92233720368547758080000")); |
288 | 288 | ||
289 | Assert::True(EvaluateConditionHelper(&variables, L"PROP22 = v65535.65535.65535.65535")); | 289 | Assert::True(EvaluateConditionHelper(&variables, L"PROP22 = v65535.65535.65535.65535")); |
290 | Assert::True(EvaluateFailureConditionHelper(&variables, L"PROP22 = v65536.65535.65535.65535")); | 290 | Assert::True(EvaluateConditionHelper(&variables, L"PROP22 < v65536.65535.65535.65535")); |
291 | Assert::True(EvaluateFailureConditionHelper(&variables, L"PROP22 = v65535.655350000.65535.65535")); | 291 | Assert::True(EvaluateConditionHelper(&variables, L"PROP22 < v65535.655350000.65535.65535")); |
292 | 292 | ||
293 | Assert::True(EvaluateConditionHelper(&variables, L"PROP5 < 6")); | 293 | Assert::True(EvaluateConditionHelper(&variables, L"PROP5 < 6")); |
294 | Assert::False(EvaluateConditionHelper(&variables, L"PROP5 < 5")); | 294 | Assert::False(EvaluateConditionHelper(&variables, L"PROP5 < 5")); |
@@ -388,7 +388,7 @@ namespace Bootstrapper | |||
388 | 388 | ||
389 | VariableSetStringHelper(&variables1, L"PROP1", L"VAL1", FALSE); | 389 | VariableSetStringHelper(&variables1, L"PROP1", L"VAL1", FALSE); |
390 | VariableSetNumericHelper(&variables1, L"PROP2", 2); | 390 | VariableSetNumericHelper(&variables1, L"PROP2", 2); |
391 | VariableSetVersionHelper(&variables1, L"PROP3", MAKEQWORDVERSION(1,1,1,1)); | 391 | VariableSetVersionHelper(&variables1, L"PROP3", L"1.1.1.1"); |
392 | VariableSetStringHelper(&variables1, L"PROP4", L"VAL4", FALSE); | 392 | VariableSetStringHelper(&variables1, L"PROP4", L"VAL4", FALSE); |
393 | VariableSetStringHelper(&variables1, L"PROP5", L"[PROP1]", TRUE); | 393 | VariableSetStringHelper(&variables1, L"PROP5", L"[PROP1]", TRUE); |
394 | 394 | ||
@@ -404,7 +404,7 @@ namespace Bootstrapper | |||
404 | 404 | ||
405 | Assert::Equal<String^>(gcnew String(L"VAL1"), VariableGetStringHelper(&variables2, L"PROP1")); | 405 | Assert::Equal<String^>(gcnew String(L"VAL1"), VariableGetStringHelper(&variables2, L"PROP1")); |
406 | Assert::Equal(2ll, VariableGetNumericHelper(&variables2, L"PROP2")); | 406 | Assert::Equal(2ll, VariableGetNumericHelper(&variables2, L"PROP2")); |
407 | Assert::Equal(MAKEQWORDVERSION(1,1,1,1), VariableGetVersionHelper(&variables2, L"PROP3")); | 407 | Assert::Equal<String^>(gcnew String(L"1.1.1.1"), VariableGetVersionHelper(&variables2, L"PROP3")); |
408 | Assert::Equal<String^>(gcnew String(L"VAL4"), VariableGetStringHelper(&variables2, L"PROP4")); | 408 | Assert::Equal<String^>(gcnew String(L"VAL4"), VariableGetStringHelper(&variables2, L"PROP4")); |
409 | Assert::Equal<String^>(gcnew String(L"[PROP1]"), VariableGetStringHelper(&variables2, L"PROP5")); | 409 | Assert::Equal<String^>(gcnew String(L"[PROP1]"), VariableGetStringHelper(&variables2, L"PROP5")); |
410 | 410 | ||
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 | } |
diff --git a/src/test/BurnUnitTest/packages.config b/src/test/BurnUnitTest/packages.config index e537bcdb..74f2523f 100644 --- a/src/test/BurnUnitTest/packages.config +++ b/src/test/BurnUnitTest/packages.config | |||
@@ -9,5 +9,5 @@ | |||
9 | <package id="xunit.runner.visualstudio" version="2.4.1" /> | 9 | <package id="xunit.runner.visualstudio" version="2.4.1" /> |
10 | <package id="WixBuildTools.TestSupport" version="4.0.40" /> | 10 | <package id="WixBuildTools.TestSupport" version="4.0.40" /> |
11 | <package id="WixBuildTools.TestSupport.Native" version="4.0.40" /> | 11 | <package id="WixBuildTools.TestSupport.Native" version="4.0.40" /> |
12 | <package id="WixToolset.DUtil" version="4.0.49" targetFramework="native" /> | 12 | <package id="WixToolset.DUtil" version="4.0.55" targetFramework="native" /> |
13 | </packages> \ No newline at end of file | 13 | </packages> \ No newline at end of file |
diff --git a/src/test/BurnUnitTest/precomp.h b/src/test/BurnUnitTest/precomp.h index e288eb3e..fea30156 100644 --- a/src/test/BurnUnitTest/precomp.h +++ b/src/test/BurnUnitTest/precomp.h | |||
@@ -13,6 +13,7 @@ | |||
13 | #include "wininet.h" | 13 | #include "wininet.h" |
14 | 14 | ||
15 | #include <dutil.h> | 15 | #include <dutil.h> |
16 | #include <verutil.h> | ||
16 | #include <cryputil.h> | 17 | #include <cryputil.h> |
17 | #include <dlutil.h> | 18 | #include <dlutil.h> |
18 | #include <buffutil.h> | 19 | #include <buffutil.h> |