diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-02-28 18:41:14 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-03-01 11:37:00 -0600 |
| commit | 3f658fa2b4bd80619fcf89e1e87ae12b48effb7a (patch) | |
| tree | e10e352d4e5197f6dba708f098a7588ef55b78f4 /src | |
| parent | 7e61f48f6be0849cb0c0da796ec77603c14532e5 (diff) | |
| download | wix-3f658fa2b4bd80619fcf89e1e87ae12b48effb7a.tar.gz wix-3f658fa2b4bd80619fcf89e1e87ae12b48effb7a.tar.bz2 wix-3f658fa2b4bd80619fcf89e1e87ae12b48effb7a.zip | |
Fix and run Burn 64-bit unit tests.
Diffstat (limited to 'src')
| -rw-r--r-- | src/burn/burn.cmd | 3 | ||||
| -rw-r--r-- | src/burn/burn_t.proj | 1 | ||||
| -rw-r--r-- | src/burn/test/BurnUnitTest/RegistrationTest.cpp | 4 | ||||
| -rw-r--r-- | src/burn/test/BurnUnitTest/TestRegistryFixture.cpp | 208 | ||||
| -rw-r--r-- | src/burn/test/BurnUnitTest/TestRegistryFixture.h | 6 | ||||
| -rw-r--r-- | src/burn/test/BurnUnitTest/VariableTest.cpp | 8 | ||||
| -rw-r--r-- | src/internal/WixBuildTools.TestSupport.Native/build/WixBuildTools.TestSupport.Native.targets | 3 | ||||
| -rw-r--r-- | src/testresultfilelist.txt | 3 |
8 files changed, 157 insertions, 79 deletions
diff --git a/src/burn/burn.cmd b/src/burn/burn.cmd index bd872bad..60640b08 100644 --- a/src/burn/burn.cmd +++ b/src/burn/burn.cmd | |||
| @@ -15,7 +15,8 @@ nuget restore || exit /b | |||
| 15 | 15 | ||
| 16 | msbuild burn_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\burn_build.binlog || exit /b | 16 | msbuild burn_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\burn_build.binlog || exit /b |
| 17 | 17 | ||
| 18 | msbuild test\BurnUnitTest -t:Test -p:Configuration=%_C% -nologo -p:CppCliTestResultsFile="%_L%\TestResults\BurnUnitTest.xunit2.xml" || exit /b | 18 | msbuild test\BurnUnitTest -t:Test -p:Configuration=%_C% -p:Platform=Win32 -nologo -p:CppCliTestResultsFile="%_L%\TestResults\BurnUnitTest32.xunit2.xml" || exit /b |
| 19 | msbuild test\BurnUnitTest -t:Test -p:Configuration=%_C% -p:Platform=x64 -nologo -p:CppCliTestResultsFile="%_L%\TestResults\BurnUnitTest64.xunit2.xml" || exit /b | ||
| 19 | 20 | ||
| 20 | @popd | 21 | @popd |
| 21 | @endlocal | 22 | @endlocal |
diff --git a/src/burn/burn_t.proj b/src/burn/burn_t.proj index ffc0c780..d7902fe1 100644 --- a/src/burn/burn_t.proj +++ b/src/burn/burn_t.proj | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | <Project Sdk="Microsoft.Build.Traversal"> | 1 | <Project Sdk="Microsoft.Build.Traversal"> |
| 2 | <ItemGroup> | 2 | <ItemGroup> |
| 3 | <ProjectReference Include="test\BurnUnitTest\BurnUnitTest.vcxproj" Properties="Platform=x86" BuildInParallel="false" /> | 3 | <ProjectReference Include="test\BurnUnitTest\BurnUnitTest.vcxproj" Properties="Platform=x86" BuildInParallel="false" /> |
| 4 | <ProjectReference Include="test\BurnUnitTest\BurnUnitTest.vcxproj" Properties="Platform=x64" BuildInParallel="false" /> | ||
| 4 | 5 | ||
| 5 | <ProjectReference Include="stub\stub.vcxproj" Properties="Platform=x86" /> | 6 | <ProjectReference Include="stub\stub.vcxproj" Properties="Platform=x86" /> |
| 6 | <ProjectReference Include="stub\stub.vcxproj" Properties="Platform=x64" /> | 7 | <ProjectReference Include="stub\stub.vcxproj" Properties="Platform=x64" /> |
diff --git a/src/burn/test/BurnUnitTest/RegistrationTest.cpp b/src/burn/test/BurnUnitTest/RegistrationTest.cpp index f3645893..6a10961d 100644 --- a/src/burn/test/BurnUnitTest/RegistrationTest.cpp +++ b/src/burn/test/BurnUnitTest/RegistrationTest.cpp | |||
| @@ -37,8 +37,8 @@ namespace Bootstrapper | |||
| 37 | { | 37 | { |
| 38 | this->testRegistry = registryFixture; | 38 | this->testRegistry = registryFixture; |
| 39 | 39 | ||
| 40 | this->testRunKeyPath = this->testRegistry->GetDirectHkcuPath(gcnew String(REGISTRY_RUN_KEY)); | 40 | this->testRunKeyPath = this->testRegistry->GetDirectHkcuPath(REG_KEY_DEFAULT, gcnew String(REGISTRY_RUN_KEY)); |
| 41 | this->testUninstallKeyPath = this->testRegistry->GetDirectHkcuPath(gcnew String(REGISTRY_UNINSTALL_KEY), gcnew String(TEST_BUNDLE_ID)); | 41 | this->testUninstallKeyPath = this->testRegistry->GetDirectHkcuPath(REG_KEY_DEFAULT, gcnew String(REGISTRY_UNINSTALL_KEY), gcnew String(TEST_BUNDLE_ID)); |
| 42 | this->testVariableKeyPath = Path::Combine(this->testUninstallKeyPath, gcnew String(L"variables")); | 42 | this->testVariableKeyPath = Path::Combine(this->testUninstallKeyPath, gcnew String(L"variables")); |
| 43 | } | 43 | } |
| 44 | 44 | ||
diff --git a/src/burn/test/BurnUnitTest/TestRegistryFixture.cpp b/src/burn/test/BurnUnitTest/TestRegistryFixture.cpp index 3e78c6f5..1f3d7680 100644 --- a/src/burn/test/BurnUnitTest/TestRegistryFixture.cpp +++ b/src/burn/test/BurnUnitTest/TestRegistryFixture.cpp | |||
| @@ -4,50 +4,108 @@ | |||
| 4 | 4 | ||
| 5 | #define TEST_REGISTRY_FIXTURE_ROOT_PATH L"SOFTWARE\\WiX_Burn_UnitTest" | 5 | #define TEST_REGISTRY_FIXTURE_ROOT_PATH L"SOFTWARE\\WiX_Burn_UnitTest" |
| 6 | #define TEST_REGISTRY_FIXTURE_HKLM_PATH TEST_REGISTRY_FIXTURE_ROOT_PATH L"\\HKLM" | 6 | #define TEST_REGISTRY_FIXTURE_HKLM_PATH TEST_REGISTRY_FIXTURE_ROOT_PATH L"\\HKLM" |
| 7 | #define TEST_REGISTRY_FIXTURE_HKLM32_PATH TEST_REGISTRY_FIXTURE_ROOT_PATH L"\\Wow6432Node\\HKLM" | ||
| 7 | #define TEST_REGISTRY_FIXTURE_HKCU_PATH TEST_REGISTRY_FIXTURE_ROOT_PATH L"\\HKCU" | 8 | #define TEST_REGISTRY_FIXTURE_HKCU_PATH TEST_REGISTRY_FIXTURE_ROOT_PATH L"\\HKCU" |
| 9 | #define TEST_REGISTRY_FIXTURE_HKCU32_PATH TEST_REGISTRY_FIXTURE_ROOT_PATH L"\\Wow6432Node\\HKCU" | ||
| 8 | 10 | ||
| 9 | static LSTATUS APIENTRY TestRegistryFixture_RegCreateKeyExW( | 11 | static REG_KEY_BITNESS GetDesiredBitness( |
| 12 | __in REGSAM samDesired | ||
| 13 | ) | ||
| 14 | { | ||
| 15 | REG_KEY_BITNESS desiredBitness = REG_KEY_DEFAULT; | ||
| 16 | |||
| 17 | switch (KEY_WOW64_RES & samDesired) | ||
| 18 | { | ||
| 19 | case KEY_WOW64_32KEY: | ||
| 20 | desiredBitness = REG_KEY_32BIT; | ||
| 21 | break; | ||
| 22 | case KEY_WOW64_64KEY: | ||
| 23 | desiredBitness = REG_KEY_64BIT; | ||
| 24 | break; | ||
| 25 | default: | ||
| 26 | #if defined(_WIN64) | ||
| 27 | desiredBitness = REG_KEY_64BIT; | ||
| 28 | #else | ||
| 29 | desiredBitness = REG_KEY_32BIT; | ||
| 30 | #endif | ||
| 31 | break; | ||
| 32 | } | ||
| 33 | |||
| 34 | return desiredBitness; | ||
| 35 | } | ||
| 36 | |||
| 37 | static LSTATUS GetRootKey( | ||
| 10 | __in HKEY hKey, | 38 | __in HKEY hKey, |
| 11 | __in LPCWSTR lpSubKey, | ||
| 12 | __reserved DWORD Reserved, | ||
| 13 | __in_opt LPWSTR lpClass, | ||
| 14 | __in DWORD dwOptions, | ||
| 15 | __in REGSAM samDesired, | 39 | __in REGSAM samDesired, |
| 16 | __in_opt CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes, | 40 | __in ACCESS_MASK accessDesired, |
| 17 | __out PHKEY phkResult, | 41 | __inout HKEY* phkRoot) |
| 18 | __out_opt LPDWORD lpdwDisposition | ||
| 19 | ) | ||
| 20 | { | 42 | { |
| 21 | LSTATUS ls = ERROR_SUCCESS; | 43 | LSTATUS ls = ERROR_SUCCESS; |
| 22 | LPCWSTR wzRoot = NULL; | 44 | LPCWSTR wzRoot = NULL; |
| 23 | HKEY hkRoot = NULL; | ||
| 24 | 45 | ||
| 25 | if (HKEY_LOCAL_MACHINE == hKey) | 46 | if (HKEY_LOCAL_MACHINE == hKey) |
| 26 | { | 47 | { |
| 27 | wzRoot = TEST_REGISTRY_FIXTURE_HKLM_PATH; | 48 | if (REG_KEY_32BIT == GetDesiredBitness(samDesired)) |
| 49 | { | ||
| 50 | wzRoot = TEST_REGISTRY_FIXTURE_HKLM32_PATH; | ||
| 51 | } | ||
| 52 | else | ||
| 53 | { | ||
| 54 | wzRoot = TEST_REGISTRY_FIXTURE_HKLM_PATH; | ||
| 55 | } | ||
| 28 | } | 56 | } |
| 29 | else if (HKEY_CURRENT_USER == hKey) | 57 | else if (HKEY_CURRENT_USER == hKey) |
| 30 | { | 58 | { |
| 31 | wzRoot = TEST_REGISTRY_FIXTURE_HKCU_PATH; | 59 | if (REG_KEY_32BIT == GetDesiredBitness(samDesired)) |
| 60 | { | ||
| 61 | wzRoot = TEST_REGISTRY_FIXTURE_HKCU32_PATH; | ||
| 62 | } | ||
| 63 | else | ||
| 64 | { | ||
| 65 | wzRoot = TEST_REGISTRY_FIXTURE_HKCU_PATH; | ||
| 66 | } | ||
| 67 | } | ||
| 68 | |||
| 69 | if (wzRoot) | ||
| 70 | { | ||
| 71 | ls = ::RegOpenKeyExW(HKEY_CURRENT_USER, wzRoot, 0, KEY_WRITE | accessDesired, phkRoot); | ||
| 32 | } | 72 | } |
| 33 | else | 73 | else |
| 34 | { | 74 | { |
| 35 | hkRoot = hKey; | 75 | *phkRoot = hKey; |
| 36 | } | 76 | } |
| 37 | 77 | ||
| 38 | if (wzRoot) | 78 | return ls; |
| 79 | } | ||
| 80 | |||
| 81 | static LSTATUS APIENTRY TestRegistryFixture_RegCreateKeyExW( | ||
| 82 | __in HKEY hKey, | ||
| 83 | __in LPCWSTR lpSubKey, | ||
| 84 | __reserved DWORD Reserved, | ||
| 85 | __in_opt LPWSTR lpClass, | ||
| 86 | __in DWORD dwOptions, | ||
| 87 | __in REGSAM samDesired, | ||
| 88 | __in_opt CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes, | ||
| 89 | __out PHKEY phkResult, | ||
| 90 | __out_opt LPDWORD lpdwDisposition | ||
| 91 | ) | ||
| 92 | { | ||
| 93 | LSTATUS ls = ERROR_SUCCESS; | ||
| 94 | HKEY hkRoot = NULL; | ||
| 95 | |||
| 96 | ls = GetRootKey(hKey, samDesired, 0, &hkRoot); | ||
| 97 | if (ERROR_SUCCESS != ls) | ||
| 39 | { | 98 | { |
| 40 | ls = ::RegOpenKeyExW(HKEY_CURRENT_USER, wzRoot, 0, KEY_WRITE, &hkRoot); | 99 | ExitFunction(); |
| 41 | if (ERROR_SUCCESS != ls) | ||
| 42 | { | ||
| 43 | ExitFunction(); | ||
| 44 | } | ||
| 45 | } | 100 | } |
| 46 | 101 | ||
| 47 | ls = ::RegCreateKeyExW(hkRoot, lpSubKey, Reserved, lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition); | 102 | ls = ::RegCreateKeyExW(hkRoot, lpSubKey, Reserved, lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition); |
| 48 | 103 | ||
| 49 | LExit: | 104 | LExit: |
| 50 | ReleaseRegKey(hkRoot); | 105 | if (hkRoot != hKey) |
| 106 | { | ||
| 107 | ReleaseRegKey(hkRoot); | ||
| 108 | } | ||
| 51 | 109 | ||
| 52 | return ls; | 110 | return ls; |
| 53 | } | 111 | } |
| @@ -61,35 +119,21 @@ static LSTATUS APIENTRY TestRegistryFixture_RegOpenKeyExW( | |||
| 61 | ) | 119 | ) |
| 62 | { | 120 | { |
| 63 | LSTATUS ls = ERROR_SUCCESS; | 121 | LSTATUS ls = ERROR_SUCCESS; |
| 64 | LPCWSTR wzRoot = NULL; | ||
| 65 | HKEY hkRoot = NULL; | 122 | HKEY hkRoot = NULL; |
| 66 | 123 | ||
| 67 | if (HKEY_LOCAL_MACHINE == hKey) | 124 | ls = GetRootKey(hKey, samDesired, 0, &hkRoot); |
| 68 | { | 125 | if (ERROR_SUCCESS != ls) |
| 69 | wzRoot = TEST_REGISTRY_FIXTURE_HKLM_PATH; | ||
| 70 | } | ||
| 71 | else if (HKEY_CURRENT_USER == hKey) | ||
| 72 | { | ||
| 73 | wzRoot = TEST_REGISTRY_FIXTURE_HKCU_PATH; | ||
| 74 | } | ||
| 75 | else | ||
| 76 | { | ||
| 77 | hkRoot = hKey; | ||
| 78 | } | ||
| 79 | |||
| 80 | if (wzRoot) | ||
| 81 | { | 126 | { |
| 82 | ls = ::RegOpenKeyExW(HKEY_CURRENT_USER, wzRoot, 0, KEY_WRITE, &hkRoot); | 127 | ExitFunction(); |
| 83 | if (ERROR_SUCCESS != ls) | ||
| 84 | { | ||
| 85 | ExitFunction(); | ||
| 86 | } | ||
| 87 | } | 128 | } |
| 88 | 129 | ||
| 89 | ls = ::RegOpenKeyExW(hkRoot, lpSubKey, ulOptions, samDesired, phkResult); | 130 | ls = ::RegOpenKeyExW(hkRoot, lpSubKey, ulOptions, samDesired, phkResult); |
| 90 | 131 | ||
| 91 | LExit: | 132 | LExit: |
| 92 | ReleaseRegKey(hkRoot); | 133 | if (hkRoot != hKey) |
| 134 | { | ||
| 135 | ReleaseRegKey(hkRoot); | ||
| 136 | } | ||
| 93 | 137 | ||
| 94 | return ls; | 138 | return ls; |
| 95 | } | 139 | } |
| @@ -102,35 +146,21 @@ static LSTATUS APIENTRY TestRegistryFixture_RegDeleteKeyExW( | |||
| 102 | ) | 146 | ) |
| 103 | { | 147 | { |
| 104 | LSTATUS ls = ERROR_SUCCESS; | 148 | LSTATUS ls = ERROR_SUCCESS; |
| 105 | LPCWSTR wzRoot = NULL; | ||
| 106 | HKEY hkRoot = NULL; | 149 | HKEY hkRoot = NULL; |
| 107 | 150 | ||
| 108 | if (HKEY_LOCAL_MACHINE == hKey) | 151 | ls = GetRootKey(hKey, samDesired, samDesired, &hkRoot); |
| 152 | if (ERROR_SUCCESS != ls) | ||
| 109 | { | 153 | { |
| 110 | wzRoot = TEST_REGISTRY_FIXTURE_HKLM_PATH; | 154 | ExitFunction(); |
| 111 | } | ||
| 112 | else if (HKEY_CURRENT_USER == hKey) | ||
| 113 | { | ||
| 114 | wzRoot = TEST_REGISTRY_FIXTURE_HKCU_PATH; | ||
| 115 | } | ||
| 116 | else | ||
| 117 | { | ||
| 118 | hkRoot = hKey; | ||
| 119 | } | ||
| 120 | |||
| 121 | if (wzRoot) | ||
| 122 | { | ||
| 123 | ls = ::RegOpenKeyExW(HKEY_CURRENT_USER, wzRoot, 0, KEY_WRITE | samDesired, &hkRoot); | ||
| 124 | if (ERROR_SUCCESS != ls) | ||
| 125 | { | ||
| 126 | ExitFunction(); | ||
| 127 | } | ||
| 128 | } | 155 | } |
| 129 | 156 | ||
| 130 | ls = ::RegDeleteKeyExW(hkRoot, lpSubKey, samDesired, Reserved); | 157 | ls = ::RegDeleteKeyExW(hkRoot, lpSubKey, samDesired, Reserved); |
| 131 | 158 | ||
| 132 | LExit: | 159 | LExit: |
| 133 | ReleaseRegKey(hkRoot); | 160 | if (hkRoot != hKey) |
| 161 | { | ||
| 162 | ReleaseRegKey(hkRoot); | ||
| 163 | } | ||
| 134 | 164 | ||
| 135 | return ls; | 165 | return ls; |
| 136 | } | 166 | } |
| @@ -146,8 +176,6 @@ namespace WixBuildTools | |||
| 146 | TestRegistryFixture::TestRegistryFixture() | 176 | TestRegistryFixture::TestRegistryFixture() |
| 147 | { | 177 | { |
| 148 | this->rootPath = gcnew String(TEST_REGISTRY_FIXTURE_ROOT_PATH); | 178 | this->rootPath = gcnew String(TEST_REGISTRY_FIXTURE_ROOT_PATH); |
| 149 | this->hkcuPath = gcnew String(TEST_REGISTRY_FIXTURE_HKCU_PATH); | ||
| 150 | this->hklmPath = gcnew String(TEST_REGISTRY_FIXTURE_HKLM_PATH); | ||
| 151 | } | 179 | } |
| 152 | 180 | ||
| 153 | TestRegistryFixture::~TestRegistryFixture() | 181 | TestRegistryFixture::~TestRegistryFixture() |
| @@ -160,8 +188,10 @@ namespace WixBuildTools | |||
| 160 | // set mock API's | 188 | // set mock API's |
| 161 | RegFunctionOverride(TestRegistryFixture_RegCreateKeyExW, TestRegistryFixture_RegOpenKeyExW, TestRegistryFixture_RegDeleteKeyExW, NULL, NULL, NULL, NULL, NULL, NULL); | 189 | RegFunctionOverride(TestRegistryFixture_RegCreateKeyExW, TestRegistryFixture_RegOpenKeyExW, TestRegistryFixture_RegDeleteKeyExW, NULL, NULL, NULL, NULL, NULL, NULL); |
| 162 | 190 | ||
| 163 | Registry::CurrentUser->CreateSubKey(this->hkcuPath); | 191 | Registry::CurrentUser->CreateSubKey(TEST_REGISTRY_FIXTURE_HKCU_PATH); |
| 164 | Registry::CurrentUser->CreateSubKey(this->hklmPath); | 192 | Registry::CurrentUser->CreateSubKey(TEST_REGISTRY_FIXTURE_HKCU32_PATH); |
| 193 | Registry::CurrentUser->CreateSubKey(TEST_REGISTRY_FIXTURE_HKLM_PATH); | ||
| 194 | Registry::CurrentUser->CreateSubKey(TEST_REGISTRY_FIXTURE_HKLM32_PATH); | ||
| 165 | } | 195 | } |
| 166 | 196 | ||
| 167 | void TestRegistryFixture::TearDown() | 197 | void TestRegistryFixture::TearDown() |
| @@ -171,14 +201,52 @@ namespace WixBuildTools | |||
| 171 | RegFunctionOverride(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); | 201 | RegFunctionOverride(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); |
| 172 | } | 202 | } |
| 173 | 203 | ||
| 174 | String^ TestRegistryFixture::GetDirectHkcuPath(... array<String^>^ paths) | 204 | String^ TestRegistryFixture::GetDirectHkcuPath(REG_KEY_BITNESS bitness, ... array<String^>^ paths) |
| 175 | { | 205 | { |
| 176 | return Path::Combine(Registry::CurrentUser->Name, this->hkcuPath, Path::Combine(paths)); | 206 | String^ hkcuPath; |
| 207 | |||
| 208 | switch (bitness) | ||
| 209 | { | ||
| 210 | case REG_KEY_32BIT: | ||
| 211 | hkcuPath = TEST_REGISTRY_FIXTURE_HKCU32_PATH; | ||
| 212 | break; | ||
| 213 | case REG_KEY_64BIT: | ||
| 214 | hkcuPath = TEST_REGISTRY_FIXTURE_HKCU_PATH; | ||
| 215 | break; | ||
| 216 | default: | ||
| 217 | #if defined(_WIN64) | ||
| 218 | hkcuPath = TEST_REGISTRY_FIXTURE_HKCU_PATH; | ||
| 219 | #else | ||
| 220 | hkcuPath = TEST_REGISTRY_FIXTURE_HKCU32_PATH; | ||
| 221 | #endif | ||
| 222 | break; | ||
| 223 | } | ||
| 224 | |||
| 225 | return Path::Combine(Registry::CurrentUser->Name, hkcuPath, Path::Combine(paths)); | ||
| 177 | } | 226 | } |
| 178 | 227 | ||
| 179 | String^ TestRegistryFixture::GetDirectHklmPath(... array<String^>^ paths) | 228 | String^ TestRegistryFixture::GetDirectHklmPath(REG_KEY_BITNESS bitness, ... array<String^>^ paths) |
| 180 | { | 229 | { |
| 181 | return Path::Combine(Registry::CurrentUser->Name, this->hklmPath, Path::Combine(paths)); | 230 | String^ hklmPath; |
| 231 | |||
| 232 | switch (bitness) | ||
| 233 | { | ||
| 234 | case REG_KEY_32BIT: | ||
| 235 | hklmPath = TEST_REGISTRY_FIXTURE_HKLM32_PATH; | ||
| 236 | break; | ||
| 237 | case REG_KEY_64BIT: | ||
| 238 | hklmPath = TEST_REGISTRY_FIXTURE_HKLM_PATH; | ||
| 239 | break; | ||
| 240 | default: | ||
| 241 | #if defined(_WIN64) | ||
| 242 | hklmPath = TEST_REGISTRY_FIXTURE_HKLM_PATH; | ||
| 243 | #else | ||
| 244 | hklmPath = TEST_REGISTRY_FIXTURE_HKLM32_PATH; | ||
| 245 | #endif | ||
| 246 | break; | ||
| 247 | } | ||
| 248 | |||
| 249 | return Path::Combine(Registry::CurrentUser->Name, hklmPath, Path::Combine(paths)); | ||
| 182 | } | 250 | } |
| 183 | } | 251 | } |
| 184 | } | 252 | } |
diff --git a/src/burn/test/BurnUnitTest/TestRegistryFixture.h b/src/burn/test/BurnUnitTest/TestRegistryFixture.h index 283efe42..2f283f3e 100644 --- a/src/burn/test/BurnUnitTest/TestRegistryFixture.h +++ b/src/burn/test/BurnUnitTest/TestRegistryFixture.h | |||
| @@ -11,8 +11,6 @@ namespace TestSupport | |||
| 11 | { | 11 | { |
| 12 | private: | 12 | private: |
| 13 | String^ rootPath; | 13 | String^ rootPath; |
| 14 | String^ hkcuPath; | ||
| 15 | String^ hklmPath; | ||
| 16 | public: | 14 | public: |
| 17 | TestRegistryFixture(); | 15 | TestRegistryFixture(); |
| 18 | 16 | ||
| @@ -22,9 +20,9 @@ namespace TestSupport | |||
| 22 | 20 | ||
| 23 | void TearDown(); | 21 | void TearDown(); |
| 24 | 22 | ||
| 25 | String^ GetDirectHkcuPath(... array<String^>^ paths); | 23 | String^ GetDirectHkcuPath(REG_KEY_BITNESS bitness, ... array<String^>^ paths); |
| 26 | 24 | ||
| 27 | String^ GetDirectHklmPath(... array<String^>^ paths); | 25 | String^ GetDirectHklmPath(REG_KEY_BITNESS bitness, ... array<String^>^ paths); |
| 28 | }; | 26 | }; |
| 29 | } | 27 | } |
| 30 | } | 28 | } |
diff --git a/src/burn/test/BurnUnitTest/VariableTest.cpp b/src/burn/test/BurnUnitTest/VariableTest.cpp index 2ae829dc..53105e69 100644 --- a/src/burn/test/BurnUnitTest/VariableTest.cpp +++ b/src/burn/test/BurnUnitTest/VariableTest.cpp | |||
| @@ -497,7 +497,11 @@ namespace Bootstrapper | |||
| 497 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::ApplicationData) + "\\", VariableGetStringHelper(&variables, L"AppDataFolder")); | 497 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::ApplicationData) + "\\", VariableGetStringHelper(&variables, L"AppDataFolder")); |
| 498 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::CommonApplicationData) + "\\", VariableGetStringHelper(&variables, L"CommonAppDataFolder")); | 498 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::CommonApplicationData) + "\\", VariableGetStringHelper(&variables, L"CommonAppDataFolder")); |
| 499 | 499 | ||
| 500 | #if defined(_WIN64) | ||
| 501 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::ProgramFiles) + "\\", VariableGetStringHelper(&variables, L"ProgramFiles64Folder")); | ||
| 502 | #else | ||
| 500 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::ProgramFiles) + "\\", VariableGetStringHelper(&variables, L"ProgramFilesFolder")); | 503 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::ProgramFiles) + "\\", VariableGetStringHelper(&variables, L"ProgramFilesFolder")); |
| 504 | #endif | ||
| 501 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::DesktopDirectory) + "\\", VariableGetStringHelper(&variables, L"DesktopFolder")); | 505 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::DesktopDirectory) + "\\", VariableGetStringHelper(&variables, L"DesktopFolder")); |
| 502 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::Favorites) + "\\", VariableGetStringHelper(&variables, L"FavoritesFolder")); | 506 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::Favorites) + "\\", VariableGetStringHelper(&variables, L"FavoritesFolder")); |
| 503 | VariableGetStringHelper(&variables, L"FontsFolder"); | 507 | VariableGetStringHelper(&variables, L"FontsFolder"); |
| @@ -514,7 +518,11 @@ namespace Bootstrapper | |||
| 514 | Assert::Equal<String^>(System::IO::Path::GetTempPath(), System::IO::Path::GetFullPath(VariableGetStringHelper(&variables, L"TempFolder"))); | 518 | Assert::Equal<String^>(System::IO::Path::GetTempPath(), System::IO::Path::GetFullPath(VariableGetStringHelper(&variables, L"TempFolder"))); |
| 515 | 519 | ||
| 516 | VariableGetStringHelper(&variables, L"AdminToolsFolder"); | 520 | VariableGetStringHelper(&variables, L"AdminToolsFolder"); |
| 521 | #if defined(_WIN64) | ||
| 522 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::CommonProgramFiles) + "\\", VariableGetStringHelper(&variables, L"CommonFiles64Folder")); | ||
| 523 | #else | ||
| 517 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::CommonProgramFiles) + "\\", VariableGetStringHelper(&variables, L"CommonFilesFolder")); | 524 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::CommonProgramFiles) + "\\", VariableGetStringHelper(&variables, L"CommonFilesFolder")); |
| 525 | #endif | ||
| 518 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::MyPictures) + "\\", VariableGetStringHelper(&variables, L"MyPicturesFolder")); | 526 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::MyPictures) + "\\", VariableGetStringHelper(&variables, L"MyPicturesFolder")); |
| 519 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::Templates) + "\\", VariableGetStringHelper(&variables, L"TemplateFolder")); | 527 | Assert::Equal<String^>(Environment::GetFolderPath(Environment::SpecialFolder::Templates) + "\\", VariableGetStringHelper(&variables, L"TemplateFolder")); |
| 520 | 528 | ||
diff --git a/src/internal/WixBuildTools.TestSupport.Native/build/WixBuildTools.TestSupport.Native.targets b/src/internal/WixBuildTools.TestSupport.Native/build/WixBuildTools.TestSupport.Native.targets index 58475559..8a171331 100644 --- a/src/internal/WixBuildTools.TestSupport.Native/build/WixBuildTools.TestSupport.Native.targets +++ b/src/internal/WixBuildTools.TestSupport.Native/build/WixBuildTools.TestSupport.Native.targets | |||
| @@ -42,7 +42,8 @@ | |||
| 42 | <Error Condition="!Exists('$(RootPackagesFolder)xunit.runner.visualstudio.2.4.1\build\net20\xunit.runner.visualstudio.props')" Text="$([System.String]::Format('$(ErrorText)', '$(RootPackagesFolder)xunit.runner.visualstudio.2.4.1\build\net20\xunit.runner.visualstudio.props'))" /> | 42 | <Error Condition="!Exists('$(RootPackagesFolder)xunit.runner.visualstudio.2.4.1\build\net20\xunit.runner.visualstudio.props')" Text="$([System.String]::Format('$(ErrorText)', '$(RootPackagesFolder)xunit.runner.visualstudio.2.4.1\build\net20\xunit.runner.visualstudio.props'))" /> |
| 43 | </Target> | 43 | </Target> |
| 44 | 44 | ||
| 45 | <UsingTask AssemblyFile="$(RootPackagesFolder)xunit.runner.msbuild.2.4.1\build\net452\xunit.runner.msbuild.net452.dll" TaskName="Xunit.Runner.MSBuild.xunit" Architecture="x86" /> | 45 | <UsingTask AssemblyFile="$(RootPackagesFolder)xunit.runner.msbuild.2.4.1\build\net452\xunit.runner.msbuild.net452.dll" TaskName="Xunit.Runner.MSBuild.xunit" Architecture="x86" Condition=" '$(Platform)'!='x64' " /> |
| 46 | <UsingTask AssemblyFile="$(RootPackagesFolder)xunit.runner.msbuild.2.4.1\build\net452\xunit.runner.msbuild.net452.dll" TaskName="Xunit.Runner.MSBuild.xunit" Architecture="x64" Condition=" '$(Platform)'=='x64' " /> | ||
| 46 | <Target Name="Test"> | 47 | <Target Name="Test"> |
| 47 | <!-- https://xunit.net/docs/running-tests-in-msbuild --> | 48 | <!-- https://xunit.net/docs/running-tests-in-msbuild --> |
| 48 | <!-- https://github.com/xunit/xunit/issues/2188 --> | 49 | <!-- https://github.com/xunit/xunit/issues/2188 --> |
diff --git a/src/testresultfilelist.txt b/src/testresultfilelist.txt index aa8d93e9..a78682d2 100644 --- a/src/testresultfilelist.txt +++ b/src/testresultfilelist.txt | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | build/logs/TestResults/api_wix.trx | 1 | build/logs/TestResults/api_wix.trx |
| 2 | build/logs/TestResults/BalUtilUnitTest.xunit2.xml | 2 | build/logs/TestResults/BalUtilUnitTest.xunit2.xml |
| 3 | build/logs/TestResults/BextUtilUnitTest.xunit2.xml | 3 | build/logs/TestResults/BextUtilUnitTest.xunit2.xml |
| 4 | build/logs/TestResults/BurnUnitTest.xunit2.xml | 4 | build/logs/TestResults/BurnUnitTest32.xunit2.xml |
| 5 | build/logs/TestResults/BurnUnitTest64.xunit2.xml | ||
| 5 | build/logs/TestResults/DutilUnitTest.xunit2.xml | 6 | build/logs/TestResults/DutilUnitTest.xunit2.xml |
| 6 | build/logs/TestResults/WixToolsetTest.BuildTasks.trx | 7 | build/logs/TestResults/WixToolsetTest.BuildTasks.trx |
| 7 | build/logs/TestResults/WixToolsetTest.BurnE2E.trx | 8 | build/logs/TestResults/WixToolsetTest.BurnE2E.trx |
