[PATCH 2/5] msi/tests: More accurately calculate estimated size.
Zebediah Figura
z.figura12 at gmail.com
Mon May 14 00:28:59 CDT 2018
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/msi/tests/action.c | 109 ++++++++++--------------------------------------
1 file changed, 22 insertions(+), 87 deletions(-)
diff --git a/dlls/msi/tests/action.c b/dlls/msi/tests/action.c
index 8e72ff4..3b15d14 100644
--- a/dlls/msi/tests/action.c
+++ b/dlls/msi/tests/action.c
@@ -2321,45 +2321,6 @@ static void check_reg_dword(HKEY prodkey, LPCSTR name, DWORD expected, DWORD lin
ok_(__FILE__, line)(val == expected, "Expected %d, got %d\n", expected, val);
}
-static void check_reg_dword4(HKEY prodkey, LPCSTR name, DWORD expected1, DWORD expected2, DWORD expected3,
- DWORD expected4, DWORD line)
-{
- DWORD val, size, type;
- LONG res;
-
- size = sizeof(DWORD);
- res = RegQueryValueExA(prodkey, name, NULL, &type, (LPBYTE)&val, &size);
-
- if (res != ERROR_SUCCESS || type != REG_DWORD)
- {
- ok_(__FILE__, line)(FALSE, "Key doesn't exist or wrong type\n");
- return;
- }
-
- ok_(__FILE__, line)(val == expected1 || val == expected2 || val == expected3 || val == expected4,
- "Expected %d, %d, %d or %d, got %d\n", expected1, expected2, expected3, expected4, val);
-}
-
-static void check_reg_dword5(HKEY prodkey, LPCSTR name, DWORD expected1, DWORD expected2, DWORD expected3,
- DWORD expected4, DWORD expected5, DWORD line)
-{
- DWORD val, size, type;
- LONG res;
-
- size = sizeof(DWORD);
- res = RegQueryValueExA(prodkey, name, NULL, &type, (LPBYTE)&val, &size);
-
- if (res != ERROR_SUCCESS || type != REG_DWORD)
- {
- ok_(__FILE__, line)(FALSE, "Key doesn't exist or wrong type\n");
- return;
- }
-
- ok_(__FILE__, line)(val == expected1 || val == expected2 || val == expected3 || val == expected4 ||
- val == expected5,
- "Expected %d, %d, %d, %d or %d, got %d\n", expected1, expected2, expected3, expected4, expected5, val);
-}
-
#define CHECK_REG_STR(prodkey, name, expected) \
check_reg_str(prodkey, name, expected, TRUE, __LINE__);
@@ -2387,24 +2348,6 @@ static void check_reg_dword5(HKEY prodkey, LPCSTR name, DWORD expected1, DWORD e
RegDeleteValueA(prodkey, name); \
} while(0)
-#define CHECK_REG_DWORD2(prodkey, name, expected1, expected2) \
- check_reg_dword2(prodkey, name, expected1, expected2, __LINE__);
-
-#define CHECK_DEL_REG_DWORD2(prodkey, name, expected1, expected2) \
- do { \
- check_reg_dword2(prodkey, name, expected1, expected2, __LINE__); \
- RegDeleteValueA(prodkey, name); \
- } while(0)
-
-#define CHECK_REG_DWORD4(prodkey, name, expected1, expected2, expected3, expected4) \
- check_reg_dword4(prodkey, name, expected1, expected2, expected3, expected4, __LINE__);
-
-#define CHECK_DEL_REG_DWORD5(prodkey, name, expected1, expected2, expected3, expected4 ,expected5) \
- do { \
- check_reg_dword5(prodkey, name, expected1, expected2, expected3, expected4, expected5, __LINE__); \
- RegDeleteValueA(prodkey, name); \
- } while(0)
-
static void get_date_str(LPSTR date)
{
SYSTEMTIME systime;
@@ -2414,6 +2357,18 @@ static void get_date_str(LPSTR date)
sprintf(date, date_fmt, systime.wYear, systime.wMonth, systime.wDay);
}
+/* EstimatedSize is the size in KiB of .msi + installed files, rounded up to page size. */
+static DWORD get_estimated_size(void)
+{
+ HANDLE file;
+ DWORD size;
+
+ file = CreateFileA(msifile, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
+ size = (((GetFileSize(file, NULL) + 4095) & ~4095) / 1024) + 4;
+ CloseHandle(file);
+ return size;
+}
+
static void test_register_product(void)
{
UINT r;
@@ -2505,9 +2460,7 @@ static void test_register_product(void)
CHECK_DEL_REG_DWORD(hkey, "VersionMinor", 1);
CHECK_DEL_REG_DWORD(hkey, "WindowsInstaller", 1);
todo_wine
- {
- CHECK_DEL_REG_DWORD5(hkey, "EstimatedSize", 12, -12, 4, 10, 24);
- }
+ CHECK_DEL_REG_DWORD(hkey, "EstimatedSize", get_estimated_size());
delete_key(hkey, "", access);
RegCloseKey(hkey);
@@ -2547,9 +2500,7 @@ static void test_register_product(void)
CHECK_DEL_REG_DWORD(props, "VersionMinor", 1);
CHECK_DEL_REG_DWORD(props, "WindowsInstaller", 1);
todo_wine
- {
- CHECK_DEL_REG_DWORD5(props, "EstimatedSize", 12, -12, 4, 10, 24);
- }
+ CHECK_DEL_REG_DWORD(props, "EstimatedSize", get_estimated_size());
delete_key(props, "", access);
RegCloseKey(props);
@@ -2616,9 +2567,7 @@ static void test_register_product(void)
CHECK_DEL_REG_DWORD(hkey, "VersionMinor", 1);
CHECK_DEL_REG_DWORD(hkey, "WindowsInstaller", 1);
todo_wine
- {
- CHECK_DEL_REG_DWORD5(hkey, "EstimatedSize", 12, -12, 4, 10, 24);
- }
+ CHECK_DEL_REG_DWORD(hkey, "EstimatedSize", get_estimated_size());
delete_key(hkey, "", access);
RegCloseKey(hkey);
@@ -2658,9 +2607,7 @@ static void test_register_product(void)
CHECK_DEL_REG_DWORD(props, "VersionMinor", 1);
CHECK_DEL_REG_DWORD(props, "WindowsInstaller", 1);
todo_wine
- {
- CHECK_DEL_REG_DWORD5(props, "EstimatedSize", 12, -12, 4, 10, 24);
- }
+ CHECK_DEL_REG_DWORD(props, "EstimatedSize", get_estimated_size());
delete_key(props, "", access);
RegCloseKey(props);
@@ -3525,9 +3472,7 @@ static void test_publish(void)
CHECK_REG_DWORD(prodkey, "VersionMinor", 1);
CHECK_REG_DWORD(prodkey, "WindowsInstaller", 1);
todo_wine
- {
- CHECK_REG_DWORD4(prodkey, "EstimatedSize", 12, -12, 10, 24);
- }
+ CHECK_REG_DWORD(prodkey, "EstimatedSize", get_estimated_size());
RegCloseKey(prodkey);
@@ -3631,9 +3576,7 @@ static void test_publish(void)
CHECK_REG_DWORD(prodkey, "VersionMinor", 1);
CHECK_REG_DWORD(prodkey, "WindowsInstaller", 1);
todo_wine
- {
- CHECK_REG_DWORD4(prodkey, "EstimatedSize", 12, -12, 10, 24);
- }
+ CHECK_REG_DWORD(prodkey, "EstimatedSize", get_estimated_size());
RegCloseKey(prodkey);
@@ -3714,9 +3657,7 @@ static void test_publish(void)
CHECK_REG_DWORD(prodkey, "VersionMinor", 1);
CHECK_REG_DWORD(prodkey, "WindowsInstaller", 1);
todo_wine
- {
- CHECK_REG_DWORD4(prodkey, "EstimatedSize", 12, -12, 10, 24);
- }
+ CHECK_REG_DWORD(prodkey, "EstimatedSize", get_estimated_size());
RegCloseKey(prodkey);
@@ -3774,9 +3715,7 @@ static void test_publish(void)
CHECK_REG_DWORD(prodkey, "VersionMinor", 1);
CHECK_REG_DWORD(prodkey, "WindowsInstaller", 1);
todo_wine
- {
- CHECK_REG_DWORD4(prodkey, "EstimatedSize", 12, -12, 10, 24);
- }
+ CHECK_REG_DWORD(prodkey, "EstimatedSize", get_estimated_size());
RegCloseKey(prodkey);
@@ -3834,9 +3773,7 @@ static void test_publish(void)
CHECK_REG_DWORD(prodkey, "VersionMinor", 1);
CHECK_REG_DWORD(prodkey, "WindowsInstaller", 1);
todo_wine
- {
- CHECK_REG_DWORD4(prodkey, "EstimatedSize", 12, -20, 10, 24);
- }
+ CHECK_REG_DWORD(prodkey, "EstimatedSize", get_estimated_size());
RegCloseKey(prodkey);
@@ -3917,9 +3854,7 @@ static void test_publish(void)
CHECK_REG_DWORD(prodkey, "VersionMinor", 1);
CHECK_REG_DWORD(prodkey, "WindowsInstaller", 1);
todo_wine
- {
- CHECK_REG_DWORD4(prodkey, "EstimatedSize", 12, -12, 10, 24);
- }
+ CHECK_REG_DWORD(prodkey, "EstimatedSize", get_estimated_size());
RegCloseKey(prodkey);
--
2.7.4
More information about the wine-devel
mailing list