Wine-Devel
By thread
wine-devel@list.winehq.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
June 2018
- 68 participants
- 1149 messages
[PATCH] msi/tests: Use the available ARRAY_SIZE() macro
by Michael Stefaniuc
Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org>
---
dlls/msi/tests/action.c | 64 ++++++++---------
dlls/msi/tests/automation.c | 70 +++++++++---------
dlls/msi/tests/db.c | 12 ++--
dlls/msi/tests/install.c | 169 ++++++++++++++++++++++----------------------
dlls/msi/tests/msi.c | 30 ++++----
dlls/msi/tests/package.c | 2 +-
dlls/msi/tests/patch.c | 8 +--
dlls/msi/tests/record.c | 4 +-
8 files changed, 178 insertions(+), 181 deletions(-)
diff --git a/dlls/msi/tests/action.c b/dlls/msi/tests/action.c
index 2e464c4ecb..cb8514d42d 100644
--- a/dlls/msi/tests/action.c
+++ b/dlls/msi/tests/action.c
@@ -2650,7 +2650,7 @@ static void test_register_product(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database(msifile, pp_tables, sizeof(pp_tables) / sizeof(msi_table));
+ create_database(msifile, pp_tables, ARRAY_SIZE(pp_tables));
MsiSetInternalUI(INSTALLUILEVEL_FULL, NULL);
@@ -2917,7 +2917,7 @@ static void test_publish_product(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database(msifile, pp_tables, sizeof(pp_tables) / sizeof(msi_table));
+ create_database(msifile, pp_tables, ARRAY_SIZE(pp_tables));
if (is_wow64)
access |= KEY_WOW64_64KEY;
@@ -3150,7 +3150,7 @@ static void test_publish_features(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database(msifile, pp_tables, sizeof(pp_tables) / sizeof(msi_table));
+ create_database(msifile, pp_tables, ARRAY_SIZE(pp_tables));
if (is_wow64)
access |= KEY_WOW64_64KEY;
@@ -3336,7 +3336,7 @@ static void test_register_user(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database(msifile, pp_tables, sizeof(pp_tables) / sizeof(msi_table));
+ create_database(msifile, pp_tables, ARRAY_SIZE(pp_tables));
if (is_wow64)
access |= KEY_WOW64_64KEY;
@@ -3430,7 +3430,7 @@ static void test_process_components(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database(msifile, ppc_tables, sizeof(ppc_tables) / sizeof(msi_table));
+ create_database(msifile, ppc_tables, ARRAY_SIZE(ppc_tables));
if (is_wow64)
access |= KEY_WOW64_64KEY;
@@ -3578,7 +3578,7 @@ static void test_publish(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database(msifile, pp_tables, sizeof(pp_tables) / sizeof(msi_table));
+ create_database(msifile, pp_tables, ARRAY_SIZE(pp_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4152,7 +4152,7 @@ static void test_publish_sourcelist(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database(msifile, pp_tables, sizeof(pp_tables) / sizeof(msi_table));
+ create_database(msifile, pp_tables, ARRAY_SIZE(pp_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4352,7 +4352,7 @@ static void test_remove_files(void)
create_file("msitest\\helium", 500);
create_file("msitest\\lithium", 500);
- create_database(msifile, rem_tables, sizeof(rem_tables) / sizeof(msi_table));
+ create_database(msifile, rem_tables, ARRAY_SIZE(rem_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4509,7 +4509,7 @@ static void test_move_files(void)
create_file("bur", 100);
create_file("bird", 100);
- create_database(msifile, mov_tables, sizeof(mov_tables) / sizeof(msi_table));
+ create_database(msifile, mov_tables, ARRAY_SIZE(mov_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4630,7 +4630,7 @@ static void test_duplicate_files(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database(msifile, df_tables, sizeof(df_tables) / sizeof(msi_table));
+ create_database(msifile, df_tables, ARRAY_SIZE(df_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4673,7 +4673,7 @@ static void test_write_registry_values(void)
CreateDirectoryA("msitest", NULL);
- create_database(msifile, wrv_tables, sizeof(wrv_tables) / sizeof(msi_table));
+ create_database(msifile, wrv_tables, ARRAY_SIZE(wrv_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4839,7 +4839,7 @@ static void test_envvar(void)
return;
}
- create_database(msifile, env_tables, sizeof(env_tables) / sizeof(msi_table));
+ create_database(msifile, env_tables, ARRAY_SIZE(env_tables));
res = RegCreateKeyExA(HKEY_CURRENT_USER, "Environment", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &env, NULL);
ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
@@ -4948,7 +4948,7 @@ static void test_create_remove_folder(void)
CreateDirectoryA("msitest\\second", NULL);
create_file("msitest\\first\\one.txt", 1000);
create_file("msitest\\second\\two.txt", 1000);
- create_database(msifile, cf_tables, sizeof(cf_tables) / sizeof(msi_table));
+ create_database(msifile, cf_tables, ARRAY_SIZE(cf_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5028,7 +5028,7 @@ static void test_start_stop_services(void)
CloseServiceHandle(scm);
create_test_files();
- create_database(msifile, sss_tables, sizeof(sss_tables) / sizeof(msi_table));
+ create_database(msifile, sss_tables, ARRAY_SIZE(sss_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5128,7 +5128,7 @@ static void test_delete_services(void)
if (!service) return;
create_test_files();
- create_database(msifile, sds_tables, sizeof(sds_tables) / sizeof(msi_table));
+ create_database(msifile, sds_tables, ARRAY_SIZE(sds_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5190,7 +5190,7 @@ static void test_install_services(void)
}
create_test_files();
- create_database(msifile, sis_tables, sizeof(sis_tables) / sizeof(msi_table));
+ create_database(msifile, sis_tables, ARRAY_SIZE(sis_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5267,7 +5267,7 @@ static void test_self_registration(void)
create_test_files();
extract_resource("selfreg.dll", "TESTDLL", "msitest\\selfreg.dll");
- create_database(msifile, sr_tables, sizeof(sr_tables) / sizeof(msi_table));
+ create_database(msifile, sr_tables, ARRAY_SIZE(sr_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5315,7 +5315,7 @@ static void test_register_font(void)
create_test_files();
create_file("msitest\\font.ttf", 1000);
- create_database(msifile, font_tables, sizeof(font_tables) / sizeof(msi_table));
+ create_database(msifile, font_tables, ARRAY_SIZE(font_tables));
if (is_wow64)
access |= KEY_WOW64_64KEY;
@@ -5365,7 +5365,7 @@ static void test_validate_product_id(void)
}
create_test_files();
- create_database(msifile, vp_tables, sizeof(vp_tables) / sizeof(msi_table));
+ create_database(msifile, vp_tables, ARRAY_SIZE(vp_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5424,7 +5424,7 @@ static void test_install_remove_odbc(void)
create_file("msitest\\ODBCtranslator.dll", 1000);
create_file("msitest\\ODBCtranslator2.dll", 1000);
create_file("msitest\\ODBCsetup.dll", 1000);
- create_database(msifile, odbc_tables, sizeof(odbc_tables) / sizeof(msi_table));
+ create_database(msifile, odbc_tables, ARRAY_SIZE(odbc_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5510,7 +5510,7 @@ static void test_register_typelib(void)
create_test_files();
extract_resource("typelib.tlb", "TYPELIB", "msitest\\typelib.dll");
- create_database(msifile, tl_tables, sizeof(tl_tables) / sizeof(msi_table));
+ create_database(msifile, tl_tables, ARRAY_SIZE(tl_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5553,7 +5553,7 @@ static void test_create_remove_shortcut(void)
create_test_files();
create_file("msitest\\target.txt", 1000);
- create_database(msifile, crs_tables, sizeof(crs_tables) / sizeof(msi_table));
+ create_database(msifile, crs_tables, ARRAY_SIZE(crs_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5602,7 +5602,7 @@ static void test_publish_components(void)
create_test_files();
create_file("msitest\\english.txt", 1000);
- create_database(msifile, pub_tables, sizeof(pub_tables) / sizeof(msi_table));
+ create_database(msifile, pub_tables, ARRAY_SIZE(pub_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5688,7 +5688,7 @@ static void test_remove_duplicate_files(void)
create_file("msitest\\original.txt", 1000);
create_file("msitest\\original2.txt", 1000);
create_file("msitest\\original3.txt", 1000);
- create_database(msifile, rd_tables, sizeof(rd_tables) / sizeof(msi_table));
+ create_database(msifile, rd_tables, ARRAY_SIZE(rd_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5736,7 +5736,7 @@ static void test_find_related_products(void)
create_test_files();
create_file("msitest\\product.txt", 1000);
- create_database(msifile, frp_tables, sizeof(frp_tables) / sizeof(msi_table));
+ create_database(msifile, frp_tables, ARRAY_SIZE(frp_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5780,7 +5780,7 @@ static void test_ini_values(void)
create_test_files();
create_file("msitest\\inifile.txt", 1000);
- create_database(msifile, ini_tables, sizeof(ini_tables) / sizeof(msi_table));
+ create_database(msifile, ini_tables, ARRAY_SIZE(ini_tables));
lstrcpyA(inifile, PROG_FILES_DIR);
lstrcatA(inifile, "\\msitest");
@@ -5841,7 +5841,7 @@ static void test_register_class_info(void)
create_test_files();
create_file("msitest\\class.txt", 1000);
- create_database(msifile, rci_tables, sizeof(rci_tables) / sizeof(msi_table));
+ create_database(msifile, rci_tables, ARRAY_SIZE(rci_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5906,7 +5906,7 @@ static void test_register_extension_info(void)
create_test_files();
create_file("msitest\\extension.txt", 1000);
- create_database(msifile, rei_tables, sizeof(rei_tables) / sizeof(msi_table));
+ create_database(msifile, rei_tables, ARRAY_SIZE(rei_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5958,7 +5958,7 @@ static void test_register_progid_info(void)
create_test_files();
create_file("msitest\\progid.txt", 1000);
- create_database(msifile, rpi_tables, sizeof(rpi_tables) / sizeof(msi_table));
+ create_database(msifile, rpi_tables, ARRAY_SIZE(rpi_tables));
res = RegCreateKeyExA(HKEY_CLASSES_ROOT, "Winetest.Orphaned", 0, NULL, 0,
KEY_ALL_ACCESS, NULL, &hkey, NULL);
@@ -6084,7 +6084,7 @@ static void test_register_mime_info(void)
create_test_files();
create_file("msitest\\mime.txt", 1000);
- create_database(msifile, rmi_tables, sizeof(rmi_tables) / sizeof(msi_table));
+ create_database(msifile, rmi_tables, ARRAY_SIZE(rmi_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -6182,7 +6182,7 @@ static void test_publish_assemblies(void)
create_file_data("msitest\\manifest_local.txt", manifest_local, 0);
create_file("msitest\\application_win32.txt", 1000);
create_file("msitest\\application_dotnet.txt", 1000);
- create_database(msifile, pa_tables, sizeof(pa_tables) / sizeof(msi_table));
+ create_database(msifile, pa_tables, ARRAY_SIZE(pa_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -6340,7 +6340,7 @@ static void test_remove_existing_products(void)
create_test_files();
create_file("msitest\\rep.txt", 1000);
- create_database(msifile, rep_tables, sizeof(rep_tables) / sizeof(msi_table));
+ create_database(msifile, rep_tables, ARRAY_SIZE(rep_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
diff --git a/dlls/msi/tests/automation.c b/dlls/msi/tests/automation.c
index e4d2faad5c..2554df7ee6 100644
--- a/dlls/msi/tests/automation.c
+++ b/dlls/msi/tests/automation.c
@@ -355,9 +355,7 @@ static BOOL create_package(LPWSTR path)
DWORD len;
/* Prepare package */
- create_database(msifile, tables,
- sizeof(tables) / sizeof(msi_table), summary_info,
- sizeof(summary_info) / sizeof(msi_summary_info));
+ create_database(msifile, tables, ARRAY_SIZE(tables), summary_info, ARRAY_SIZE(summary_info));
len = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,
CURR_DIR, -1, path, MAX_PATH);
@@ -903,7 +901,7 @@ static HRESULT Installer_CreateRecord(int count, IDispatch **pRecord)
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -918,7 +916,7 @@ static HRESULT Installer_CreateRecord(int count, IDispatch **pRecord)
static HRESULT Installer_RegistryValue(HKEY hkey, LPCWSTR szKey, VARIANT vValue, VARIANT *pVarResult, VARTYPE vtExpect)
{
VARIANTARG vararg[3];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
VariantInit(&vararg[2]);
V_VT(&vararg[2]) = VT_I4;
@@ -983,7 +981,7 @@ static HRESULT Installer_OpenPackage(LPCWSTR szPackagePath, int options, IDispat
{
VARIANT varresult;
VARIANTARG vararg[2];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[1]);
@@ -1002,7 +1000,7 @@ static HRESULT Installer_OpenDatabase(LPCWSTR szDatabasePath, int openmode, IDis
{
VARIANT varresult;
VARIANTARG vararg[2];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[1]);
@@ -1021,7 +1019,7 @@ static HRESULT Installer_InstallProduct(LPCWSTR szPackagePath, LPCWSTR szPropert
{
VARIANT varresult;
VARIANTARG vararg[2];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
VariantInit(&vararg[1]);
V_VT(&vararg[1]) = VT_BSTR;
@@ -1037,7 +1035,7 @@ static HRESULT Installer_ProductState(LPCWSTR szProduct, int *pInstallState)
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1054,7 +1052,7 @@ static HRESULT Installer_ProductInfo(LPCWSTR szProduct, LPCWSTR szAttribute, LPW
{
VARIANT varresult;
VARIANTARG vararg[2];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[1]);
@@ -1085,7 +1083,7 @@ static HRESULT Installer_RelatedProducts(LPCWSTR szProduct, IDispatch **pStringL
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1127,7 +1125,7 @@ static HRESULT Installer_SummaryInformation(BSTR PackagePath, int UpdateCount, I
{
VARIANT varresult;
VARIANTARG vararg[2];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[1]);
@@ -1157,7 +1155,7 @@ static HRESULT Session_PropertyGet(IDispatch *pSession, LPCWSTR szName, LPWSTR s
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1175,7 +1173,7 @@ static HRESULT Session_PropertyPut(IDispatch *pSession, LPCWSTR szName, LPCWSTR
VARIANT varresult;
VARIANTARG vararg[2];
DISPID dispid = DISPID_PROPERTYPUT;
- DISPPARAMS dispparams = {vararg, &dispid, sizeof(vararg)/sizeof(VARIANTARG), 1};
+ DISPPARAMS dispparams = {vararg, &dispid, ARRAY_SIZE(vararg), 1};
VariantInit(&vararg[1]);
V_VT(&vararg[1]) = VT_BSTR;
@@ -1203,7 +1201,7 @@ static HRESULT Session_ModeGet(IDispatch *pSession, int iFlag, VARIANT_BOOL *mod
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1221,7 +1219,7 @@ static HRESULT Session_ModePut(IDispatch *pSession, int iFlag, VARIANT_BOOL mode
VARIANT varresult;
VARIANTARG vararg[2];
DISPID dispid = DISPID_PROPERTYPUT;
- DISPPARAMS dispparams = {vararg, &dispid, sizeof(vararg)/sizeof(VARIANTARG), 1};
+ DISPPARAMS dispparams = {vararg, &dispid, ARRAY_SIZE(vararg), 1};
VariantInit(&vararg[1]);
V_VT(&vararg[1]) = VT_I4;
@@ -1248,7 +1246,7 @@ static HRESULT Session_DoAction(IDispatch *pSession, LPCWSTR szAction, int *iRet
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1265,7 +1263,7 @@ static HRESULT Session_EvaluateCondition(IDispatch *pSession, LPCWSTR szConditio
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1282,7 +1280,7 @@ static HRESULT Session_Message(IDispatch *pSession, LONG kind, IDispatch *record
{
VARIANT varresult;
VARIANTARG vararg[2];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&varresult);
@@ -1303,7 +1301,7 @@ static HRESULT Session_SetInstallLevel(IDispatch *pSession, LONG iInstallLevel)
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
VariantInit(&vararg[0]);
V_VT(&vararg[0]) = VT_I4;
@@ -1316,7 +1314,7 @@ static HRESULT Session_FeatureCurrentState(IDispatch *pSession, LPCWSTR szName,
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1333,7 +1331,7 @@ static HRESULT Session_FeatureRequestStateGet(IDispatch *pSession, LPCWSTR szNam
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1351,7 +1349,7 @@ static HRESULT Session_FeatureRequestStatePut(IDispatch *pSession, LPCWSTR szNam
VARIANT varresult;
VARIANTARG vararg[2];
DISPID dispid = DISPID_PROPERTYPUT;
- DISPPARAMS dispparams = {vararg, &dispid, sizeof(vararg)/sizeof(VARIANTARG), 1};
+ DISPPARAMS dispparams = {vararg, &dispid, ARRAY_SIZE(vararg), 1};
VariantInit(&vararg[1]);
V_VT(&vararg[1]) = VT_BSTR;
@@ -1367,7 +1365,7 @@ static HRESULT Database_OpenView(IDispatch *pDatabase, LPCWSTR szSql, IDispatch
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1383,7 +1381,7 @@ static HRESULT Database_SummaryInformation(IDispatch *pDatabase, int iUpdateCoun
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1399,7 +1397,7 @@ static HRESULT View_Execute(IDispatch *pView, IDispatch *pRecord)
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
VariantInit(&vararg[0]);
V_VT(&vararg[0]) = VT_DISPATCH;
@@ -1421,7 +1419,7 @@ static HRESULT View_Modify(IDispatch *pView, int iMode, IDispatch *pRecord)
{
VARIANT varresult;
VARIANTARG vararg[2];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
VariantInit(&vararg[1]);
V_VT(&vararg[1]) = VT_I4;
@@ -1456,7 +1454,7 @@ static HRESULT Record_StringDataGet(IDispatch *pRecord, int iField, LPWSTR szStr
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1474,7 +1472,7 @@ static HRESULT Record_StringDataPut(IDispatch *pRecord, int iField, LPCWSTR szSt
VARIANT varresult;
VARIANTARG vararg[2];
DISPID dispid = DISPID_PROPERTYPUT;
- DISPPARAMS dispparams = {vararg, &dispid, sizeof(vararg)/sizeof(VARIANTARG), 1};
+ DISPPARAMS dispparams = {vararg, &dispid, ARRAY_SIZE(vararg), 1};
VariantInit(&vararg[1]);
V_VT(&vararg[1]) = VT_I4;
@@ -1490,7 +1488,7 @@ static HRESULT Record_IntegerDataGet(IDispatch *pRecord, int iField, int *pValue
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1508,7 +1506,7 @@ static HRESULT Record_IntegerDataPut(IDispatch *pRecord, int iField, int iValue)
VARIANT varresult;
VARIANTARG vararg[2];
DISPID dispid = DISPID_PROPERTYPUT;
- DISPPARAMS dispparams = {vararg, &dispid, sizeof(vararg)/sizeof(VARIANTARG), 1};
+ DISPPARAMS dispparams = {vararg, &dispid, ARRAY_SIZE(vararg), 1};
VariantInit(&vararg[1]);
V_VT(&vararg[1]) = VT_I4;
@@ -1533,7 +1531,7 @@ static HRESULT StringList_Item(IDispatch *pStringList, int iIndex, LPWSTR szStri
{
VARIANT varresult;
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
HRESULT hr;
VariantInit(&vararg[0]);
@@ -1559,7 +1557,7 @@ static HRESULT StringList_Count(IDispatch *pStringList, int *pCount)
static HRESULT SummaryInfo_PropertyGet(IDispatch *pSummaryInfo, int pid, VARIANT *pVarResult, VARTYPE vtExpect)
{
VARIANTARG vararg[1];
- DISPPARAMS dispparams = {vararg, NULL, sizeof(vararg)/sizeof(VARIANTARG), 0};
+ DISPPARAMS dispparams = {vararg, NULL, ARRAY_SIZE(vararg), 0};
VariantInit(&vararg[0]);
V_VT(&vararg[0]) = VT_I4;
@@ -1572,7 +1570,7 @@ static HRESULT SummaryInfo_PropertyPut(IDispatch *pSummaryInfo, int pid, VARIANT
VARIANT varresult;
VARIANTARG vararg[2];
DISPID dispid = DISPID_PROPERTYPUT;
- DISPPARAMS dispparams = {vararg, &dispid, sizeof(vararg)/sizeof(VARIANTARG), 1};
+ DISPPARAMS dispparams = {vararg, &dispid, ARRAY_SIZE(vararg), 1};
VariantInit(&vararg[1]);
V_VT(&vararg[1]) = VT_I4;
@@ -1850,7 +1848,7 @@ static void test_Database(IDispatch *pDatabase, BOOL readonly)
ok(pSummaryInfo != NULL, "Database_SummaryInformation should not have returned NULL record\n");
if (pSummaryInfo)
{
- test_SummaryInfo(pSummaryInfo, summary_info, sizeof(summary_info)/sizeof(msi_summary_info), readonly);
+ test_SummaryInfo(pSummaryInfo, summary_info, ARRAY_SIZE(summary_info), readonly);
IDispatch_Release(pSummaryInfo);
}
}
@@ -2697,7 +2695,7 @@ static void test_Installer(void)
ok(hr == S_OK, "Installer_SummaryInformation failed, hresult 0x%08x\n", hr);
if (hr == S_OK)
{
- test_SummaryInfo(pSumInfo, summary_info, sizeof(summary_info)/sizeof(msi_summary_info), TRUE);
+ test_SummaryInfo(pSumInfo, summary_info, ARRAY_SIZE(summary_info), TRUE);
IDispatch_Release(pSumInfo);
}
diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c
index ff54a95ab1..2b927b78f2 100644
--- a/dlls/msi/tests/db.c
+++ b/dlls/msi/tests/db.c
@@ -5221,12 +5221,12 @@ static void test_collation(void)
r = MsiViewFetch(hview, &hrec);
ok(r == ERROR_SUCCESS, "MsiViewFetch failed\n");
- sz = sizeof(bufferW) / sizeof(bufferW[0]);
+ sz = ARRAY_SIZE(bufferW);
r = MsiRecordGetStringW(hrec, 1, bufferW, &sz);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
ok(!memcmp(bufferW, letter_a_ring, sizeof(letter_a_ring)),
"Expected %s, got %s\n", wine_dbgstr_w(letter_a_ring), wine_dbgstr_w(bufferW));
- sz = sizeof(bufferW) / sizeof(bufferW[0]);
+ sz = ARRAY_SIZE(bufferW);
r = MsiRecordGetStringW(hrec, 2, bufferW, &sz);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
ok(!lstrcmpW(bufferW, letter_C), "Expected C, got %s\n", wine_dbgstr_w(bufferW));
@@ -5234,12 +5234,12 @@ static void test_collation(void)
r = MsiViewFetch(hview, &hrec);
ok(r == ERROR_SUCCESS, "MsiViewFetch failed\n");
- sz = sizeof(bufferW) / sizeof(bufferW[0]);
+ sz = ARRAY_SIZE(bufferW);
r = MsiRecordGetStringW(hrec, 1, bufferW, &sz);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
ok(!memcmp(bufferW, letter_a_with_ring, sizeof(letter_a_with_ring)),
"Expected %s, got %s\n", wine_dbgstr_w(letter_a_with_ring), wine_dbgstr_w(bufferW));
- sz = sizeof(bufferW) / sizeof(bufferW[0]);
+ sz = ARRAY_SIZE(bufferW);
r = MsiRecordGetStringW(hrec, 2, bufferW, &sz);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
ok(!lstrcmpW(bufferW, letter_D), "Expected D, got %s\n", wine_dbgstr_w(bufferW));
@@ -5257,12 +5257,12 @@ static void test_collation(void)
r = MsiViewFetch(hview, &hrec);
ok(r == ERROR_SUCCESS, "MsiViewFetch failed\n");
- sz = sizeof(bufferW) / sizeof(bufferW[0]);
+ sz = ARRAY_SIZE(bufferW);
r = MsiRecordGetStringW(hrec, 1, bufferW, &sz);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
ok(!memcmp(bufferW, letter_a_with_ring, sizeof(letter_a_with_ring)),
"Expected %s, got %s\n", wine_dbgstr_w(letter_a_with_ring), wine_dbgstr_w(bufferW));
- sz = sizeof(bufferW) / sizeof(bufferW[0]);
+ sz = ARRAY_SIZE(bufferW);
r = MsiRecordGetStringW(hrec, 2, bufferW, &sz);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
ok(!lstrcmpW(bufferW, letter_D), "Expected D, got %s\n", wine_dbgstr_w(bufferW));
diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c
index 951f0e7222..f21e32789f 100644
--- a/dlls/msi/tests/install.c
+++ b/dlls/msi/tests/install.c
@@ -2706,7 +2706,7 @@ static void test_MsiInstallProduct(void)
"Expected ERROR_PATH_NOT_FOUND, got %d\n", r);
create_test_files();
- create_database(msifile, tables, sizeof(tables) / sizeof(msi_table));
+ create_database(msifile, tables, ARRAY_SIZE(tables));
/* install, don't publish */
r = MsiInstallProductA(msifile, NULL);
@@ -2757,7 +2757,7 @@ static void test_MsiInstallProduct(void)
ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
RegDeleteKeyA(HKEY_CURRENT_USER, "SOFTWARE\\Wine\\msitest");
- create_database(msifile, up_tables, sizeof(up_tables) / sizeof(msi_table));
+ create_database(msifile, up_tables, ARRAY_SIZE(up_tables));
/* not published, RemovePreviousVersions set */
r = MsiInstallProductA(msifile, NULL);
@@ -2769,7 +2769,7 @@ static void test_MsiInstallProduct(void)
ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
RegDeleteKeyA(HKEY_CURRENT_USER, "SOFTWARE\\Wine\\msitest");
- create_database(msifile, up2_tables, sizeof(up2_tables) / sizeof(msi_table));
+ create_database(msifile, up2_tables, ARRAY_SIZE(up2_tables));
/* not published, version number bumped */
r = MsiInstallProductA(msifile, NULL);
@@ -2781,7 +2781,7 @@ static void test_MsiInstallProduct(void)
ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
RegDeleteKeyA(HKEY_CURRENT_USER, "SOFTWARE\\Wine\\msitest");
- create_database(msifile, up3_tables, sizeof(up3_tables) / sizeof(msi_table));
+ create_database(msifile, up3_tables, ARRAY_SIZE(up3_tables));
/* not published, RemovePreviousVersions set and version number bumped */
r = MsiInstallProductA(msifile, NULL);
@@ -2793,7 +2793,7 @@ static void test_MsiInstallProduct(void)
ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
RegDeleteKeyA(HKEY_CURRENT_USER, "SOFTWARE\\Wine\\msitest");
- create_database(msifile, up4_tables, sizeof(up4_tables) / sizeof(msi_table));
+ create_database(msifile, up4_tables, ARRAY_SIZE(up4_tables));
/* install, publish product */
r = MsiInstallProductA(msifile, "PUBLISH_PRODUCT=1");
@@ -2804,7 +2804,7 @@ static void test_MsiInstallProduct(void)
res = RegOpenKeyA(HKEY_CURRENT_USER, "SOFTWARE\\Wine\\msitest", &hkey);
ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %d\n", res);
- create_database(msifile, up4_tables, sizeof(up4_tables) / sizeof(msi_table));
+ create_database(msifile, up4_tables, ARRAY_SIZE(up4_tables));
/* published, reinstall */
r = MsiInstallProductA(msifile, NULL);
@@ -2815,7 +2815,7 @@ static void test_MsiInstallProduct(void)
res = RegOpenKeyA(HKEY_CURRENT_USER, "SOFTWARE\\Wine\\msitest", &hkey);
ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %d\n", res);
- create_database(msifile, up5_tables, sizeof(up5_tables) / sizeof(msi_table));
+ create_database(msifile, up5_tables, ARRAY_SIZE(up5_tables));
/* published product, RemovePreviousVersions set */
r = MsiInstallProductA(msifile, NULL);
@@ -2826,7 +2826,7 @@ static void test_MsiInstallProduct(void)
res = RegOpenKeyA(HKEY_CURRENT_USER, "SOFTWARE\\Wine\\msitest", &hkey);
ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %d\n", res);
- create_database(msifile, up6_tables, sizeof(up6_tables) / sizeof(msi_table));
+ create_database(msifile, up6_tables, ARRAY_SIZE(up6_tables));
/* published product, version number bumped */
r = MsiInstallProductA(msifile, NULL);
@@ -2837,7 +2837,7 @@ static void test_MsiInstallProduct(void)
res = RegOpenKeyA(HKEY_CURRENT_USER, "SOFTWARE\\Wine\\msitest", &hkey);
ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %d\n", res);
- create_database(msifile, up7_tables, sizeof(up7_tables) / sizeof(msi_table));
+ create_database(msifile, up7_tables, ARRAY_SIZE(up7_tables));
/* published product, RemovePreviousVersions set and version number bumped */
r = MsiInstallProductA(msifile, NULL);
@@ -2863,7 +2863,7 @@ static void test_MsiSetComponentState(void)
char path[MAX_PATH];
UINT r;
- create_database(msifile, tables, sizeof(tables) / sizeof(msi_table));
+ create_database(msifile, tables, ARRAY_SIZE(tables));
CoInitialize(NULL);
@@ -2913,7 +2913,7 @@ static void test_packagecoltypes(void)
LPCSTR query;
UINT r, count;
- create_database(msifile, tables, sizeof(tables) / sizeof(msi_table));
+ create_database(msifile, tables, ARRAY_SIZE(tables));
CoInitialize(NULL);
@@ -3032,7 +3032,7 @@ static void test_continuouscabs(void)
}
create_cc_test_files();
- create_database(msifile, cc_tables, sizeof(cc_tables) / sizeof(msi_table));
+ create_database(msifile, cc_tables, ARRAY_SIZE(cc_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3055,7 +3055,7 @@ static void test_continuouscabs(void)
DeleteFileA(msifile);
create_cc_test_files();
- create_database(msifile, cc2_tables, sizeof(cc2_tables) / sizeof(msi_table));
+ create_database(msifile, cc2_tables, ARRAY_SIZE(cc2_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3081,7 +3081,7 @@ static void test_continuouscabs(void)
/* Filename from cab is right and the one from msi is wrong */
create_cc_test_files();
- create_database(msifile, cc3_tables, sizeof(cc3_tables) / sizeof(msi_table));
+ create_database(msifile, cc3_tables, ARRAY_SIZE(cc3_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3105,7 +3105,7 @@ static void test_continuouscabs(void)
/* Filename from msi is right and the one from cab is wrong */
create_cc_test_files();
ok(MoveFileA("test2.cab", "test2_.cab"), "Cannot rename test2.cab to test2_.cab\n");
- create_database(msifile, cc3_tables, sizeof(cc3_tables) / sizeof(msi_table));
+ create_database(msifile, cc3_tables, ARRAY_SIZE(cc3_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3137,7 +3137,7 @@ static void test_caborder(void)
create_file("augustus", 50000);
create_file("caesar", 500);
- create_database(msifile, cc_tables, sizeof(cc_tables) / sizeof(msi_table));
+ create_database(msifile, cc_tables, ARRAY_SIZE(cc_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3177,7 +3177,7 @@ static void test_caborder(void)
DeleteFileA(msifile);
create_cc_test_files();
- create_database(msifile, co_tables, sizeof(co_tables) / sizeof(msi_table));
+ create_database(msifile, co_tables, ARRAY_SIZE(co_tables));
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
@@ -3193,7 +3193,7 @@ static void test_caborder(void)
DeleteFileA(msifile);
create_cc_test_files();
- create_database(msifile, co2_tables, sizeof(co2_tables) / sizeof(msi_table));
+ create_database(msifile, co2_tables, ARRAY_SIZE(co2_tables));
r = MsiInstallProductA(msifile, NULL);
ok(!delete_pf("msitest\\caesar", TRUE), "File is installed\n");
@@ -3229,7 +3229,7 @@ static void test_mixedmedia(void)
create_file("msitest\\augustus", 500);
create_file("caesar", 500);
- create_database(msifile, mm_tables, sizeof(mm_tables) / sizeof(msi_table));
+ create_database(msifile, mm_tables, ARRAY_SIZE(mm_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3262,7 +3262,7 @@ static void test_samesequence(void)
UINT r;
create_cc_test_files();
- create_database(msifile, ss_tables, sizeof(ss_tables) / sizeof(msi_table));
+ create_database(msifile, ss_tables, ARRAY_SIZE(ss_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3291,7 +3291,7 @@ static void test_uiLevelFlags(void)
UINT r;
create_cc_test_files();
- create_database(msifile, ui_tables, sizeof(ui_tables) / sizeof(msi_table));
+ create_database(msifile, ui_tables, ARRAY_SIZE(ui_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE | INSTALLUILEVEL_SOURCERESONLY, NULL);
@@ -3346,7 +3346,7 @@ static void test_readonlyfile(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database(msifile, rof_tables, sizeof(rof_tables) / sizeof(msi_table));
+ create_database(msifile, rof_tables, ARRAY_SIZE(rof_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3398,7 +3398,7 @@ static void test_readonlyfile_cab(void)
create_cab_file("test1.cab", MEDIA_SIZE, "maximus\0");
DeleteFileA("maximus");
- create_database(msifile, rofc_tables, sizeof(rofc_tables) / sizeof(msi_table));
+ create_database(msifile, rofc_tables, ARRAY_SIZE(rofc_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3452,7 +3452,7 @@ static void test_setdirproperty(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database(msifile, sdp_tables, sizeof(sdp_tables) / sizeof(msi_table));
+ create_database(msifile, sdp_tables, ARRAY_SIZE(sdp_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3493,7 +3493,7 @@ static void test_cabisextracted(void)
create_cab_file("test2.cab", MEDIA_SIZE, "augustus\0");
create_cab_file("test3.cab", MEDIA_SIZE, "caesar\0");
- create_database(msifile, cie_tables, sizeof(cie_tables) / sizeof(msi_table));
+ create_database(msifile, cie_tables, ARRAY_SIZE(cie_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3727,7 +3727,7 @@ static void test_transformprop(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\augustus", 500);
- create_database(msifile, tp_tables, sizeof(tp_tables) / sizeof(msi_table));
+ create_database(msifile, tp_tables, ARRAY_SIZE(tp_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3775,7 +3775,7 @@ static void test_currentworkingdir(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\augustus", 500);
- create_database(msifile, cwd_tables, sizeof(cwd_tables) / sizeof(msi_table));
+ create_database(msifile, cwd_tables, ARRAY_SIZE(cwd_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3859,7 +3859,7 @@ static void test_admin(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\augustus", 500);
- create_database(msifile, adm_tables, sizeof(adm_tables) / sizeof(msi_table));
+ create_database(msifile, adm_tables, ARRAY_SIZE(adm_tables));
set_admin_summary_info(msifileW);
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -3937,7 +3937,7 @@ static void test_adminprops(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\augustus", 500);
- create_database(msifile, amp_tables, sizeof(amp_tables) / sizeof(msi_table));
+ create_database(msifile, amp_tables, ARRAY_SIZE(amp_tables));
set_admin_summary_info(msifileW);
set_admin_property_stream(msifile);
@@ -3990,7 +3990,7 @@ static void test_missingcab(void)
create_file("maximus", 500);
create_file("tiberius", 500);
- create_database(msifile, mc_tables, sizeof(mc_tables) / sizeof(msi_table));
+ create_database(msifile, mc_tables, ARRAY_SIZE(mc_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4058,7 +4058,7 @@ static void test_sourcefolder(void)
CreateDirectoryA("msitest", NULL);
create_file("augustus", 500);
- create_database(msifile, sf_tables, sizeof(sf_tables) / sizeof(msi_table));
+ create_database(msifile, sf_tables, ARRAY_SIZE(sf_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4097,7 +4097,7 @@ static void test_customaction1(void)
UINT r;
create_test_files();
- create_database(msifile, ca1_tables, sizeof(ca1_tables) / sizeof(msi_table));
+ create_database(msifile, ca1_tables, ARRAY_SIZE(ca1_tables));
/* create a test table */
MsiOpenDatabaseW(msifileW, MSIDBOPEN_TRANSACT, &hdb);
@@ -4153,7 +4153,7 @@ static void test_customaction51(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\augustus", 500);
- create_database(msifile, ca51_tables, sizeof(ca51_tables) / sizeof(msi_table));
+ create_database(msifile, ca51_tables, ARRAY_SIZE(ca51_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4197,7 +4197,7 @@ static void test_installstate(void)
create_file("msitest\\lambda", 500);
create_file("msitest\\mu", 500);
- create_database(msifile, is_tables, sizeof(is_tables) / sizeof(msi_table));
+ create_database(msifile, is_tables, ARRAY_SIZE(is_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4588,11 +4588,11 @@ static void test_sourcepath(void)
return;
}
- create_database(msifile, sp_tables, sizeof(sp_tables) / sizeof(msi_table));
+ create_database(msifile, sp_tables, ARRAY_SIZE(sp_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
- for (i = 0; i < sizeof(spmap) / sizeof(spmap[0]); i++)
+ for (i = 0; i < ARRAY_SIZE(spmap); i++)
{
if (spmap[i].sost)
{
@@ -4675,7 +4675,7 @@ static void test_missingcomponent(void)
create_file("msitest\\lithium", 500);
create_file("beryllium", 500);
- create_database(msifile, mcp_tables, sizeof(mcp_tables) / sizeof(msi_table));
+ create_database(msifile, mcp_tables, ARRAY_SIZE(mcp_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4728,7 +4728,7 @@ static void test_sourcedirprop(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\augustus", 500);
- create_database(msifile, ca51_tables, sizeof(ca51_tables) / sizeof(msi_table));
+ create_database(msifile, ca51_tables, ARRAY_SIZE(ca51_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4788,8 +4788,7 @@ static void test_adminimage(void)
create_file("msitest\\cabout\\new\\five.txt", 100);
create_file("msitest\\filename", 100);
- create_database_wordcount(msifile, ai_tables,
- sizeof(ai_tables) / sizeof(msi_table),
+ create_database_wordcount(msifile, ai_tables, ARRAY_SIZE(ai_tables),
100, msidbSumInfoSourceTypeAdminImage, ";1033",
"{004757CA-5092-49C2-AD20-28E1CE0DF5F2}");
@@ -4833,7 +4832,7 @@ static void test_propcase(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\augustus", 500);
- create_database(msifile, pc_tables, sizeof(pc_tables) / sizeof(msi_table));
+ create_database(msifile, pc_tables, ARRAY_SIZE(pc_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4909,7 +4908,7 @@ static void test_int_widths( void )
r = MsiOpenDatabaseW(msidb, MSIDBOPEN_CREATE, &db);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
- for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++)
+ for (i = 0; i < ARRAY_SIZE(tests); i++)
{
DWORD count;
HANDLE handle = CreateFileW(msitable, GENERIC_WRITE, 0, NULL,
@@ -4942,7 +4941,7 @@ static void test_shortcut(void)
}
create_test_files();
- create_database(msifile, sc_tables, sizeof(sc_tables) / sizeof(msi_table));
+ create_database(msifile, sc_tables, ARRAY_SIZE(sc_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -4989,7 +4988,7 @@ static void test_preselected(void)
}
create_test_files();
- create_database(msifile, ps_tables, sizeof(ps_tables) / sizeof(msi_table));
+ create_database(msifile, ps_tables, ARRAY_SIZE(ps_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5045,7 +5044,7 @@ static void test_installed_prop(void)
}
create_test_files();
- create_database(msifile, ip_tables, sizeof(ip_tables) / sizeof(msi_table));
+ create_database(msifile, ip_tables, ARRAY_SIZE(ip_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5084,7 +5083,7 @@ static void test_allusers_prop(void)
}
create_test_files();
- create_database(msifile, aup_tables, sizeof(aup_tables) / sizeof(msi_table));
+ create_database(msifile, aup_tables, ARRAY_SIZE(aup_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5105,7 +5104,7 @@ static void test_allusers_prop(void)
delete_test_files();
create_test_files();
- create_database(msifile, aup2_tables, sizeof(aup2_tables) / sizeof(msi_table));
+ create_database(msifile, aup2_tables, ARRAY_SIZE(aup2_tables));
/* ALLUSERS property set to 1 */
r = MsiInstallProductA(msifile, "FULL=1");
@@ -5119,7 +5118,7 @@ static void test_allusers_prop(void)
delete_test_files();
create_test_files();
- create_database(msifile, aup3_tables, sizeof(aup3_tables) / sizeof(msi_table));
+ create_database(msifile, aup3_tables, ARRAY_SIZE(aup3_tables));
/* ALLUSERS property set to 2 */
r = MsiInstallProductA(msifile, "FULL=1");
@@ -5133,7 +5132,7 @@ static void test_allusers_prop(void)
delete_test_files();
create_test_files();
- create_database(msifile, aup4_tables, sizeof(aup4_tables) / sizeof(msi_table));
+ create_database(msifile, aup4_tables, ARRAY_SIZE(aup4_tables));
/* ALLUSERS property set to 2, conditioned on ALLUSERS = 1 */
r = MsiInstallProductA(msifile, "FULL=1");
@@ -5248,7 +5247,7 @@ static void test_file_in_use(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database(msifile, fiu_tables, sizeof(fiu_tables) / sizeof(msi_table));
+ create_database(msifile, fiu_tables, ARRAY_SIZE(fiu_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5310,7 +5309,7 @@ static void test_file_in_use_cab(void)
create_cab_file("test1.cab", MEDIA_SIZE, "maximus\0");
DeleteFileA("maximus");
- create_database(msifile, fiuc_tables, sizeof(fiuc_tables) / sizeof(msi_table));
+ create_database(msifile, fiuc_tables, ARRAY_SIZE(fiuc_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5368,7 +5367,7 @@ static void test_feature_override(void)
create_file("msitest\\override.txt", 1000);
create_file("msitest\\preselected.txt", 1000);
create_file("msitest\\notpreselected.txt", 1000);
- create_database(msifile, fo_tables, sizeof(fo_tables) / sizeof(msi_table));
+ create_database(msifile, fo_tables, ARRAY_SIZE(fo_tables));
if (is_wow64)
access |= KEY_WOW64_64KEY;
@@ -5448,7 +5447,7 @@ static void test_icon_table(void)
return;
}
- create_database(msifile, icon_base_tables, sizeof(icon_base_tables) / sizeof(msi_table));
+ create_database(msifile, icon_base_tables, ARRAY_SIZE(icon_base_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5528,7 +5527,7 @@ static void test_package_validation(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 100, "Intel;1033");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 100, "Intel;1033");
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5543,19 +5542,19 @@ static void test_package_validation(void)
ok(delete_pf("msitest", FALSE), "directory does not exist\n");
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 200, "Intel,9999;9999");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 200, "Intel,9999;9999");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_INSTALL_LANGUAGE_UNSUPPORTED, "Expected ERROR_INSTALL_LANGUAGE_UNSUPPORTED, got %u\n", r);
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 200, "Intel,1033;9999");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 200, "Intel,1033;9999");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_INSTALL_LANGUAGE_UNSUPPORTED, "Expected ERROR_INSTALL_LANGUAGE_UNSUPPORTED, got %u\n", r);
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 200, "Intel,9999;1033");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 200, "Intel,9999;1033");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
@@ -5563,25 +5562,25 @@ static void test_package_validation(void)
ok(delete_pf("msitest", FALSE), "directory does not exist\n");
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 200, "Intel64,9999;1033");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 200, "Intel64,9999;1033");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_INSTALL_PLATFORM_UNSUPPORTED, "Expected ERROR_INSTALL_PLATFORM_UNSUPPORTED, got %u\n", r);
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 200, "Intel32,1033;1033");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 200, "Intel32,1033;1033");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_INSTALL_PLATFORM_UNSUPPORTED, "Expected ERROR_INSTALL_PLATFORM_UNSUPPORTED, got %u\n", r);
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 200, "Intel32,9999;1033");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 200, "Intel32,9999;1033");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_INSTALL_PLATFORM_UNSUPPORTED, "Expected ERROR_INSTALL_PLATFORM_UNSUPPORTED, got %u\n", r);
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 100, "Intel;9999");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 100, "Intel;9999");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_INSTALL_LANGUAGE_UNSUPPORTED, "Expected ERROR_INSTALL_LANGUAGE_UNSUPPORTED, got %u\n", r);
@@ -5591,14 +5590,14 @@ static void test_package_validation(void)
if (GetSystemDefaultLangID() == MAKELANGID( LANG_ENGLISH, SUBLANG_ENGLISH_US ))
{
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 100, "Intel;9");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 100, "Intel;9");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
ok(delete_pf("msitest\\maximus", TRUE), "file does not exist\n");
ok(delete_pf("msitest", FALSE), "directory does not exist\n");
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 100, "Intel;1024");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 100, "Intel;1024");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
ok(delete_pf("msitest\\maximus", TRUE), "file does not exist\n");
@@ -5606,7 +5605,7 @@ static void test_package_validation(void)
}
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 100, "Intel32;0");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 100, "Intel32;0");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_INSTALL_PLATFORM_UNSUPPORTED, "Expected ERROR_INSTALL_PLATFORM_UNSUPPORTED, got %u\n", r);
@@ -5616,7 +5615,7 @@ static void test_package_validation(void)
if (is_64bit && !is_wow64)
{
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 100, "Intel;0");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 100, "Intel;0");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
@@ -5624,7 +5623,7 @@ static void test_package_validation(void)
ok(delete_pf("msitest", FALSE), "directory does not exist\n");
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 100, "x64;0");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 100, "x64;0");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_INSTALL_PACKAGE_INVALID, "Expected ERROR_INSTALL_PACKAGE_INVALID, got %u\n", r);
@@ -5632,7 +5631,7 @@ static void test_package_validation(void)
ok(!delete_pf("msitest", FALSE), "directory exists\n");
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 200, "x64;0");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 200, "x64;0");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
@@ -5642,7 +5641,7 @@ static void test_package_validation(void)
else if (is_wow64)
{
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 100, "Intel;0");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 100, "Intel;0");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
@@ -5650,7 +5649,7 @@ static void test_package_validation(void)
ok(delete_pf("msitest", FALSE), "directory does not exist\n");
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 100, "x64;0");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 100, "x64;0");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_INSTALL_PACKAGE_INVALID, "Expected ERROR_INSTALL_PACKAGE_INVALID, got %u\n", r);
@@ -5658,7 +5657,7 @@ static void test_package_validation(void)
ok(!delete_pf("msitest", FALSE), "directory exists\n");
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 200, "x64;0");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 200, "x64;0");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
@@ -5668,7 +5667,7 @@ static void test_package_validation(void)
else
{
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 100, "Intel;0");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 100, "Intel;0");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
@@ -5676,7 +5675,7 @@ static void test_package_validation(void)
ok(delete_pf("msitest", FALSE), "directory does not exist\n");
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 100, "Alpha,Beta,Intel;0");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 100, "Alpha,Beta,Intel;0");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
@@ -5684,7 +5683,7 @@ static void test_package_validation(void)
ok(delete_pf("msitest", FALSE), "directory does not exist\n");
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 100, "x64;0");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 100, "x64;0");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_INSTALL_PLATFORM_UNSUPPORTED, "Expected ERROR_INSTALL_PLATFORM_UNSUPPORTED, got %u\n", r);
@@ -5692,7 +5691,7 @@ static void test_package_validation(void)
ok(!delete_pf("msitest", FALSE), "directory exists\n");
DeleteFileA(msifile);
- create_database_template(msifile, pv_tables, sizeof(pv_tables)/sizeof(msi_table), 200, "x64;0");
+ create_database_template(msifile, pv_tables, ARRAY_SIZE(pv_tables), 200, "x64;0");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_INSTALL_PLATFORM_UNSUPPORTED, "Expected ERROR_INSTALL_PLATFORM_UNSUPPORTED, got %u\n", r);
@@ -5719,7 +5718,7 @@ static void test_upgrade_code(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\upgradecode.txt", 1000);
- create_database(msifile, uc_tables, sizeof(uc_tables) / sizeof(msi_table));
+ create_database(msifile, uc_tables, ARRAY_SIZE(uc_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5758,7 +5757,7 @@ static void test_mixed_package(void)
return;
}
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
- create_database_template(msifile, mixed_tables, sizeof(mixed_tables)/sizeof(msi_table), 200, "x64;1033");
+ create_database_template(msifile, mixed_tables, ARRAY_SIZE(mixed_tables), 200, "x64;1033");
r = MsiInstallProductA(msifile, NULL);
if (r == ERROR_INSTALL_PACKAGE_REJECTED)
@@ -5826,7 +5825,7 @@ static void test_mixed_package(void)
ok(res == ERROR_FILE_NOT_FOUND, "64-bit CLSID key not removed\n");
DeleteFileA( msifile );
- create_database_template(msifile, mixed_tables, sizeof(mixed_tables)/sizeof(msi_table), 200, "Intel;1033");
+ create_database_template(msifile, mixed_tables, ARRAY_SIZE(mixed_tables), 200, "Intel;1033");
r = MsiInstallProductA(msifile, NULL);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
@@ -5903,7 +5902,7 @@ static void test_volume_props(void)
}
CreateDirectoryA("msitest", NULL);
create_file("msitest\\volumeprop.txt", 1000);
- create_database(msifile, vp_tables, sizeof(vp_tables)/sizeof(msi_table));
+ create_database(msifile, vp_tables, ARRAY_SIZE(vp_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5929,9 +5928,9 @@ static void test_shared_component(void)
}
CreateDirectoryA("msitest", NULL);
create_file("msitest\\sharedcomponent.txt", 1000);
- create_database_wordcount(msifile, shc_tables, sizeof(shc_tables)/sizeof(shc_tables[0]),
+ create_database_wordcount(msifile, shc_tables, ARRAY_SIZE(shc_tables),
100, 0, ";", "{A8826420-FD72-4E61-9E15-C1944CF4CBE1}");
- create_database_wordcount(msifile2, shc2_tables, sizeof(shc2_tables)/sizeof(shc2_tables[0]),
+ create_database_wordcount(msifile2, shc2_tables, ARRAY_SIZE(shc2_tables),
100, 0, ";", "{A8B50B30-0E8A-4ACD-B3CF-1A5DC58B2739}");
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -5979,7 +5978,7 @@ static void test_remove_upgrade_code(void)
if (is_wow64) access |= KEY_WOW64_64KEY;
create_test_files();
- create_database( msifile, icon_base_tables, sizeof(icon_base_tables)/sizeof(icon_base_tables[0]) );
+ create_database( msifile, icon_base_tables, ARRAY_SIZE( icon_base_tables ));
MsiSetInternalUI( INSTALLUILEVEL_NONE, NULL );
@@ -6024,7 +6023,7 @@ static void test_feature_tree(void)
}
create_file( "msitest\\featuretree.txt", 1000 );
- create_database( msifile, ft_tables, sizeof(ft_tables)/sizeof(ft_tables[0]) );
+ create_database( msifile, ft_tables, ARRAY_SIZE( ft_tables ));
MsiSetInternalUI( INSTALLUILEVEL_NONE, NULL );
@@ -6063,7 +6062,7 @@ static void test_deferred_action(void)
GetTempFileNameA(path, "da", 0, file);
sprintf(buffer, "TESTPATH=\"%s\"", file);
- create_database(msifile, da_tables, sizeof(da_tables) / sizeof(da_tables[0]));
+ create_database(msifile, da_tables, ARRAY_SIZE(da_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -6102,7 +6101,7 @@ static void test_wow64(void)
}
create_test_files();
- create_database_template(msifile, x64_tables, sizeof(x64_tables)/sizeof(msi_table), 200, "x64;0");
+ create_database_template(msifile, x64_tables, ARRAY_SIZE(x64_tables), 200, "x64;0");
r = MsiInstallProductA(msifile, NULL);
if (r == ERROR_INSTALL_PACKAGE_REJECTED)
{
@@ -6155,7 +6154,7 @@ static void test_source_resolution(void)
}
create_test_files();
- create_database(msifile, sr_tables, sizeof(sr_tables) / sizeof(msi_table));
+ create_database(msifile, sr_tables, ARRAY_SIZE(sr_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
diff --git a/dlls/msi/tests/msi.c b/dlls/msi/tests/msi.c
index 62afa6e747..f4afef15db 100644
--- a/dlls/msi/tests/msi.c
+++ b/dlls/msi/tests/msi.c
@@ -1094,7 +1094,7 @@ static void test_MsiGetFileHash(void)
r = pMsiGetFileHashA(name, 0, NULL);
ok(r == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", r);
- for (i = 0; i < sizeof(hash_data) / sizeof(hash_data[0]); i++)
+ for (i = 0; i < ARRAY_SIZE(hash_data); i++)
{
int ret;
@@ -3313,7 +3313,7 @@ static void test_MsiProvideComponent(void)
create_test_files();
create_file("msitest\\sourcedir.txt", 1000);
- create_database(msifile, sd_tables, sizeof(sd_tables) / sizeof(msi_table));
+ create_database(msifile, sd_tables, ARRAY_SIZE(sd_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -13446,7 +13446,7 @@ static void test_MsiConfigureProductEx(void)
create_file_data("msitest\\helium", "helium", 500);
create_file_data("msitest\\lithium", "lithium", 500);
- create_database(msifile, mcp_tables, sizeof(mcp_tables) / sizeof(msi_table));
+ create_database(msifile, mcp_tables, ARRAY_SIZE(mcp_tables));
if (is_wow64)
access |= KEY_WOW64_64KEY;
@@ -13574,7 +13574,7 @@ static void test_MsiConfigureProductEx(void)
ok(!delete_pf("msitest\\lithium", TRUE), "File not removed\n");
ok(!delete_pf("msitest", FALSE), "Directory not removed\n");
- create_database(msifile, mcp_tables, sizeof(mcp_tables) / sizeof(msi_table));
+ create_database(msifile, mcp_tables, ARRAY_SIZE(mcp_tables));
/* install the product, machine */
r = MsiInstallProductA(msifile, "ALLUSERS=1 INSTALLLEVEL=10 PROPVAR=42");
@@ -13615,7 +13615,7 @@ static void test_MsiConfigureProductEx(void)
ok(pf_exists("msitest"), "File not installed\n");
RegCloseKey(props);
- create_database(msifile, mcp_tables, sizeof(mcp_tables) / sizeof(msi_table));
+ create_database(msifile, mcp_tables, ARRAY_SIZE(mcp_tables));
/* LastUsedSource can be used as a last resort */
r = MsiConfigureProductExA("{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}",
@@ -13723,7 +13723,7 @@ static void test_MsiSetFeatureAttributes(void)
skip("process is limited\n");
return;
}
- create_database( msifile, tables, sizeof(tables) / sizeof(tables[0]) );
+ create_database( msifile, tables, ARRAY_SIZE( tables ));
strcpy( path, CURR_DIR );
strcat( path, "\\" );
@@ -13805,7 +13805,7 @@ static void test_MsiGetFeatureInfo(void)
skip("process is limited\n");
return;
}
- create_database( msifile, tables, sizeof(tables) / sizeof(tables[0]) );
+ create_database( msifile, tables, ARRAY_SIZE( tables ));
strcpy( path, CURR_DIR );
strcat( path, "\\" );
@@ -13989,9 +13989,9 @@ static void test_lastusedsource(void)
create_cab_file("test1.cab", MEDIA_SIZE, "maximus\0");
DeleteFileA("maximus");
- create_database("msifile0.msi", lus0_tables, sizeof(lus0_tables) / sizeof(msi_table));
- create_database("msifile1.msi", lus1_tables, sizeof(lus1_tables) / sizeof(msi_table));
- create_database("msifile2.msi", lus2_tables, sizeof(lus2_tables) / sizeof(msi_table));
+ create_database("msifile0.msi", lus0_tables, ARRAY_SIZE(lus0_tables));
+ create_database("msifile1.msi", lus1_tables, ARRAY_SIZE(lus1_tables));
+ create_database("msifile2.msi", lus2_tables, ARRAY_SIZE(lus2_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
@@ -14111,7 +14111,7 @@ static void test_setpropertyfolder(void)
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
- create_database(msifile, spf_tables, sizeof(spf_tables) / sizeof(msi_table));
+ create_database(msifile, spf_tables, ARRAY_SIZE(spf_tables));
MsiSetInternalUI(INSTALLUILEVEL_FULL, NULL);
@@ -14154,7 +14154,7 @@ static void test_sourcedir_props(void)
create_test_files();
create_file("msitest\\sourcedir.txt", 1000);
- create_database(msifile, sd_tables, sizeof(sd_tables) / sizeof(msi_table));
+ create_database(msifile, sd_tables, ARRAY_SIZE(sd_tables));
MsiSetInternalUI(INSTALLUILEVEL_FULL, NULL);
@@ -14221,11 +14221,11 @@ static void test_concurrentinstall(void)
create_file("msitest\\maximus", 500);
create_file("msitest\\msitest\\augustus", 500);
- create_database(msifile, ci_tables, sizeof(ci_tables) / sizeof(msi_table));
+ create_database(msifile, ci_tables, ARRAY_SIZE(ci_tables));
lstrcpyA(path, CURR_DIR);
lstrcatA(path, "\\msitest\\concurrent.msi");
- create_database(path, ci2_tables, sizeof(ci2_tables) / sizeof(msi_table));
+ create_database(path, ci2_tables, ARRAY_SIZE(ci2_tables));
MsiSetInternalUI(INSTALLUILEVEL_FULL, NULL);
@@ -14269,7 +14269,7 @@ static void test_command_line_parsing(void)
}
create_test_files();
- create_database(msifile, cl_tables, sizeof(cl_tables)/sizeof(msi_table));
+ create_database(msifile, cl_tables, ARRAY_SIZE(cl_tables));
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c
index 09d2e0b61b..88bd60a8f2 100644
--- a/dlls/msi/tests/package.c
+++ b/dlls/msi/tests/package.c
@@ -187,7 +187,7 @@ static LSTATUS package_RegDeleteTreeW(HKEY hKey, LPCWSTR lpszSubKey, REGSAM acce
dwMaxSubkeyLen++;
dwMaxValueLen++;
dwMaxLen = max(dwMaxSubkeyLen, dwMaxValueLen);
- if (dwMaxLen > sizeof(szNameBuf)/sizeof(WCHAR))
+ if (dwMaxLen > ARRAY_SIZE(szNameBuf))
{
/* Name too big: alloc a buffer for it */
if (!(lpszName = HeapAlloc( GetProcessHeap(), 0, dwMaxLen*sizeof(WCHAR))))
diff --git a/dlls/msi/tests/patch.c b/dlls/msi/tests/patch.c
index a09084002e..b577982443 100644
--- a/dlls/msi/tests/patch.c
+++ b/dlls/msi/tests/patch.c
@@ -731,7 +731,7 @@ static void test_simple_patch( void )
CreateDirectoryA( "msitest", NULL );
create_file( "msitest\\patch.txt", 1000 );
- create_database( msifile, tables, sizeof(tables) / sizeof(struct msi_table) );
+ create_database( msifile, tables, ARRAY_SIZE(tables) );
create_patch( mspfile );
MsiSetInternalUI( INSTALLUILEVEL_NONE, NULL );
@@ -929,7 +929,7 @@ static void test_MsiOpenDatabase( void )
MsiCloseHandle( hdb );
DeleteFileA( mspfile );
- create_database( msifile, tables, sizeof(tables) / sizeof(struct msi_table) );
+ create_database( msifile, tables, ARRAY_SIZE(tables) );
create_patch( mspfile );
r = MsiOpenDatabaseW( msifileW, MSIDBOPEN_READONLY + MSIDBOPEN_PATCHFILE, &hdb );
@@ -1072,7 +1072,7 @@ static void test_system_tables( void )
CreateDirectoryA( "msitest", NULL );
create_file( "msitest\\patch.txt", 1000 );
- create_database( msifile, tables, sizeof(tables) / sizeof(struct msi_table) );
+ create_database( msifile, tables, ARRAY_SIZE(tables) );
create_patch( mspfile );
MsiSetInternalUI( INSTALLUILEVEL_NONE, NULL );
@@ -1261,7 +1261,7 @@ static void test_patch_registration( void )
CreateDirectoryA( "msitest", NULL );
create_file( "msitest\\patch.txt", 1000 );
- create_database( msifile, tables, sizeof(tables) / sizeof(struct msi_table) );
+ create_database( msifile, tables, ARRAY_SIZE(tables) );
create_patch( mspfile );
MsiSetInternalUI( INSTALLUILEVEL_NONE, NULL );
diff --git a/dlls/msi/tests/record.c b/dlls/msi/tests/record.c
index 777f1f78ed..d0ad15b8fe 100644
--- a/dlls/msi/tests/record.c
+++ b/dlls/msi/tests/record.c
@@ -138,7 +138,7 @@ static void test_msirecord(void)
ok(buf[0] == 0, "MsiRecordGetStringA returned the wrong string\n");
ok(sz == 0, "MsiRecordGetStringA returned the wrong length\n");
bufW[0] = 0;
- sz = sizeof bufW / sizeof bufW[0];
+ sz = ARRAY_SIZE(bufW);
r = MsiRecordGetStringW(h, 0, bufW, &sz);
ok(r == ERROR_SUCCESS, "Failed to get string at 0\n");
ok(bufW[0] == 0, "MsiRecordGetStringW returned the wrong string\n");
@@ -156,7 +156,7 @@ static void test_msirecord(void)
ok(buf[0] == 0, "MsiRecordGetStringA returned the wrong string\n");
ok(sz == 0, "MsiRecordGetStringA returned the wrong length\n");
bufW[0] = 0;
- sz = sizeof bufW / sizeof bufW[0];
+ sz = ARRAY_SIZE(bufW);
r = MsiRecordGetStringW(h, 0, bufW, &sz);
ok(r == ERROR_SUCCESS, "Failed to get string at 0\n");
ok(bufW[0] == 0, "MsiRecordGetStringW returned the wrong string\n");
--
2.14.4
June 15, 2018
Re: [PATCH] d3dx9/tests: Add initial tests for ID3DXFont::DrawText().
by Matteo Bruni
2018-06-15 13:16 GMT+02:00 Alexandre Julliard <julliard(a)winehq.org>:
> Matteo Bruni <mbruni(a)codeweavers.com> writes:
>
>> From: Kieran Duggan <kieranduggan15(a)gmail.com>
>>
>> Signed-off-by: Kieran Duggan <kieranduggan15(a)gmail.com>
>> Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com>
>> ---
>> dlls/d3dx9_36/tests/core.c | 81 +++++++++++++++++++++++++++++++++++-----------
>> 1 file changed, 62 insertions(+), 19 deletions(-)
>
> The tests fail:
>
> ../../../tools/runtest -q -P wine -T ../../.. -M d3dx9_36.dll -p d3dx9_36_test.exe.so core && touch core.ok
> core.c:612: Test failed: Got unexpected height 1.
> core.c:614: Test failed: Got unexpected height 1.
> core.c:616: Test failed: Got unexpected height 1.
> core.c:619: Test failed: Got unexpected height 1.
> core.c:624: Test failed: Got unexpected height 1.
> core.c:627: Test failed: Got unexpected rect right 0.
> core.c:628: Test failed: Got unexpected rect bottom 0.
> core.c:612: Test failed: Got unexpected height 1.
> core.c:614: Test failed: Got unexpected height 1.
> core.c:616: Test failed: Got unexpected height 1.
> core.c:619: Test failed: Got unexpected height 1.
> core.c:624: Test failed: Got unexpected height 1.
> core.c:627: Test failed: Got unexpected rect right 0.
> core.c:628: Test failed: Got unexpected rect bottom 0.
> core.c:612: Test failed: Got unexpected height 1.
> core.c:614: Test failed: Got unexpected height 1.
> core.c:616: Test failed: Got unexpected height 1.
> core.c:619: Test failed: Got unexpected height 1.
> core.c:624: Test failed: Got unexpected height 1.
> core.c:627: Test failed: Got unexpected rect right 0.
> core.c:628: Test failed: Got unexpected rect bottom 0.
> core.c:612: Test failed: Got unexpected height 1.
> core.c:614: Test failed: Got unexpected height 1.
> core.c:616: Test failed: Got unexpected height 1.
> core.c:619: Test failed: Got unexpected height 1.
> core.c:624: Test failed: Got unexpected height 1.
> core.c:627: Test failed: Got unexpected rect right 0.
> core.c:628: Test failed: Got unexpected rect bottom 0.
> core.c:612: Test failed: Got unexpected height 1.
> core.c:614: Test failed: Got unexpected height 1.
> core.c:616: Test failed: Got unexpected height 1.
> core.c:619: Test failed: Got unexpected height 1.
> core.c:624: Test failed: Got unexpected height 1.
> core.c:627: Test failed: Got unexpected rect right 0.
> core.c:628: Test failed: Got unexpected rect bottom 0.
> Makefile:234: recipe for target 'core.ok' failed
> make[1]: *** [core.ok] Error 35
You're right, I forgot to put the todo_wine in after testing on Windows -_-
I'll fixup and resend.
June 15, 2018
Re: [PATCH v2] msvcp120: Add test for Concurrent_vector_copy.
by Piotr Caban
Signed-off-by: Piotr Caban <piotr(a)codeweavers.com>
June 15, 2018
[PATCH v2] msvcp120: Add test for Concurrent_vector_copy.
by Hua Meng
Signed-off-by: Hua meng <161220092(a)smail.nju.edu.cn>
---
dlls/msvcp120/tests/msvcp120.c | 50 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 49 insertions(+), 1 deletion(-)
diff --git a/dlls/msvcp120/tests/msvcp120.c b/dlls/msvcp120/tests/msvcp120.c
index 1247222..c34bd65 100644
--- a/dlls/msvcp120/tests/msvcp120.c
+++ b/dlls/msvcp120/tests/msvcp120.c
@@ -26,6 +26,7 @@
DWORD expect_idx;
static int vector_alloc_count;
+static int vector_elem_count;
#define DEFINE_EXPECT(func) \
BOOL expect_ ## func, called_ ## func
@@ -38,6 +39,7 @@ struct expect_struct {
DEFINE_EXPECT(queue_char__Assign_and_destroy_item);
DEFINE_EXPECT(concurrent_vector_int_alloc);
DEFINE_EXPECT(concurrent_vector_int_destroy);
+ DEFINE_EXPECT(concurrent_vector_int_copy);
};
#define SET_EXPECT(func) \
@@ -110,6 +112,8 @@ static void * (WINAPI *call_thiscall_func1)( void *func, void *this );
static void * (WINAPI *call_thiscall_func2)( void *func, void *this, const void *a );
static void * (WINAPI *call_thiscall_func3)( void *func, void *this, const void *a,
const void *b );
+static void * (WINAPI *call_thiscall_func4)( void *func, void *this, const void *a,
+ const void *b, const void *c );
static void init_thiscall_thunk(void)
{
@@ -123,18 +127,22 @@ static void init_thiscall_thunk(void)
call_thiscall_func1 = (void *)thunk;
call_thiscall_func2 = (void *)thunk;
call_thiscall_func3 = (void *)thunk;
+ call_thiscall_func4 = (void *)thunk;
}
#define call_func1(func,_this) call_thiscall_func1(func,_this)
#define call_func2(func,_this,a) call_thiscall_func2(func,_this,(const void*)(a))
#define call_func3(func,_this,a,b) call_thiscall_func3(func,_this,(const void*)(a),\
(const void*)(b))
+#define call_func4(func,_this,a,b,c) call_thiscall_func4(func,_this,(const void*)(a),\
+ (const void*)(b),(const void*)(c))
#else
#define init_thiscall_thunk()
#define call_func1(func,_this) func(_this)
#define call_func2(func,_this,a) func(_this,a)
#define call_func3(func,_this,a,b) func(_this,a,b)
+#define call_func4(func,_this,a,b,c) func(_this,a,b,c)
#endif /* __i386__ */
static inline float __port_infinity(void)
@@ -382,6 +390,8 @@ static void* (__thiscall *p_vector_base_v4__Internal_push_back)(
vector_base_v4*, size_t, size_t*);
static size_t (__thiscall *p_vector_base_v4__Internal_clear)(
vector_base_v4*, void (__cdecl*)(void*, size_t));
+static void (__thiscall *p_vector_base_v4__Internal_copy)(
+ vector_base_v4*, vector_base_v4*, size_t, void (__cdecl*)(void*, const void*, size_t));
static HMODULE msvcp;
#define SETNOFAIL(x,y) x = (void*)GetProcAddress(msvcp,y)
@@ -524,6 +534,8 @@ static BOOL init(void)
"?_Internal_push_back(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IEAAPEAX_KAEA_K(a)Z");
SET(p_vector_base_v4__Internal_clear,
"?_Internal_clear(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IEAA_KP6AXPEAX_K(a)Z@Z");
+ SET(p_vector_base_v4__Internal_copy,
+ "?_Internal_copy(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IEAAXAEBV123(a)_KP6AXPEAXPEBX1@Z(a)Z");
} else {
SET(p_tr2_sys__File_size,
"?_File_size(a)sys@tr2(a)std@@YA_KPBD(a)Z");
@@ -635,6 +647,8 @@ static BOOL init(void)
"?_Internal_push_back(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IAEPAXIAAI(a)Z");
SET(p_vector_base_v4__Internal_clear,
"?_Internal_clear(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IAEIP6AXPAXI(a)Z@Z");
+ SET(p_vector_base_v4__Internal_copy,
+ "?_Internal_copy(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IAEXABV123(a)IP6AXPAXPBXI@Z(a)Z");
#else
SET(p__Thrd_current,
"_Thrd_current");
@@ -674,6 +688,8 @@ static BOOL init(void)
"?_Internal_push_back(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IAAPAXIAAI(a)Z");
SET(p_vector_base_v4__Internal_clear,
"?_Internal_clear(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IAAIP6AXPAXI(a)Z@Z");
+ SET(p_vector_base_v4__Internal_copy,
+ "?_Internal_copy(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IAAXABV123(a)IP6AXPAXPBXI@Z(a)Z");
#endif
}
SET(p__Thrd_equal,
@@ -2459,6 +2475,8 @@ static void* __cdecl concurrent_vector_int_alloc(vector_base_v4 *this, size_t n)
static void __cdecl concurrent_vector_int_destroy(void *ptr, size_t n)
{
CHECK_EXPECT2(concurrent_vector_int_destroy);
+ ok(vector_elem_count >= n, "invalid destroy\n");
+ vector_elem_count -= n;
memset(ptr, 0xff, sizeof(int)*n);
}
@@ -2484,6 +2502,13 @@ static void concurrent_vector_int_dtor(vector_base_v4 *this)
call_func1(p_vector_base_v4_dtor, this);
}
+static void __cdecl concurrent_vector_int_copy(void *dst, const void *src, size_t n)
+{
+ CHECK_EXPECT2(concurrent_vector_int_copy);
+ vector_elem_count += n;
+ memcpy(dst, src, n*sizeof(int));
+}
+
static void test_queue_base_v4(void)
{
queue_base_v4 queue;
@@ -2677,7 +2702,7 @@ static void test_queue_base_v4(void)
static void test_vector_base_v4(void)
{
- vector_base_v4 vector;
+ vector_base_v4 vector, v2;
size_t idx, size;
int *data;
@@ -2695,6 +2720,7 @@ static void test_vector_base_v4(void)
CHECK_CALLED(concurrent_vector_int_alloc);
ok(data != NULL, "_Internal_push_back returned NULL\n");
ok(idx == 0, "idx got %ld expected %d\n", (long)idx, 0);
+ vector_elem_count++;
*data = 1;
ok(data == vector.storage[0], "vector.storage[0] got %p expected %p\n",
vector.storage[0], data);
@@ -2709,6 +2735,7 @@ static void test_vector_base_v4(void)
data = call_func3(p_vector_base_v4__Internal_push_back, &vector, sizeof(int), &idx);
ok(data != NULL, "_Internal_push_back returned NULL\n");
ok(idx == 1, "idx got %ld expected 1\n", (long)idx);
+ vector_elem_count++;
*data = 2;
ok(vector.first_block == 1, "vector.first_block got %ld expected 1\n",
(long)vector.first_block);
@@ -2723,6 +2750,7 @@ static void test_vector_base_v4(void)
CHECK_CALLED(concurrent_vector_int_alloc);
ok(data != NULL, "_Internal_push_back returned NULL\n");
ok(idx == 2, "idx got %ld expected 2\n", (long)idx);
+ vector_elem_count++;
*data = 3;
ok(vector.first_block == 1, "vector.first_block got %ld expected 1\n",
(long)vector.first_block);
@@ -2735,6 +2763,7 @@ static void test_vector_base_v4(void)
data = call_func3(p_vector_base_v4__Internal_push_back, &vector, sizeof(int), &idx);
ok(data != NULL, "_Internal_push_back returned NULL\n");
ok(idx == 3, "idx got %ld expected 3\n", (long)idx);
+ vector_elem_count++;
*data = 4;
size = (size_t)call_func1(p_vector_base_v4__Internal_capacity, &vector);
ok(size == 4, "size of vector got %ld expected 4\n", (long)size);
@@ -2744,10 +2773,28 @@ static void test_vector_base_v4(void)
CHECK_CALLED(concurrent_vector_int_alloc);
ok(data != NULL, "_Internal_push_back returned NULL\n");
ok(idx == 4, "idx got %ld expected 2\n", (long)idx);
+ vector_elem_count++;
*data = 5;
size = (size_t)call_func1(p_vector_base_v4__Internal_capacity, &vector);
ok(size == 8, "size of vector got %ld expected 8\n", (long)size);
+ concurrent_vector_int_ctor(&v2);
+ SET_EXPECT(concurrent_vector_int_alloc);
+ SET_EXPECT(concurrent_vector_int_copy);
+ call_func4(p_vector_base_v4__Internal_copy, &v2, &vector,
+ sizeof(int), concurrent_vector_int_copy);
+ CHECK_CALLED(concurrent_vector_int_alloc);
+ CHECK_CALLED(concurrent_vector_int_copy);
+ ok(v2.first_block == 3, "v2.first_block got %ld expected 3\n",
+ (long)v2.first_block);
+ ok(v2.early_size == 5, "v2.early_size got %ld expected 5\n",
+ (long)v2.early_size);
+
+ SET_EXPECT(concurrent_vector_int_destroy);
+ size = (size_t)call_func2(p_vector_base_v4__Internal_clear,
+ &v2, concurrent_vector_int_destroy);
+ concurrent_vector_int_dtor(&v2);
+
SET_EXPECT(concurrent_vector_int_destroy);
size = (size_t)call_func2(p_vector_base_v4__Internal_clear,
&vector, concurrent_vector_int_destroy);
@@ -2759,6 +2806,7 @@ static void test_vector_base_v4(void)
(long)vector.early_size);
concurrent_vector_int_dtor(&vector);
+ ok(!vector_elem_count, "vector_elem_count = %d, expected 0\n", vector_elem_count);
ok(!vector_alloc_count, "vector_alloc_count = %d, expected 0\n", vector_alloc_count);
}
--
2.11.0
June 15, 2018
Re: [PATCH] gdiplus: Check return value of SelectClipPath in brush_fill_path().
by Vincent Povirk
It looks like we also encountered this case in get_path_hrgn. Maybe we
shouldn't call brush_fill_pixels if the path is empty? If we're going
to ignore errors, I think we should at least check GetLastError() to
make sure it's one we expect.
On Fri, Jun 15, 2018 at 4:04 AM, Zhiyi Zhang <zzhang(a)codeweavers.com> wrote:
> For Crossover bug 16126.
>
> When GraphicPath is empty, filling path with gdi32 will
> result in a DC with empty path. When SelectClipPath() is
> called with such a DC, it will fail because it requires
> a closed path in DC. Thus further operation should be canceled.
>
> Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com>
> ---
> dlls/gdiplus/graphics.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
> index 76aabe74bf..2a95d686fa 100644
> --- a/dlls/gdiplus/graphics.c
> +++ b/dlls/gdiplus/graphics.c
> @@ -1052,6 +1052,7 @@ static BOOL brush_can_fill_path(GpBrush *brush, BOOL is_fill)
>
> static void brush_fill_path(GpGraphics *graphics, GpBrush* brush)
> {
> + BOOL success;
> switch (brush->bt)
> {
> case BrushTypeSolidColor:
> @@ -1064,8 +1065,8 @@ static void brush_fill_path(GpGraphics *graphics, GpBrush* brush)
> RECT rc;
> /* partially transparent fill */
>
> - SelectClipPath(graphics->hdc, RGN_AND);
> - if (GetClipBox(graphics->hdc, &rc) != NULLREGION)
> + success = SelectClipPath(graphics->hdc, RGN_AND);
> + if (success && GetClipBox(graphics->hdc, &rc) != NULLREGION)
> {
> HDC hdc = CreateCompatibleDC(NULL);
>
> --
> 2.17.1
>
>
>
June 15, 2018
Re: [PATCH] msvcp120: Add test for concurrent_vector_copy.
by Piotr Caban
Hi Hua,
On 06/15/18 15:47, Hua Meng wrote:
> +static void (__thiscall *p_vector_base_v4__Internal_copy)(
> + vector_base_v4*, void (__cdecl*)(void*, size_t));
This doesn't match _Internal_copy header. It also breaks 64-bit compilation:
dlls/msvcp120/tests/msvcp120.c:2784:16: error: too many arguments to
function 'p_vector_base_v4__Internal_copy'
Thanks,
Piotr
June 15, 2018
Re: [PATCH] msvcp120: Add test for concurrent_vector_copy.
by Marvin
Hi,
While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
https://testbot.winehq.org/JobDetails.pl?Key=39157
Your paranoid android.
=== build (build) ===
Rebuild of 64-bit crossbuild failed
June 15, 2018
[PATCH] msvcp120: Add test for concurrent_vector_copy.
by Hua Meng
Signed-off-by: Hua meng <161220092(a)smail.nju.edu.cn>
---
dlls/msvcp120/tests/msvcp120.c | 50 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 49 insertions(+), 1 deletion(-)
diff --git a/dlls/msvcp120/tests/msvcp120.c b/dlls/msvcp120/tests/msvcp120.c
index 1247222..fee012d 100644
--- a/dlls/msvcp120/tests/msvcp120.c
+++ b/dlls/msvcp120/tests/msvcp120.c
@@ -26,6 +26,7 @@
DWORD expect_idx;
static int vector_alloc_count;
+static int vector_elem_count;
#define DEFINE_EXPECT(func) \
BOOL expect_ ## func, called_ ## func
@@ -38,6 +39,7 @@ struct expect_struct {
DEFINE_EXPECT(queue_char__Assign_and_destroy_item);
DEFINE_EXPECT(concurrent_vector_int_alloc);
DEFINE_EXPECT(concurrent_vector_int_destroy);
+ DEFINE_EXPECT(concurrent_vector_int_copy);
};
#define SET_EXPECT(func) \
@@ -110,6 +112,8 @@ static void * (WINAPI *call_thiscall_func1)( void *func, void *this );
static void * (WINAPI *call_thiscall_func2)( void *func, void *this, const void *a );
static void * (WINAPI *call_thiscall_func3)( void *func, void *this, const void *a,
const void *b );
+static void * (WINAPI *call_thiscall_func4)( void *func, void *this, const void *a,
+ const void *b, const void *c );
static void init_thiscall_thunk(void)
{
@@ -123,18 +127,22 @@ static void init_thiscall_thunk(void)
call_thiscall_func1 = (void *)thunk;
call_thiscall_func2 = (void *)thunk;
call_thiscall_func3 = (void *)thunk;
+ call_thiscall_func4 = (void *)thunk;
}
#define call_func1(func,_this) call_thiscall_func1(func,_this)
#define call_func2(func,_this,a) call_thiscall_func2(func,_this,(const void*)(a))
#define call_func3(func,_this,a,b) call_thiscall_func3(func,_this,(const void*)(a),\
(const void*)(b))
+#define call_func4(func,_this,a,b,c) call_thiscall_func4(func,_this,(const void*)(a),\
+ (const void*)(b),(const void*)(c))
#else
#define init_thiscall_thunk()
#define call_func1(func,_this) func(_this)
#define call_func2(func,_this,a) func(_this,a)
#define call_func3(func,_this,a,b) func(_this,a,b)
+#define call_func4(func,_this,a,b,c) func(_this,a,b,c)
#endif /* __i386__ */
static inline float __port_infinity(void)
@@ -382,6 +390,8 @@ static void* (__thiscall *p_vector_base_v4__Internal_push_back)(
vector_base_v4*, size_t, size_t*);
static size_t (__thiscall *p_vector_base_v4__Internal_clear)(
vector_base_v4*, void (__cdecl*)(void*, size_t));
+static void (__thiscall *p_vector_base_v4__Internal_copy)(
+ vector_base_v4*, void (__cdecl*)(void*, size_t));
static HMODULE msvcp;
#define SETNOFAIL(x,y) x = (void*)GetProcAddress(msvcp,y)
@@ -524,6 +534,8 @@ static BOOL init(void)
"?_Internal_push_back(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IEAAPEAX_KAEA_K(a)Z");
SET(p_vector_base_v4__Internal_clear,
"?_Internal_clear(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IEAA_KP6AXPEAX_K(a)Z@Z");
+ SET(p_vector_base_v4__Internal_copy,
+ "?_Internal_copy(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IEAAXAEBV123(a)_KP6AXPEAXPEBX1@Z(a)Z");
} else {
SET(p_tr2_sys__File_size,
"?_File_size(a)sys@tr2(a)std@@YA_KPBD(a)Z");
@@ -635,6 +647,8 @@ static BOOL init(void)
"?_Internal_push_back(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IAEPAXIAAI(a)Z");
SET(p_vector_base_v4__Internal_clear,
"?_Internal_clear(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IAEIP6AXPAXI(a)Z@Z");
+ SET(p_vector_base_v4__Internal_copy,
+ "?_Internal_copy(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IAEXABV123(a)IP6AXPAXPBXI@Z(a)Z");
#else
SET(p__Thrd_current,
"_Thrd_current");
@@ -674,6 +688,8 @@ static BOOL init(void)
"?_Internal_push_back(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IAAPAXIAAI(a)Z");
SET(p_vector_base_v4__Internal_clear,
"?_Internal_clear(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IAAIP6AXPAXI(a)Z@Z");
+ SET(p_vector_base_v4__Internal_copy,
+ "?_Internal_copy(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IAAXABV123(a)IP6AXPAXPBXI@Z(a)Z");
#endif
}
SET(p__Thrd_equal,
@@ -2459,6 +2475,8 @@ static void* __cdecl concurrent_vector_int_alloc(vector_base_v4 *this, size_t n)
static void __cdecl concurrent_vector_int_destroy(void *ptr, size_t n)
{
CHECK_EXPECT2(concurrent_vector_int_destroy);
+ ok(vector_elem_count >= n, "invalid destroy\n");
+ vector_elem_count -= n;
memset(ptr, 0xff, sizeof(int)*n);
}
@@ -2484,6 +2502,13 @@ static void concurrent_vector_int_dtor(vector_base_v4 *this)
call_func1(p_vector_base_v4_dtor, this);
}
+static void __cdecl concurrent_vector_int_copy(void *dst, const void *src, size_t n)
+{
+ CHECK_EXPECT2(concurrent_vector_int_copy);
+ vector_elem_count += n;
+ memcpy(dst, src, n*sizeof(int));
+}
+
static void test_queue_base_v4(void)
{
queue_base_v4 queue;
@@ -2677,7 +2702,7 @@ static void test_queue_base_v4(void)
static void test_vector_base_v4(void)
{
- vector_base_v4 vector;
+ vector_base_v4 vector, v2;
size_t idx, size;
int *data;
@@ -2695,6 +2720,7 @@ static void test_vector_base_v4(void)
CHECK_CALLED(concurrent_vector_int_alloc);
ok(data != NULL, "_Internal_push_back returned NULL\n");
ok(idx == 0, "idx got %ld expected %d\n", (long)idx, 0);
+ vector_elem_count++;
*data = 1;
ok(data == vector.storage[0], "vector.storage[0] got %p expected %p\n",
vector.storage[0], data);
@@ -2709,6 +2735,7 @@ static void test_vector_base_v4(void)
data = call_func3(p_vector_base_v4__Internal_push_back, &vector, sizeof(int), &idx);
ok(data != NULL, "_Internal_push_back returned NULL\n");
ok(idx == 1, "idx got %ld expected 1\n", (long)idx);
+ vector_elem_count++;
*data = 2;
ok(vector.first_block == 1, "vector.first_block got %ld expected 1\n",
(long)vector.first_block);
@@ -2723,6 +2750,7 @@ static void test_vector_base_v4(void)
CHECK_CALLED(concurrent_vector_int_alloc);
ok(data != NULL, "_Internal_push_back returned NULL\n");
ok(idx == 2, "idx got %ld expected 2\n", (long)idx);
+ vector_elem_count++;
*data = 3;
ok(vector.first_block == 1, "vector.first_block got %ld expected 1\n",
(long)vector.first_block);
@@ -2735,6 +2763,7 @@ static void test_vector_base_v4(void)
data = call_func3(p_vector_base_v4__Internal_push_back, &vector, sizeof(int), &idx);
ok(data != NULL, "_Internal_push_back returned NULL\n");
ok(idx == 3, "idx got %ld expected 3\n", (long)idx);
+ vector_elem_count++;
*data = 4;
size = (size_t)call_func1(p_vector_base_v4__Internal_capacity, &vector);
ok(size == 4, "size of vector got %ld expected 4\n", (long)size);
@@ -2744,10 +2773,28 @@ static void test_vector_base_v4(void)
CHECK_CALLED(concurrent_vector_int_alloc);
ok(data != NULL, "_Internal_push_back returned NULL\n");
ok(idx == 4, "idx got %ld expected 2\n", (long)idx);
+ vector_elem_count++;
*data = 5;
size = (size_t)call_func1(p_vector_base_v4__Internal_capacity, &vector);
ok(size == 8, "size of vector got %ld expected 8\n", (long)size);
+ concurrent_vector_int_ctor(&v2);
+ SET_EXPECT(concurrent_vector_int_alloc);
+ SET_EXPECT(concurrent_vector_int_copy);
+ call_func4(p_vector_base_v4__Internal_copy, &v2, &vector,
+ sizeof(int), concurrent_vector_int_copy);
+ CHECK_CALLED(concurrent_vector_int_alloc);
+ CHECK_CALLED(concurrent_vector_int_copy);
+ ok(v2.first_block == 3, "v2.first_block got %ld expected 3\n",
+ (long)v2.first_block);
+ ok(v2.early_size == 5, "v2.early_size got %ld expected 5\n",
+ (long)v2.early_size);
+
+ SET_EXPECT(concurrent_vector_int_destroy);
+ size = (size_t)call_func2(p_vector_base_v4__Internal_clear,
+ &v2, concurrent_vector_int_destroy);
+ concurrent_vector_int_dtor(&v2);
+
SET_EXPECT(concurrent_vector_int_destroy);
size = (size_t)call_func2(p_vector_base_v4__Internal_clear,
&vector, concurrent_vector_int_destroy);
@@ -2759,6 +2806,7 @@ static void test_vector_base_v4(void)
(long)vector.early_size);
concurrent_vector_int_dtor(&vector);
+ ok(!vector_elem_count, "vector_elem_count = %d, expected 0\n", vector_elem_count);
ok(!vector_alloc_count, "vector_alloc_count = %d, expected 0\n", vector_alloc_count);
}
--
2.11.0
June 15, 2018
Re: [PATCH v3] comctl32/taskdialog: Add support for progress bar.
by Nikolay Sivov
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
June 15, 2018
[PATCH] testbot/web: Escape the filenames on the activity page.
by Francois Gouget
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
---
testbot/web/Activity.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/testbot/web/Activity.pl b/testbot/web/Activity.pl
index 8b1fd6dc5..512401751 100644
--- a/testbot/web/Activity.pl
+++ b/testbot/web/Activity.pl
@@ -215,7 +215,7 @@ EOF
}
else
{
- $Label .= " ". $VMStatus->{step}->FileName;
+ $Label .= " ". $self->escapeHTML($VMStatus->{step}->FileName);
if ($VMStatus->{task}->CmdLineArg =~ /^\w+$/ and
$Label =~ s/_(?:cross)?test(64)?\.exe$//)
{
--
2.17.1
June 15, 2018
Re: [PATCH] d3dx9/tests: Add initial tests for ID3DXFont::DrawText().
by Alexandre Julliard
Matteo Bruni <mbruni(a)codeweavers.com> writes:
> From: Kieran Duggan <kieranduggan15(a)gmail.com>
>
> Signed-off-by: Kieran Duggan <kieranduggan15(a)gmail.com>
> Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com>
> ---
> dlls/d3dx9_36/tests/core.c | 81 +++++++++++++++++++++++++++++++++++-----------
> 1 file changed, 62 insertions(+), 19 deletions(-)
The tests fail:
../../../tools/runtest -q -P wine -T ../../.. -M d3dx9_36.dll -p d3dx9_36_test.exe.so core && touch core.ok
core.c:612: Test failed: Got unexpected height 1.
core.c:614: Test failed: Got unexpected height 1.
core.c:616: Test failed: Got unexpected height 1.
core.c:619: Test failed: Got unexpected height 1.
core.c:624: Test failed: Got unexpected height 1.
core.c:627: Test failed: Got unexpected rect right 0.
core.c:628: Test failed: Got unexpected rect bottom 0.
core.c:612: Test failed: Got unexpected height 1.
core.c:614: Test failed: Got unexpected height 1.
core.c:616: Test failed: Got unexpected height 1.
core.c:619: Test failed: Got unexpected height 1.
core.c:624: Test failed: Got unexpected height 1.
core.c:627: Test failed: Got unexpected rect right 0.
core.c:628: Test failed: Got unexpected rect bottom 0.
core.c:612: Test failed: Got unexpected height 1.
core.c:614: Test failed: Got unexpected height 1.
core.c:616: Test failed: Got unexpected height 1.
core.c:619: Test failed: Got unexpected height 1.
core.c:624: Test failed: Got unexpected height 1.
core.c:627: Test failed: Got unexpected rect right 0.
core.c:628: Test failed: Got unexpected rect bottom 0.
core.c:612: Test failed: Got unexpected height 1.
core.c:614: Test failed: Got unexpected height 1.
core.c:616: Test failed: Got unexpected height 1.
core.c:619: Test failed: Got unexpected height 1.
core.c:624: Test failed: Got unexpected height 1.
core.c:627: Test failed: Got unexpected rect right 0.
core.c:628: Test failed: Got unexpected rect bottom 0.
core.c:612: Test failed: Got unexpected height 1.
core.c:614: Test failed: Got unexpected height 1.
core.c:616: Test failed: Got unexpected height 1.
core.c:619: Test failed: Got unexpected height 1.
core.c:624: Test failed: Got unexpected height 1.
core.c:627: Test failed: Got unexpected rect right 0.
core.c:628: Test failed: Got unexpected rect bottom 0.
Makefile:234: recipe for target 'core.ok' failed
make[1]: *** [core.ok] Error 35
--
Alexandre Julliard
julliard(a)winehq.org
June 15, 2018
[PATCH] po: Update Russian translation.
by Nikolay Sivov
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
---
po/ru.po | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/po/ru.po b/po/ru.po
index b973cae0f5..3fb6927e7b 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -5,14 +5,14 @@ msgstr ""
"Project-Id-Version: Wine\n"
"Report-Msgid-Bugs-To: https://bugs.winehq.org\n"
"POT-Creation-Date: N/A\n"
-"PO-Revision-Date: 2018-05-10 08:12+0300\n"
+"PO-Revision-Date: 2018-06-15 13:16+0300\n"
"Last-Translator: Nikolay Sivov <nsivov(a)codeweavers.com>\n"
"Language-Team: Russian\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.0.7\n"
+"X-Generator: Poedit 2.0.8\n"
#: appwiz.rc:58
msgid "Install/Uninstall"
@@ -3697,19 +3697,19 @@ msgstr "Ожидается объект типа «Array»"
msgid ""
"'writable' attribute on the property descriptor cannot be set to 'true' on "
"this object"
-msgstr ""
+msgstr "Невозможно установить атрибут «writable» в «true» для этого объекта"
#: jscript.rc:70
msgid "Cannot redefine non-configurable property '|'"
-msgstr ""
+msgstr "Невозможно переопределить ненастраиваемое свойство «|»"
#: jscript.rc:71
msgid "Cannot modify non-writable property '|'"
-msgstr ""
+msgstr "Невозможно изменить свойство «|»"
#: jscript.rc:72
msgid "Property cannot have both accessors and a value"
-msgstr ""
+msgstr "Свойство не может одновременно иметь методы для доступа и значение"
#: ../../include/wine/wine_common_ver.rc:129
msgid "Wine kernel DLL"
@@ -12801,10 +12801,8 @@ msgid "Confirm Value Delete"
msgstr "Подтверждение удаления значения"
#: regedit.rc:210
-#, fuzzy
-#| msgid "Are you sure you want to delete the registry value '%1'?"
msgid "Are you sure you want to delete the selected registry value?"
-msgstr "Вы точно хотите удалить параметр реестра «%1»?"
+msgstr "Вы точно хотите удалить выбранный параметр реестра?"
#: regedit.rc:216
msgid "Search complete. The string '%1' was not found."
--
2.17.1
June 15, 2018
[PATCH] testbot/WineRunTask: Rename a TakeScreenshot() parameter.
by Francois Gouget
It had the same name as a global variable which made the code a bit
confusing.
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
---
testbot/bin/WineRunTask.pl | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/testbot/bin/WineRunTask.pl b/testbot/bin/WineRunTask.pl
index 8f5cb268c..90008f035 100755
--- a/testbot/bin/WineRunTask.pl
+++ b/testbot/bin/WineRunTask.pl
@@ -71,14 +71,14 @@ sub Error(@)
sub TakeScreenshot($$)
{
- my ($VM, $FullScreenshotFileName) = @_;
+ my ($VM, $FileName) = @_;
my $Domain = $VM->GetDomain();
my ($ErrMessage, $ImageSize, $ImageBytes) = $Domain->CaptureScreenImage();
if (!defined $ErrMessage)
{
my $OldUMask = umask(002);
- if (open(my $Screenshot, ">", $FullScreenshotFileName))
+ if (open(my $Screenshot, ">", $FileName))
{
print $Screenshot $ImageBytes;
close($Screenshot);
--
2.17.1
June 15, 2018
[PATCH] testbot/web: Remove the live screenshot code.
by Francois Gouget
When 'live snapshots' are supported again it will likely
be in a different form so remove the cruft.
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
---
testbot/web/JobDetails.pl | 24 +-----------------------
1 file changed, 1 insertion(+), 23 deletions(-)
diff --git a/testbot/web/JobDetails.pl b/testbot/web/JobDetails.pl
index 3e638f717..70d8b5983 100644
--- a/testbot/web/JobDetails.pl
+++ b/testbot/web/JobDetails.pl
@@ -257,30 +257,8 @@ sub GenerateBody($)
my $Screenshot = $self->GetParam($ScreenshotParamName);
$Screenshot = "" if ($Screenshot ne "1");
-
print "<div class='TaskMoreInfoLinks'>\n";
- # FIXME: Disable live screenshots for now
- if (0 && $StepTask->Status eq "running" &&
- ($StepTask->Type eq "single" || $StepTask->Type eq "suite"))
- {
- if ($Screenshot)
- {
- my $URI = "/Screenshot.pl?VMName=" . uri_escape($VM->Name);
- print "<div class='Screenshot'><img src='" .
- $self->CGI->escapeHTML($URI) . "' alt='Screenshot' /></div>\n";
- }
- else
- {
- my $URI = $ENV{"SCRIPT_NAME"} . "?Key=" . uri_escape($self->{JobId}) .
- "&$ScreenshotParamName=1";
- $URI .= "#k" . uri_escape($Key);
- print "<div class='TaskMoreInfoLink'><a href='" .
- $self->CGI->escapeHTML($URI) .
- "'>Show live screenshot</a></div>";
- print "\n";
- }
- }
- elsif (-r "$TaskDir/screenshot.png")
+ if (-r "$TaskDir/screenshot.png")
{
if ($Screenshot)
{
--
2.17.1
June 15, 2018
[PATCH] testbot/bin: Remove some global variables.
by Francois Gouget
The variable names are longer than the values they replace and
make the code less readable due to the extra indirection.
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
---
testbot/bin/WineRunBuild.pl | 15 ++++++---------
testbot/bin/WineRunReconfig.pl | 15 ++++++---------
testbot/bin/WineRunTask.pl | 26 +++++++++++---------------
3 files changed, 23 insertions(+), 33 deletions(-)
diff --git a/testbot/bin/WineRunBuild.pl b/testbot/bin/WineRunBuild.pl
index 96d9321b8..eab33bc08 100755
--- a/testbot/bin/WineRunBuild.pl
+++ b/testbot/bin/WineRunBuild.pl
@@ -162,15 +162,12 @@ if (!defined $Task)
Error "Step $StepNo task $TaskNo of job $JobId does not exist\n";
exit 1;
}
-
my $OldUMask = umask(002);
my $TaskDir = $Task->CreateDir();
umask($OldUMask);
-my $FullLogFileName = "$TaskDir/log";
-my $FullErrFileName = "$TaskDir/err";
-
my $VM = $Task->VM;
+
my $Start = Time();
LogMsg "Task $JobId/$StepNo/$TaskNo started\n";
@@ -185,14 +182,14 @@ sub LogTaskError($)
Debug("$Name0:error: ", $ErrMessage);
my $OldUMask = umask(002);
- if (open(my $ErrFile, ">>", $FullErrFileName))
+ if (open(my $ErrFile, ">>", "$TaskDir/err"))
{
print $ErrFile $ErrMessage;
close($ErrFile);
}
else
{
- Error "Unable to open '$FullErrFileName' for writing: $!\n";
+ Error "Unable to open 'err' for writing: $!\n";
}
umask($OldUMask);
}
@@ -391,10 +388,10 @@ if (!defined $TA->Wait($Pid, $Task->Timeout, 60))
}
}
-Debug(Elapsed($Start), " Retrieving the build log to '$FullLogFileName'\n");
-if ($TA->GetFile("Build.log", $FullLogFileName))
+Debug(Elapsed($Start), " Retrieving 'Build.log'\n");
+if ($TA->GetFile("Build.log", "$TaskDir/log"))
{
- if (open(my $LogFile, "<", $FullLogFileName))
+ if (open(my $LogFile, "<", "$TaskDir/log"))
{
# Collect and analyze the 'Build:' status line(s)
$ErrMessage ||= "";
diff --git a/testbot/bin/WineRunReconfig.pl b/testbot/bin/WineRunReconfig.pl
index 4fb34a07d..e7b447e92 100755
--- a/testbot/bin/WineRunReconfig.pl
+++ b/testbot/bin/WineRunReconfig.pl
@@ -161,14 +161,11 @@ if (!defined $Task)
Error "Step $StepNo task $TaskNo of job $JobId does not exist\n";
exit 1;
}
-
my $OldUMask = umask(002);
my $TaskDir = $Task->CreateDir();
umask($OldUMask);
-
my $VM = $Task->VM;
-my $FullLogFileName = "$TaskDir/log";
-my $FullErrFileName = "$TaskDir/err";
+
my $Start = Time();
LogMsg "Task $JobId/$StepNo/$TaskNo started\n";
@@ -184,14 +181,14 @@ sub LogTaskError($)
Debug("$Name0:error: ", $ErrMessage);
my $OldUMask = umask(002);
- if (open(my $ErrFile, ">>", $FullErrFileName))
+ if (open(my $ErrFile, ">>", "$TaskDir/err"))
{
print $ErrFile $ErrMessage;
close($ErrFile);
}
else
{
- Error "Unable to open '$FullErrFileName' for writing: $!\n";
+ Error "Unable to open 'err' for writing: $!\n";
}
umask($OldUMask);
}
@@ -373,10 +370,10 @@ if (!defined $TA->Wait($Pid, $Task->Timeout, 60))
}
}
-Debug(Elapsed($Start), " Retrieving the reconfig log to '$FullLogFileName'\n");
-if ($TA->GetFile("Reconfig.log", $FullLogFileName))
+Debug(Elapsed($Start), " Retrieving 'Reconfig.log'\n");
+if ($TA->GetFile("Reconfig.log", "$TaskDir/log"))
{
- if (open(my $LogFile, "<", $FullLogFileName))
+ if (open(my $LogFile, "<", "$TaskDir/log"))
{
# Collect and analyze the 'Reconfig:' status line(s).
my $LogErrors;
diff --git a/testbot/bin/WineRunTask.pl b/testbot/bin/WineRunTask.pl
index 90008f035..15f8752fb 100755
--- a/testbot/bin/WineRunTask.pl
+++ b/testbot/bin/WineRunTask.pl
@@ -191,17 +191,13 @@ if (!defined $Task)
Error "Step $StepNo task $TaskNo of job $JobId does not exist\n";
exit 1;
}
-
my $OldUMask = umask(002);
my $TaskDir = $Task->CreateDir();
umask($OldUMask);
-my $FullLogFileName = "$TaskDir/log";
-my $FullErrFileName = "$TaskDir/err";
-my $FullScreenshotFileName = "$TaskDir/screenshot.png";
-
my $VM = $Task->VM;
my $RptFileName = $VM->Name . ".rpt";
+
my $Start = Time();
LogMsg "Task $JobId/$StepNo/$TaskNo started\n";
@@ -216,14 +212,14 @@ sub LogTaskError($)
Debug("$Name0:error: ", $ErrMessage);
my $OldUMask = umask(002);
- if (open(my $ErrFile, ">>", $FullErrFileName))
+ if (open(my $ErrFile, ">>", "$TaskDir/err"))
{
print $ErrFile $ErrMessage;
close($ErrFile);
}
else
{
- Error "Unable to open '$FullErrFileName' for writing: $!\n";
+ Error "Unable to open 'err' for writing: $!\n";
}
umask($OldUMask);
}
@@ -237,7 +233,7 @@ sub WrapUpAndExit($;$$$)
$Timeout ? "timeout" : "";
Debug(Elapsed($Start), " Taking a screenshot\n");
- TakeScreenshot($VM, $FullScreenshotFileName);
+ TakeScreenshot($VM, "$TaskDir/screenshot.png");
my $Tries = $Task->TestFailures || 0;
if ($Retry)
@@ -299,9 +295,9 @@ sub WrapUpAndExit($;$$$)
my $LatestBaseName = join("", "$DataDir/latest/", $Task->VM->Name, "_",
$Step->FileType eq "exe64" ? "64" : "32");
unlink("$LatestBaseName.log");
- link($FullLogFileName, "$LatestBaseName.log") if (-f $FullLogFileName);
+ link("$TaskDir/log", "$LatestBaseName.log") if (-f "$TaskDir/log");
unlink("$LatestBaseName.err");
- link($FullErrFileName, "$LatestBaseName.err") if (-f $FullErrFileName);
+ link("$TaskDir/err", "$LatestBaseName.err") if (-f "$TaskDir/err");
}
my $Result = $VM->Name .": ". $VM->Status ." Status: $Status Failures: ". (defined $TestFailures ? $TestFailures : "unset");
@@ -516,11 +512,11 @@ if (!defined $TA->Wait($Pid, $Timeout, $Keepalive))
}
my $TimedOut;
-Debug(Elapsed($Start), " Retrieving the report file to '$FullLogFileName'\n");
-if ($TA->GetFile($RptFileName, $FullLogFileName))
+Debug(Elapsed($Start), " Retrieving the report file to 'log'\n");
+if ($TA->GetFile($RptFileName, "$TaskDir/log"))
{
- chmod 0664, $FullLogFileName;
- if (open(my $LogFile, "<", $FullLogFileName))
+ chmod 0664, "$TaskDir/log";
+ if (open(my $LogFile, "<", "$TaskDir/log"))
{
# There is more than one test unit when running the full test suite so keep
# track of the current one. Note that for the TestBot we don't count or
@@ -786,7 +782,7 @@ if ($TA->GetFile($RptFileName, $FullLogFileName))
else
{
$NewStatus = 'boterror';
- Error "Unable to open '$FullLogFileName' for reading: $!\n";
+ Error "Unable to open 'log' for reading: $!\n";
LogTaskError("Unable to open the log file for reading: $!\n");
}
}
--
2.17.1
June 15, 2018
[PATCH] testbot: Simplify passing the Job URL to WineTest.
by Francois Gouget
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
---
testbot/bin/WineRunTask.pl | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/testbot/bin/WineRunTask.pl b/testbot/bin/WineRunTask.pl
index 15f8752fb..3b0ccbc4a 100755
--- a/testbot/bin/WineRunTask.pl
+++ b/testbot/bin/WineRunTask.pl
@@ -448,8 +448,7 @@ elsif ($Step->Type eq "suite")
if (defined($WebHostName))
{
my $StepTask = 100 * $StepNo + $TaskNo;
- $Script .= '-u "http://' . $WebHostName . "/JobDetails.pl?Key=" .
- $JobId . "&scrshot_" . $StepTask . "=1#k" . $StepTask . '" ';
+ $Script .= "-u \"http://$WebHostName/JobDetails.pl?Key=$JobId&scrshot_$StepTask=1#k$StepTask\"";
}
my $Info = $VM->Description ? $VM->Description : "";
if ($VM->Details)
--
2.17.1
June 15, 2018
[PATCH] gdiplus: Check return value of SelectClipPath in brush_fill_path().
by Zhiyi Zhang
For Crossover bug 16126.
When GraphicPath is empty, filling path with gdi32 will
result in a DC with empty path. When SelectClipPath() is
called with such a DC, it will fail because it requires
a closed path in DC. Thus further operation should be canceled.
Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com>
---
dlls/gdiplus/graphics.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 76aabe74bf..2a95d686fa 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -1052,6 +1052,7 @@ static BOOL brush_can_fill_path(GpBrush *brush, BOOL is_fill)
static void brush_fill_path(GpGraphics *graphics, GpBrush* brush)
{
+ BOOL success;
switch (brush->bt)
{
case BrushTypeSolidColor:
@@ -1064,8 +1065,8 @@ static void brush_fill_path(GpGraphics *graphics, GpBrush* brush)
RECT rc;
/* partially transparent fill */
- SelectClipPath(graphics->hdc, RGN_AND);
- if (GetClipBox(graphics->hdc, &rc) != NULLREGION)
+ success = SelectClipPath(graphics->hdc, RGN_AND);
+ if (success && GetClipBox(graphics->hdc, &rc) != NULLREGION)
{
HDC hdc = CreateCompatibleDC(NULL);
--
2.17.1
June 15, 2018
Re: [PATCH v5 4/8] ntdll: Return BIOS info from NtQuerySystemInformation on Linux
by Huw Davies
On Fri, Jun 15, 2018 at 12:59:10AM -0600, Alex Henrie wrote:
> Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com>
> ---
> dlls/ntdll/nt.c | 174 ++++++++++++++++++++++++++++++++++++++++
> dlls/ntdll/tests/info.c | 14 ++--
> 2 files changed, 182 insertions(+), 6 deletions(-)
>
> diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
> index dc0ce04f42..658970b051 100644
> --- a/dlls/ntdll/nt.c
> +++ b/dlls/ntdll/nt.c
> @@ -66,6 +66,35 @@
>
> WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
>
> +#include "pshpack1.h"
> +
> +struct smbios_prologue {
> + BYTE calling_method;
> + BYTE major_version;
> + BYTE minor_version;
> + BYTE revision;
> + DWORD length;
> +};
> +
> +struct smbios_bios {
> + BYTE type;
> + BYTE length;
> + WORD handle;
> + BYTE vendor;
> + BYTE version;
> + WORD start;
> + BYTE date;
> + BYTE size;
> + UINT64 characteristics;
> +};
> +
> +#include "poppack.h"
> +
> +/* Firmware table providers */
> +#define ACPI 0x41435049
> +#define FIRM 0x4649524D
> +#define RSMB 0x52534D42
> +
> /*
> * Token
> */
> @@ -1850,6 +1879,129 @@ static NTSTATUS create_logical_proc_info(SYSTEM_LOGICAL_PROCESSOR_INFORMATION **
> }
> #endif
>
> +static inline void copy_smbios_string(char **buffer, char *string, size_t string_size)
> +{
> + if (!string) return;
> + strcpy(*buffer, string);
> + *buffer += string_size;
> +}
> +
> +#ifdef linux
> +
> +static char* get_smbios_string(const char *path, size_t *string_size)
> +{
> + FILE *file = fopen(path, "r");
> + char *ret = NULL;
> + *string_size = 0;
> + if (file)
> + {
> + *string_size = getline(&ret, string_size, file) + 1;
I'm not sure we want to use malloc based functions here.
fgets() using a fixed-size buffer with a sensibly chosen size should
be fine.
> + fclose(file);
> + if (*string_size >= 2 && ret[*string_size - 2] == '\n')
> + {
> + ret[*string_size - 2] = 0;
> + (*string_size)--;
> + }
> + if (*string_size == 1)
> + {
> + free(ret);
> + ret = NULL;
> + *string_size = 0;
> + }
> + }
> + return ret;
> +}
> +
> +static inline NTSTATUS get_firmware_info(SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti,
> + ULONG available_len, ULONG *required_len)
> +{
> + switch (sfti->ProviderSignature)
> + {
> + case RSMB:
> + {
> + char *bios_vendor, *bios_version, *bios_date;
> + size_t bios_vendor_size, bios_version_size, bios_date_size;
> + char *buffer = (char*)sfti->TableBuffer;
> + BYTE string_count;
> + struct smbios_prologue *prologue;
> + struct smbios_bios *bios;
> +
> + bios_vendor = get_smbios_string("/sys/class/dmi/id/bios_vendor", &bios_vendor_size);
> + bios_version = get_smbios_string("/sys/class/dmi/id/bios_version", &bios_version_size);
> + bios_date = get_smbios_string("/sys/class/dmi/id/bios_date", &bios_date_size);
> +
> + *required_len = FIELD_OFFSET(SYSTEM_FIRMWARE_TABLE_INFORMATION, TableBuffer);
> +
> + *required_len += sizeof(struct smbios_prologue);
> +
> + *required_len += sizeof(struct smbios_bios);
> + *required_len += max(bios_vendor_size + bios_version_size + bios_date_size + 1, 2);
> +
> + if (available_len < *required_len)
> + {
> + return STATUS_BUFFER_TOO_SMALL;
> + }
> +
> + sfti->TableBufferLength = *required_len - FIELD_OFFSET(SYSTEM_FIRMWARE_TABLE_INFORMATION, TableBuffer);
> +
> + prologue = (struct smbios_prologue*)buffer;
> + prologue->calling_method = 0;
> + prologue->major_version = 2;
> + prologue->minor_version = 0;
> + prologue->revision = 0;
> + prologue->length = sfti->TableBufferLength - sizeof(struct smbios_prologue);
> + buffer += sizeof(struct smbios_prologue);
> +
> + string_count = 0;
> + bios = (struct smbios_bios*)buffer;
> + bios->type = 0;
> + bios->length = sizeof(struct smbios_bios);
> + bios->handle = 0;
> + bios->vendor = bios_vendor ? ++string_count : 0;
> + bios->version = bios_version ? ++string_count : 0;
> + bios->start = 0;
> + bios->date = bios_date ? ++string_count : 0;
> + bios->size = 0;
> + bios->characteristics = 0x4; /* not supported */
> + buffer += sizeof(struct smbios_bios);
> +
> + if (string_count)
> + {
> + copy_smbios_string(&buffer, bios_vendor, bios_vendor_size);
> + copy_smbios_string(&buffer, bios_version, bios_version_size);
> + copy_smbios_string(&buffer, bios_date, bios_date_size);
> + memset(buffer, 0, 1);
> + }
> + else
> + {
> + memset(buffer, 0, 2);
> + }
> +
> + free(bios_vendor);
> + free(bios_version);
> + free(bios_date);
> +
> + return STATUS_SUCCESS;
> + }
> + default:
> + {
> + return STATUS_NOT_IMPLEMENTED;
> + FIXME("info_class SYSTEM_FIRMWARE_TABLE_INFORMATION\n");
> + }
> + }
> +}
> +
> +#else
> +
> +static inline NTSTATUS get_firmware_info(SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti,
> + ULONG available_len, ULONG *required_len)
> +{
> + return STATUS_NOT_IMPLEMENTED;
> + FIXME("info_class SYSTEM_FIRMWARE_TABLE_INFORMATION\n");
> +}
> +
> +#endif
> +
> /******************************************************************************
> * NtQuerySystemInformation [NTDLL.@]
> * ZwQuerySystemInformation [NTDLL.@]
> @@ -2359,6 +2511,28 @@ NTSTATUS WINAPI NtQuerySystemInformation(
> else ret = STATUS_INFO_LENGTH_MISMATCH;
> }
> break;
> + case SystemFirmwareTableInformation:
> + {
> + SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti = (SYSTEM_FIRMWARE_TABLE_INFORMATION*)SystemInformation;
> + len = FIELD_OFFSET(SYSTEM_FIRMWARE_TABLE_INFORMATION, TableBuffer);
> + if (Length < len)
> + {
> + ret = STATUS_INFO_LENGTH_MISMATCH;
> + break;
> + }
> +
> + switch (sfti->Action)
> + {
> + case SystemFirmwareTable_Get:
> + ret = get_firmware_info(sfti, Length, &len);
> + break;
> + default:
> + len = 0;
> + ret = STATUS_NOT_IMPLEMENTED;
> + FIXME("info_class SYSTEM_FIRMWARE_TABLE_INFORMATION\n");
> + }
> + }
> + break;
> default:
> FIXME("(0x%08x,%p,0x%08x,%p) stub\n",
> SystemInformationClass,SystemInformation,Length,ResultLength);
> diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c
> index cdb91e1b73..b8feebd474 100644
> --- a/dlls/ntdll/tests/info.c
> +++ b/dlls/ntdll/tests/info.c
> @@ -59,6 +59,12 @@ static DWORD one_before_last_pid = 0;
> #define FIRM 0x4649524D
> #define RSMB 0x52534D42
>
> +#ifdef linux
> +static const int firmware_todo = 0;
> +#else
> +static const int firmware_todo = 1;
> +#endif
> +
> static BOOL InitFunctionPtrs(void)
> {
> /* All needed functions are NT based, so using GetModuleHandle is a good check */
> @@ -840,13 +846,10 @@ static void test_query_firmware(void)
> ok(!!sfti, "Failed to allocate memory\n");
>
> status = pNtQuerySystemInformation(SystemFirmwareTableInformation, sfti, 15, &len1);
> -todo_wine
> ok(status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status);
> -todo_wine
> ok(len1 == 16, "Expected length 16, got %u\n", len1);
>
> status = pNtQuerySystemInformation(SystemFirmwareTableInformation, sfti, 16, &len1);
> -todo_wine
> ok(status == STATUS_NOT_IMPLEMENTED, "Expected STATUS_NOT_IMPLEMENTED, got %08x\n", status);
> ok(len1 == 0, "Expected length 0, got %u\n", len1);
>
> @@ -854,16 +857,15 @@ todo_wine
> sfti->Action = SystemFirmwareTable_Get;
>
> status = pNtQuerySystemInformation(SystemFirmwareTableInformation, sfti, 16, &len1);
> -todo_wine
> +todo_wine_if(firmware_todo)
> ok(status == STATUS_BUFFER_TOO_SMALL, "Expected STATUS_BUFFER_TOO_SMALL, got %08x\n", status);
> -todo_wine
> ok(len1 >= 16, "Expected length >= 16, got %u\n", len1);
>
> sfti = HeapReAlloc(GetProcessHeap(), 0, sfti, len1);
> ok(!!sfti, "Failed to allocate memory\n");
>
> status = pNtQuerySystemInformation(SystemFirmwareTableInformation, sfti, len1, &len2);
> -todo_wine
> +todo_wine_if(firmware_todo)
> ok(status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status);
> ok(len2 == len1, "Expected length %u, got %u\n", len1, len2);
>
> --
> 2.17.1
>
>
>
June 15, 2018
Re: [PATCH v5 3/8] kernel32/tests: Add GetSystemFirmwareTable tests
by Huw Davies
On Fri, Jun 15, 2018 at 12:59:09AM -0600, Alex Henrie wrote:
> Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com>
> ---
> dlls/kernel32/tests/version.c | 42 +++++++++++++++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
>
> diff --git a/dlls/kernel32/tests/version.c b/dlls/kernel32/tests/version.c
> index eb78a383d2..6ca45f0b2e 100644
> --- a/dlls/kernel32/tests/version.c
> +++ b/dlls/kernel32/tests/version.c
> @@ -26,11 +26,17 @@
> #include "winternl.h"
>
> static BOOL (WINAPI * pGetProductInfo)(DWORD, DWORD, DWORD, DWORD, DWORD *);
> +static NTSTATUS (WINAPI * pNtQuerySystemInformation)(SYSTEM_INFORMATION_CLASS, void *, ULONG, ULONG *);
> static NTSTATUS (WINAPI * pRtlGetVersion)(RTL_OSVERSIONINFOEXW *);
>
> #define GET_PROC(func) \
> p##func = (void *)GetProcAddress(hmod, #func);
>
> +/* Firmware table providers */
> +#define ACPI 0x41435049
> +#define FIRM 0x4649524D
> +#define RSMB 0x52534D42
> +
> static void init_function_pointers(void)
> {
> HMODULE hmod;
> @@ -41,6 +47,7 @@ static void init_function_pointers(void)
>
> hmod = GetModuleHandleA("ntdll.dll");
>
> + GET_PROC(NtQuerySystemInformation);
> GET_PROC(RtlGetVersion);
> }
>
> @@ -697,6 +704,40 @@ static void test_VerifyVersionInfo(void)
> ok(ret, "VerifyVersionInfoA failed with error %d\n", GetLastError());
> }
>
> +void test_GetSystemFirmwareTable(void)
> +{
> + ULONG expected_len, i;
> + UINT len;
> + SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti = HeapAlloc(GetProcessHeap(), 0, 16);
> + UCHAR *smbios_table = NULL;
> +
> + ok(!!sfti, "Failed to allocate memory\n");
> + sfti->ProviderSignature = RSMB;
> + sfti->Action = SystemFirmwareTable_Get;
You need to initialize TableID.
> + pNtQuerySystemInformation(SystemFirmwareTableInformation, sfti, 16, &expected_len);
> + sfti = HeapReAlloc(GetProcessHeap(), 0, sfti, expected_len);
> + ok(!!sfti, "Failed to allocate memory\n");
> + pNtQuerySystemInformation(SystemFirmwareTableInformation, sfti, expected_len, &expected_len);
> +
> + expected_len -= 16;
> + len = GetSystemFirmwareTable(RSMB, 0, smbios_table, 0);
> +todo_wine
> + ok(len == expected_len, "Expected length %u, got %u\n", expected_len, len);
> +
> + smbios_table = HeapAlloc(GetProcessHeap(), 0, len);
> + len = GetSystemFirmwareTable(RSMB, 0, smbios_table, len);
> +todo_wine
> + ok(len == expected_len, "Expected length %u, got %u\n", expected_len, len);
> + for (i = 0; i < len; i++)
> + {
> + ok(smbios_table[i] == sfti->TableBuffer[i],
> + "Offset %u: Expected %02x, got %02x\n", i, sfti->TableBuffer[i], smbios_table[i]);
> + }
> +
> + HeapFree(GetProcessHeap(), 0, sfti);
> + HeapFree(GetProcessHeap(), 0, smbios_table);
> +}
> +
> START_TEST(version)
> {
> init_function_pointers();
> @@ -704,4 +745,5 @@ START_TEST(version)
> test_GetProductInfo();
> test_GetVersionEx();
> test_VerifyVersionInfo();
> + test_GetSystemFirmwareTable();
> }
> --
> 2.17.1
>
>
>
June 15, 2018
Re: [PATCH v5 2/8] ntdll/tests: Add SystemFirmwareTableInformation tests
by Huw Davies
On Fri, Jun 15, 2018 at 12:59:08AM -0600, Alex Henrie wrote:
> Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com>
> ---
> dlls/ntdll/tests/info.c | 48 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 48 insertions(+)
>
> diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c
> index 6c93c3cd58..cdb91e1b73 100644
> --- a/dlls/ntdll/tests/info.c
> +++ b/dlls/ntdll/tests/info.c
> @@ -54,6 +54,11 @@ static DWORD one_before_last_pid = 0;
> } \
> } while(0)
>
> +/* Firmware table providers */
> +#define ACPI 0x41435049
> +#define FIRM 0x4649524D
> +#define RSMB 0x52534D42
> +
> static BOOL InitFunctionPtrs(void)
> {
> /* All needed functions are NT based, so using GetModuleHandle is a good check */
> @@ -826,6 +831,45 @@ static void test_query_logicalprocex(void)
> }
> }
>
> +static void test_query_firmware(void)
> +{
> + ULONG len1, len2;
> + NTSTATUS status;
> + SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 16);
> +
> + ok(!!sfti, "Failed to allocate memory\n");
> +
> + status = pNtQuerySystemInformation(SystemFirmwareTableInformation, sfti, 15, &len1);
> +todo_wine
> + ok(status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status);
> +todo_wine
> + ok(len1 == 16, "Expected length 16, got %u\n", len1);
> +
> + status = pNtQuerySystemInformation(SystemFirmwareTableInformation, sfti, 16, &len1);
> +todo_wine
> + ok(status == STATUS_NOT_IMPLEMENTED, "Expected STATUS_NOT_IMPLEMENTED, got %08x\n", status);
> + ok(len1 == 0, "Expected length 0, got %u\n", len1);
> +
> + sfti->ProviderSignature = RSMB;
> + sfti->Action = SystemFirmwareTable_Get;
> +
> + status = pNtQuerySystemInformation(SystemFirmwareTableInformation, sfti, 16, &len1);
> +todo_wine
> + ok(status == STATUS_BUFFER_TOO_SMALL, "Expected STATUS_BUFFER_TOO_SMALL, got %08x\n", status);
> +todo_wine
> + ok(len1 >= 16, "Expected length >= 16, got %u\n", len1);
testing TableBufferLength == len1 - 16 would be useful here.
> +
> + sfti = HeapReAlloc(GetProcessHeap(), 0, sfti, len1);
> + ok(!!sfti, "Failed to allocate memory\n");
> +
> + status = pNtQuerySystemInformation(SystemFirmwareTableInformation, sfti, len1, &len2);
> +todo_wine
> + ok(status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status);
> + ok(len2 == len1, "Expected length %u, got %u\n", len1, len2);
and here.
> +
> + HeapFree(GetProcessHeap(), 0, sfti);
> +}
> +
> static void test_query_processor_power_info(void)
> {
> NTSTATUS status;
> @@ -2267,6 +2311,10 @@ START_TEST(info)
> trace("Starting test_process_debug_flags()\n");
> test_query_process_debug_flags(argc, argv);
>
> + /* 0x4C SystemFirmwareTableInformation */
> + trace("Starting test_query_firmware()\n");
> + test_query_firmware();
> +
> /* belongs to its own file */
> trace("Starting test_readvirtualmemory()\n");
> test_readvirtualmemory();
> --
> 2.17.1
>
>
>
June 15, 2018
Re: [PATCH] msi: Add package minor/major upgrade tests
by Hans Leidekker
Signed-off-by: Hans Leidekker <hans(a)codeweavers.com>
June 15, 2018
Re: [PATCH v5 5/8] kernel32: Connect GetSystemFirmwareTable to NtQuerySystemInformation
by Marvin
Hi,
While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
https://testbot.winehq.org/JobDetails.pl?Key=39156
Your paranoid android.
=== w2003std (32 bit version) ===
version.c:724: Test failed: Expected length 4294967280, got 449
version.c:728: Test failed: Expected length 4294967280, got 449
version.c:731: Test failed: Offset 0: Expected 3a, got 00
version.c:731: Test failed: Offset 1: Expected 00, got 02
version.c:731: Test failed: Offset 2: Expected 03, got 08
version.c:731: Test failed: Offset 3: Expected 00, got 28
version.c:731: Test failed: Offset 4: Expected 00, got b9
version.c:731: Test failed: Offset 6: Expected 0f, got 00
version.c:731: Test failed: Offset 9: Expected 02, got 18
version.c:731: Test failed: Offset 10: Expected 08, got 00
version.c:731: Test failed: Offset 11: Expected 28, got 00
version.c:731: Test failed: Offset 12: Expected b9, got 01
version.c:731: Test failed: Offset 13: Expected 01, got 02
version.c:731: Test failed: Offset 15: Expected 00, got e8
version.c:731: Test failed: Offset 16: Expected 00, got 03
version.c:731: Test failed: Offset 17: Expected 18, got 00
version.c:731: Test failed: Offset 18: Expected 00, got 08
version.c:731: Test failed: Offset 20: Expected 01, got 00
version.c:731: Test failed: Offset 21: Expected 02, got 00
version.c:731: Test failed: Offset 23: Expected e8, got 00
version.c:731: Test failed: Offset 24: Expected 03, got 00
version.c:731: Test failed: Offset 26: Expected 08, got 00
version.c:731: Test failed: Offset 27: Expected 00, got 04
version.c:731: Test failed: Offset 30: Expected 00, got ff
version.c:731: Test failed: Offset 31: Expected 00, got ff
version.c:731: Test failed: Offset 32: Expected 00, got 53
version.c:731: Test failed: Offset 33: Expected 00, got 65
version.c:731: Test failed: Offset 34: Expected 00, got 61
version.c:731: Test failed: Offset 35: Expected 04, got 42
version.c:731: Test failed: Offset 36: Expected 00, got 49
version.c:731: Test failed: Offset 37: Expected 00, got 4f
version.c:731: Test failed: Offset 38: Expected ff, got 53
version.c:731: Test failed: Offset 39: Expected ff, got 00
version.c:731: Test failed: Offset 40: Expected 53, got 31
version.c:731: Test failed: Offset 41: Expected 65, got 2e
version.c:731: Test failed: Offset 42: Expected 61, got 31
version.c:731: Test failed: Offset 43: Expected 42, got 30
version.c:731: Test failed: Offset 44: Expected 49, got 2e
version.c:731: Test failed: Offset 45: Expected 4f, got 32
version.c:731: Test failed: Offset 46: Expected 53, got 2d
version.c:731: Test failed: Offset 47: Expected 00, got 31
version.c:731: Test failed: Offset 48: Expected 31, got 00
version.c:731: Test failed: Offset 49: Expected 2e, got 30
version.c:731: Test failed: Offset 50: Expected 31, got 34
version.c:731: Test failed: Offset 51: Expected 30, got 2f
version.c:731: Test failed: Offset 52: Expected 2e, got 30
version.c:731: Test failed: Offset 53: Expected 32, got 31
version.c:731: Test failed: Offset 54: Expected 2d, got 2f
version.c:731: Test failed: Offset 55: Expected 31, got 32
version.c:731: Test failed: Offset 56: Expected 00, got 30
version.c:731: Test failed: Offset 57: Expected 30, got 31
version.c:731: Test failed: Offset 59: Expected 2f, got 00
version.c:731: Test failed: Offset 60: Expected 30, got 00
version.c:731: Test failed: Offset 61: Expected 31, got 01
version.c:731: Test failed: Offset 62: Expected 2f, got 1b
version.c:731: Test failed: Offset 63: Expected 32, got 00
version.c:731: Test failed: Offset 64: Expected 30, got 01
version.c:731: Test failed: Offset 65: Expected 31, got 01
version.c:731: Test failed: Offset 66: Expected 34, got 02
version.c:731: Test failed: Offset 67: Expected 00, got 03
version.c:731: Test failed: Offset 69: Expected 01, got b7
version.c:731: Test failed: Offset 70: Expected 1b, got ff
version.c:731: Test failed: Offset 71: Expected 00, got 4f
version.c:731: Test failed: Offset 72: Expected 01, got 2a
version.c:731: Test failed: Offset 73: Expected 01, got c5
version.c:731: Test failed: Offset 74: Expected 02, got 53
version.c:731: Test failed: Offset 75: Expected 03, got 46
version.c:731: Test failed: Offset 76: Expected 00, got 9e
version.c:731: Test failed: Offset 77: Expected b7, got 8f
version.c:731: Test failed: Offset 78: Expected ff, got db
version.c:731: Test failed: Offset 79: Expected 4f, got 72
version.c:731: Test failed: Offset 80: Expected 2a, got e5
version.c:731: Test failed: Offset 81: Expected c5, got aa
version.c:731: Test failed: Offset 82: Expected 53, got 9a
version.c:731: Test failed: Offset 83: Expected 46, got b9
version.c:731: Test failed: Offset 84: Expected 9e, got de
version.c:731: Test failed: Offset 85: Expected 8f, got 06
version.c:731: Test failed: Offset 86: Expected db, got 00
version.c:731: Test failed: Offset 87: Expected 72, got 00
version.c:731: Test failed: Offset 88: Expected e5, got 51
version.c:731: Test failed: Offset 89: Expected aa, got 45
version.c:731: Test failed: Offset 90: Expected 9a, got 4d
version.c:731: Test failed: Offset 91: Expected b9, got 55
version.c:731: Test failed: Offset 92: Expected de, got 00
version.c:731: Test failed: Offset 93: Expected 06, got 53
version.c:731: Test failed: Offset 94: Expected 00, got 74
version.c:731: Test failed: Offset 95: Expected 00, got 61
version.c:731: Test failed: Offset 96: Expected 51, got 6e
version.c:731: Test failed: Offset 97: Expected 45, got 64
version.c:731: Test failed: Offset 98: Expected 4d, got 61
version.c:731: Test failed: Offset 99: Expected 55, got 72
version.c:731: Test failed: Offset 100: Expected 00, got 64
version.c:731: Test failed: Offset 101: Expected 53, got 20
version.c:731: Test failed: Offset 102: Expected 74, got 50
version.c:731: Test failed: Offset 103: Expected 61, got 43
version.c:731: Test failed: Offset 104: Expected 6e, got 20
version.c:731: Test failed: Offset 105: Expected 64, got 28
version.c:731: Test failed: Offset 106: Expected 61, got 69
version.c:731: Test failed: Offset 107: Expected 72, got 34
version.c:731: Test failed: Offset 108: Expected 64, got 34
version.c:731: Test failed: Offset 109: Expected 20, got 30
version.c:731: Test failed: Offset 110: Expected 50, got 46
version.c:731: Test failed: Offset 111: Expected 43, got 58
version.c:731: Test failed: Offset 113: Expected 28, got 2b
version.c:731: Test failed: Offset 114: Expected 69, got 20
version.c:731: Test failed: Offset 115: Expected 34, got 50
version.c:731: Test failed: Offset 116: Expected 34, got 49
version.c:731: Test failed: Offset 117: Expected 30, got 49
version.c:731: Test failed: Offset 118: Expected 46, got 58
version.c:731: Test failed: Offset 119: Expected 58, got 2c
version.c:731: Test failed: Offset 121: Expected 2b, got 31
version.c:731: Test failed: Offset 122: Expected 20, got 39
version.c:731: Test failed: Offset 123: Expected 50, got 39
version.c:731: Test failed: Offset 124: Expected 49, got 36
version.c:731: Test failed: Offset 125: Expected 49, got 29
version.c:731: Test failed: Offset 126: Expected 58, got 00
version.c:731: Test failed: Offset 127: Expected 2c, got 70
version.c:731: Test failed: Offset 128: Expected 20, got 63
version.c:731: Test failed: Offset 129: Expected 31, got 2d
version.c:731: Test failed: Offset 130: Expected 39, got 69
version.c:731: Test failed: Offset 131: Expected 39, got 34
version.c:731: Test failed: Offset 132: Expected 36, got 34
version.c:731: Test failed: Offset 133: Expected 29, got 30
version.c:731: Test failed: Offset 134: Expected 00, got 66
version.c:731: Test failed: Offset 135: Expected 70, got 78
version.c:731: Test failed: Offset 136: Expected 63, got 2d
version.c:731: Test failed: Offset 137: Expected 2d, got 32
version.c:731: Test failed: Offset 138: Expected 69, got 2e
version.c:731: Test failed: Offset 139: Expected 34, got 31
version.c:731: Test failed: Offset 140: Expected 34, got 00
version.c:731: Test failed: Offset 141: Expected 30, got 00
version.c:731: Test failed: Offset 142: Expected 66, got 03
version.c:731: Test failed: Offset 143: Expected 78, got 15
version.c:731: Test failed: Offset 144: Expected 2d, got 00
version.c:731: Test failed: Offset 145: Expected 32, got 03
version.c:731: Test failed: Offset 146: Expected 2e, got 01
version.c:731: Test failed: Offset 147: Expected 31, got 01
version.c:731: Test failed: Offset 148: Expected 00, got 02
version.c:731: Test failed: Offset 150: Expected 03, got 00
version.c:731: Test failed: Offset 151: Expected 15, got 03
version.c:731: Test failed: Offset 152: Expected 00, got 03
version.c:731: Test failed: Offset 154: Expected 01, got 02
version.c:731: Test failed: Offset 155: Expected 01, got 00
version.c:731: Test failed: Offset 156: Expected 02, got 00
version.c:731: Test failed: Offset 159: Expected 03, got 00
version.c:731: Test failed: Offset 160: Expected 03, got 00
version.c:731: Test failed: Offset 161: Expected 03, got 00
version.c:731: Test failed: Offset 162: Expected 02, got 00
version.c:731: Test failed: Offset 163: Expected 00, got 51
version.c:731: Test failed: Offset 164: Expected 00, got 45
version.c:731: Test failed: Offset 165: Expected 00, got 4d
version.c:731: Test failed: Offset 166: Expected 00, got 55
version.c:731: Test failed: Offset 168: Expected 00, got 70
version.c:731: Test failed: Offset 169: Expected 00, got 63
version.c:731: Test failed: Offset 170: Expected 00, got 2d
version.c:731: Test failed: Offset 171: Expected 51, got 69
version.c:731: Test failed: Offset 172: Expected 45, got 34
version.c:731: Test failed: Offset 173: Expected 4d, got 34
version.c:731: Test failed: Offset 174: Expected 55, got 30
version.c:731: Test failed: Offset 175: Expected 00, got 66
version.c:731: Test failed: Offset 176: Expected 70, got 78
version.c:731: Test failed: Offset 177: Expected 63, got 2d
version.c:731: Test failed: Offset 178: Expected 2d, got 32
version.c:731: Test failed: Offset 179: Expected 69, got 2e
version.c:731: Test failed: Offset 180: Expected 34, got 31
version.c:731: Test failed: Offset 181: Expected 34, got 00
version.c:731: Test failed: Offset 182: Expected 30, got 00
version.c:731: Test failed: Offset 183: Expected 66, got 04
version.c:731: Test failed: Offset 184: Expected 78, got 2a
version.c:731: Test failed: Offset 185: Expected 2d, got 00
version.c:731: Test failed: Offset 186: Expected 32, got 04
version.c:731: Test failed: Offset 187: Expected 2e, got 01
version.c:731: Test failed: Offset 188: Expected 31, got 03
version.c:731: Test failed: Offset 189: Expected 00, got 01
version.c:731: Test failed: Offset 190: Expected 00, got 02
version.c:731: Test failed: Offset 191: Expected 04, got 61
version.c:731: Test failed: Offset 192: Expected 2a, got 0f
version.c:731: Test failed: Offset 194: Expected 04, got 00
version.c:731: Test failed: Offset 195: Expected 01, got fd
version.c:731: Test failed: Offset 196: Expected 03, got fb
version.c:731: Test failed: Offset 197: Expected 01, got 8b
version.c:731: Test failed: Offset 198: Expected 02, got 07
version.c:731: Test failed: Offset 199: Expected 61, got 03
version.c:731: Test failed: Offset 200: Expected 0f, got 00
version.c:731: Test failed: Offset 203: Expected fd, got d0
version.c:731: Test failed: Offset 204: Expected fb, got 07
version.c:731: Test failed: Offset 205: Expected 8b, got d0
version.c:731: Test failed: Offset 207: Expected 03, got 41
version.c:731: Test failed: Offset 208: Expected 00, got 01
version.c:731: Test failed: Offset 209: Expected 00, got ff
version.c:731: Test failed: Offset 210: Expected 00, got ff
version.c:731: Test failed: Offset 211: Expected d0, got ff
version.c:731: Test failed: Offset 212: Expected 07, got ff
version.c:731: Test failed: Offset 213: Expected d0, got ff
version.c:731: Test failed: Offset 214: Expected 07, got ff
version.c:731: Test failed: Offset 215: Expected 41, got 00
version.c:731: Test failed: Offset 216: Expected 01, got 00
version.c:731: Test failed: Offset 217: Expected ff, got 00
version.c:731: Test failed: Offset 218: Expected ff, got 01
version.c:731: Test failed: Offset 219: Expected ff, got 01
version.c:731: Test failed: Offset 220: Expected ff, got 01
version.c:731: Test failed: Offset 221: Expected ff, got 02
version.c:731: Test failed: Offset 222: Expected ff, got 00
version.c:731: Test failed: Offset 223: Expected 00, got 01
version.c:731: Test failed: Offset 225: Expected 00, got 43
version.c:731: Test failed: Offset 226: Expected 01, got 50
version.c:731: Test failed: Offset 227: Expected 01, got 55
version.c:731: Test failed: Offset 228: Expected 01, got 20
version.c:731: Test failed: Offset 229: Expected 02, got 30
version.c:731: Test failed: Offset 231: Expected 01, got 51
version.c:731: Test failed: Offset 232: Expected 00, got 45
version.c:731: Test failed: Offset 233: Expected 43, got 4d
version.c:731: Test failed: Offset 234: Expected 50, got 55
version.c:731: Test failed: Offset 235: Expected 55, got 00
version.c:731: Test failed: Offset 236: Expected 20, got 70
version.c:731: Test failed: Offset 237: Expected 30, got 63
version.c:731: Test failed: Offset 238: Expected 00, got 2d
version.c:731: Test failed: Offset 239: Expected 51, got 69
version.c:731: Test failed: Offset 240: Expected 45, got 34
version.c:731: Test failed: Offset 241: Expected 4d, got 34
version.c:731: Test failed: Offset 242: Expected 55, got 30
version.c:731: Test failed: Offset 243: Expected 00, got 66
version.c:731: Test failed: Offset 244: Expected 70, got 78
version.c:731: Test failed: Offset 245: Expected 63, got 2d
version.c:731: Test failed: Offset 246: Expected 2d, got 32
version.c:731: Test failed: Offset 247: Expected 69, got 2e
version.c:731: Test failed: Offset 248: Expected 34, got 31
version.c:731: Test failed: Offset 249: Expected 34, got 00
version.c:731: Test failed: Offset 250: Expected 30, got 00
version.c:731: Test failed: Offset 251: Expected 66, got 04
version.c:731: Test failed: Offset 252: Expected 78, got 2a
version.c:731: Test failed: Offset 253: Expected 2d, got 01
version.c:731: Test failed: Offset 254: Expected 32, got 04
version.c:731: Test failed: Offset 255: Expected 2e, got 01
version.c:731: Test failed: Offset 256: Expected 31, got 03
version.c:731: Test failed: Offset 257: Expected 00, got 01
version.c:731: Test failed: Offset 258: Expected 00, got 02
version.c:731: Test failed: Offset 259: Expected 04, got 61
version.c:731: Test failed: Offset 260: Expected 2a, got 0f
version.c:731: Test failed: Offset 261: Expected 01, got 00
version.c:731: Test failed: Offset 262: Expected 04, got 00
version.c:731: Test failed: Offset 263: Expected 01, got fd
version.c:731: Test failed: Offset 264: Expected 03, got fb
version.c:731: Test failed: Offset 265: Expected 01, got 8b
version.c:731: Test failed: Offset 266: Expected 02, got 07
version.c:731: Test failed: Offset 267: Expected 61, got 03
version.c:731: Test failed: Offset 268: Expected 0f, got 00
version.c:731: Test failed: Offset 271: Expected fd, got d0
version.c:731: Test failed: Offset 272: Expected fb, got 07
version.c:731: Test failed: Offset 273: Expected 8b, got d0
version.c:731: Test failed: Offset 275: Expected 03, got 41
version.c:731: Test failed: Offset 276: Expected 00, got 01
version.c:731: Test failed: Offset 277: Expected 00, got ff
version.c:731: Test failed: Offset 278: Expected 00, got ff
version.c:731: Test failed: Offset 279: Expected d0, got ff
version.c:731: Test failed: Offset 280: Expected 07, got ff
version.c:731: Test failed: Offset 281: Expected d0, got ff
version.c:731: Test failed: Offset 282: Expected 07, got ff
version.c:731: Test failed: Offset 283: Expected 41, got 00
version.c:731: Test failed: Offset 284: Expected 01, got 00
version.c:731: Test failed: Offset 285: Expected ff, got 00
version.c:731: Test failed: Offset 286: Expected ff, got 01
version.c:731: Test failed: Offset 287: Expected ff, got 01
version.c:731: Test failed: Offset 288: Expected ff, got 01
version.c:731: Test failed: Offset 289: Expected ff, got 02
version.c:731: Test failed: Offset 290: Expected ff, got 00
version.c:731: Test failed: Offset 291: Expected 00, got 01
version.c:731: Test failed: Offset 293: Expected 00, got 43
version.c:731: Test failed: Offset 294: Expected 01, got 50
version.c:731: Test failed: Offset 295: Expected 01, got 55
version.c:731: Test failed: Offset 296: Expected 01, got 20
version.c:731: Test failed: Offset 297: Expected 02, got 31
version.c:731: Test failed: Offset 299: Expected 01, got 51
version.c:731: Test failed: Offset 300: Expected 00, got 45
version.c:731: Test failed: Offset 301: Expected 43, got 4d
version.c:731: Test failed: Offset 302: Expected 50, got 55
version.c:731: Test failed: Offset 303: Expected 55, got 00
version.c:731: Test failed: Offset 304: Expected 20, got 70
version.c:731: Test failed: Offset 305: Expected 31, got 63
version.c:731: Test failed: Offset 306: Expected 00, got 2d
version.c:731: Test failed: Offset 307: Expected 51, got 69
version.c:731: Test failed: Offset 308: Expected 45, got 34
version.c:731: Test failed: Offset 309: Expected 4d, got 34
version.c:731: Test failed: Offset 310: Expected 55, got 30
version.c:731: Test failed: Offset 311: Expected 00, got 66
version.c:731: Test failed: Offset 312: Expected 70, got 78
version.c:731: Test failed: Offset 313: Expected 63, got 2d
version.c:731: Test failed: Offset 314: Expected 2d, got 32
version.c:731: Test failed: Offset 315: Expected 69, got 2e
version.c:731: Test failed: Offset 316: Expected 34, got 31
version.c:731: Test failed: Offset 317: Expected 34, got 00
version.c:731: Test failed: Offset 318: Expected 30, got 00
version.c:731: Test failed: Offset 319: Expected 66, got 10
version.c:731: Test failed: Offset 320: Expected 78, got 17
version.c:731: Test failed: Offset 321: Expected 2d, got 00
version.c:731: Test failed: Offset 322: Expected 32, got 10
version.c:731: Test failed: Offset 323: Expected 2e, got 01
version.c:731: Test failed: Offset 324: Expected 31, got 03
version.c:731: Test failed: Offset 325: Expected 00, got 06
version.c:731: Test failed: Offset 327: Expected 10, got 00
version.c:731: Test failed: Offset 328: Expected 17, got 10
version.c:731: Test failed: Offset 330: Expected 10, got fe
version.c:731: Test failed: Offset 331: Expected 01, got ff
version.c:731: Test failed: Offset 332: Expected 03, got 01
version.c:731: Test failed: Offset 333: Expected 06, got 00
version.c:731: Test failed: Offset 336: Expected 10, got 00
version.c:731: Test failed: Offset 338: Expected fe, got 00
version.c:731: Test failed: Offset 339: Expected ff, got 00
version.c:731: Test failed: Offset 340: Expected 01, got 00
version.c:731: Test failed: Offset 344: Expected 00, got 11
version.c:731: Test failed: Offset 345: Expected 00, got 28
version.c:731: Test failed: Offset 347: Expected 00, got 11
version.c:731: Test failed: Offset 349: Expected 00, got 10
version.c:731: Test failed: Offset 350: Expected 00, got fe
version.c:731: Test failed: Offset 351: Expected 00, got ff
version.c:731: Test failed: Offset 352: Expected 11, got ff
version.c:731: Test failed: Offset 353: Expected 28, got ff
version.c:731: Test failed: Offset 354: Expected 00, got ff
version.c:731: Test failed: Offset 355: Expected 11, got ff
version.c:731: Test failed: Offset 357: Expected 10, got 04
version.c:731: Test failed: Offset 358: Expected fe, got 09
version.c:731: Test failed: Offset 359: Expected ff, got 00
version.c:731: Test failed: Offset 360: Expected ff, got 01
version.c:731: Test failed: Offset 361: Expected ff, got 00
version.c:731: Test failed: Offset 362: Expected ff, got 07
version.c:731: Test failed: Offset 363: Expected ff, got 02
version.c:731: Test failed: Offset 365: Expected 04, got 00
version.c:731: Test failed: Offset 366: Expected 09, got 00
version.c:731: Test failed: Offset 367: Expected 00, got 02
version.c:731: Test failed: Offset 368: Expected 01, got 00
version.c:731: Test failed: Offset 370: Expected 07, got 00
version.c:731: Test failed: Offset 371: Expected 02, got 00
version.c:731: Test failed: Offset 375: Expected 02, got 00
version.c:731: Test failed: Offset 384: Expected 00, got 44
version.c:731: Test failed: Offset 385: Expected 00, got 49
version.c:731: Test failed: Offset 386: Expected 00, got 4d
version.c:731: Test failed: Offset 387: Expected 00, got 4d
version.c:731: Test failed: Offset 388: Expected 00, got 20
version.c:731: Test failed: Offset 389: Expected 00, got 30
version.c:731: Test failed: Offset 391: Expected 00, got 51
version.c:731: Test failed: Offset 392: Expected 44, got 45
version.c:731: Test failed: Offset 393: Expected 49, got 4d
version.c:731: Test failed: Offset 394: Expected 4d, got 55
version.c:731: Test failed: Offset 395: Expected 4d, got 00
version.c:731: Test failed: Offset 396: Expected 20, got 00
version.c:731: Test failed: Offset 397: Expected 30, got 13
version.c:731: Test failed: Offset 398: Expected 00, got 1f
version.c:731: Test failed: Offset 399: Expected 51, got 00
version.c:731: Test failed: Offset 400: Expected 45, got 13
version.c:731: Test failed: Offset 401: Expected 4d, got 00
version.c:731: Test failed: Offset 402: Expected 55, got 00
version.c:731: Test failed: Offset 405: Expected 13, got ff
version.c:731: Test failed: Offset 406: Expected 1f, got ff
version.c:731: Test failed: Offset 407: Expected 00, got 0f
version.c:731: Test failed: Offset 408: Expected 13, got 00
version.c:731: Test failed: Offset 410: Expected 00, got 10
version.c:731: Test failed: Offset 411: Expected 00, got 01
version.c:731: Test failed: Offset 413: Expected ff, got 00
version.c:731: Test failed: Offset 414: Expected ff, got 00
version.c:731: Test failed: Offset 415: Expected 0f, got 00
version.c:731: Test failed: Offset 418: Expected 10, got 00
version.c:731: Test failed: Offset 419: Expected 01, got 00
version.c:731: Test failed: Offset 430: Expected 00, got 20
version.c:731: Test failed: Offset 431: Expected 00, got 0b
version.c:731: Test failed: Offset 433: Expected 00, got 20
version.c:731: Test failed: Offset 438: Expected 20, got 00
version.c:731: Test failed: Offset 439: Expected 0b, got 00
version.c:731: Test failed: Offset 441: Expected 20, got 00
version.c:731: Test failed: Offset 443: Expected 00, got 7f
version.c:731: Test failed: Offset 444: Expected 00, got 04
version.c:731: Test failed: Offset 446: Expected 00, got 7f
June 15, 2018
Re: [PATCH v5 4/8] ntdll: Return BIOS info from NtQuerySystemInformation on Linux
by Marvin
Hi,
While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
https://testbot.winehq.org/JobDetails.pl?Key=39155
Your paranoid android.
=== wxppro (32 bit info) ===
info.c:849: Test failed: Expected STATUS_INFO_LENGTH_MISMATCH, got c0000003
info.c:850: Test failed: Expected length 16, got 0
info.c:853: Test failed: Expected STATUS_NOT_IMPLEMENTED, got c0000003
info.c:861: Test failed: Expected STATUS_BUFFER_TOO_SMALL, got c0000003
info.c:862: Test failed: Expected length >= 16, got 0
info.c:869: Test failed: Expected STATUS_SUCCESS, got c0000003
=== w2003std (32 bit info) ===
info.c:850: Test failed: Expected length 16, got 0
info.c:853: Test failed: Expected STATUS_NOT_IMPLEMENTED, got c0000004
info.c:861: Test failed: Expected STATUS_BUFFER_TOO_SMALL, got c0000004
info.c:862: Test failed: Expected length >= 16, got 0
info.c:869: Test failed: Expected STATUS_SUCCESS, got c0000004
=== wvistau64 (32 bit info) ===
info.c:1838: Test failed: Expected STATUS_SUCCESS, got c0000022
0890:info: unhandled exception c0000005 at 002C0000
=== wvistau64_zh_CN (32 bit info) ===
info.c:1838: Test failed: Expected STATUS_SUCCESS, got c0000022
0bb8:info: unhandled exception c0000005 at 003E0000
=== wvistau64_fr (32 bit info) ===
info.c:1838: Test failed: Expected STATUS_SUCCESS, got c0000022
06a8:info: unhandled exception c0000005 at 002C0000
=== wvistau64_he (32 bit info) ===
info.c:1838: Test failed: Expected STATUS_SUCCESS, got c0000022
0bd8:info: unhandled exception c0000005 at 003D0000
=== w2008s64 (32 bit info) ===
info.c:1838: Test failed: Expected STATUS_SUCCESS, got c0000022
086c:info: unhandled exception c0000005 at 003D0000
=== w7u (32 bit info) ===
info.c:1838: Test failed: Expected STATUS_SUCCESS, got c0000022
=== w7pro64 (32 bit info) ===
info.c:1838: Test failed: Expected STATUS_SUCCESS, got c0000022
0ab8:info: unhandled exception c0000005 at 00340000
=== w8 (32 bit info) ===
info.c:1838: Test failed: Expected STATUS_SUCCESS, got c0000022
0f30:info: unhandled exception c0000005 at 003E0000
=== w864 (32 bit info) ===
info.c:1838: Test failed: Expected STATUS_SUCCESS, got c0000022
0a18:info: unhandled exception c0000005 at 00350000
=== w1064 (32 bit info) ===
info.c:1838: Test failed: Expected STATUS_SUCCESS, got c0000022
0b54:info: unhandled exception c0000005 at 00390000
June 15, 2018
Re: [PATCH v5 3/8] kernel32/tests: Add GetSystemFirmwareTable tests
by Marvin
Hi,
While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
https://testbot.winehq.org/JobDetails.pl?Key=39154
Your paranoid android.
=== w2003std (32 bit version) ===
version.c:725: Test failed: Expected length 4294967280, got 449
version.c:730: Test failed: Expected length 4294967280, got 449
version.c:733: Test failed: Offset 0: Expected 3a, got 00
version.c:733: Test failed: Offset 1: Expected 00, got 02
version.c:733: Test failed: Offset 2: Expected 03, got 08
version.c:733: Test failed: Offset 3: Expected 00, got 28
version.c:733: Test failed: Offset 4: Expected e5, got b9
version.c:733: Test failed: Offset 6: Expected 0f, got 00
version.c:733: Test failed: Offset 9: Expected 02, got 18
version.c:733: Test failed: Offset 10: Expected 08, got 00
version.c:733: Test failed: Offset 11: Expected 28, got 00
version.c:733: Test failed: Offset 12: Expected b9, got 01
version.c:733: Test failed: Offset 13: Expected 01, got 02
version.c:733: Test failed: Offset 15: Expected 00, got e8
version.c:733: Test failed: Offset 16: Expected 00, got 03
version.c:733: Test failed: Offset 17: Expected 18, got 00
version.c:733: Test failed: Offset 18: Expected 00, got 08
version.c:733: Test failed: Offset 20: Expected 01, got 00
version.c:733: Test failed: Offset 21: Expected 02, got 00
version.c:733: Test failed: Offset 23: Expected e8, got 00
version.c:733: Test failed: Offset 24: Expected 03, got 00
version.c:733: Test failed: Offset 26: Expected 08, got 00
version.c:733: Test failed: Offset 27: Expected 00, got 04
version.c:733: Test failed: Offset 30: Expected 00, got ff
version.c:733: Test failed: Offset 31: Expected 00, got ff
version.c:733: Test failed: Offset 32: Expected 00, got 53
version.c:733: Test failed: Offset 33: Expected 00, got 65
version.c:733: Test failed: Offset 34: Expected 00, got 61
version.c:733: Test failed: Offset 35: Expected 04, got 42
version.c:733: Test failed: Offset 36: Expected 00, got 49
version.c:733: Test failed: Offset 37: Expected 00, got 4f
version.c:733: Test failed: Offset 38: Expected ff, got 53
version.c:733: Test failed: Offset 39: Expected ff, got 00
version.c:733: Test failed: Offset 40: Expected 53, got 31
version.c:733: Test failed: Offset 41: Expected 65, got 2e
version.c:733: Test failed: Offset 42: Expected 61, got 31
version.c:733: Test failed: Offset 43: Expected 42, got 30
version.c:733: Test failed: Offset 44: Expected 49, got 2e
version.c:733: Test failed: Offset 45: Expected 4f, got 32
version.c:733: Test failed: Offset 46: Expected 53, got 2d
version.c:733: Test failed: Offset 47: Expected 00, got 31
version.c:733: Test failed: Offset 48: Expected 31, got 00
version.c:733: Test failed: Offset 49: Expected 2e, got 30
version.c:733: Test failed: Offset 50: Expected 31, got 34
version.c:733: Test failed: Offset 51: Expected 30, got 2f
version.c:733: Test failed: Offset 52: Expected 2e, got 30
version.c:733: Test failed: Offset 53: Expected 32, got 31
version.c:733: Test failed: Offset 54: Expected 2d, got 2f
version.c:733: Test failed: Offset 55: Expected 31, got 32
version.c:733: Test failed: Offset 56: Expected 00, got 30
version.c:733: Test failed: Offset 57: Expected 30, got 31
version.c:733: Test failed: Offset 59: Expected 2f, got 00
version.c:733: Test failed: Offset 60: Expected 30, got 00
version.c:733: Test failed: Offset 61: Expected 31, got 01
version.c:733: Test failed: Offset 62: Expected 2f, got 1b
version.c:733: Test failed: Offset 63: Expected 32, got 00
version.c:733: Test failed: Offset 64: Expected 30, got 01
version.c:733: Test failed: Offset 65: Expected 31, got 01
version.c:733: Test failed: Offset 66: Expected 34, got 02
version.c:733: Test failed: Offset 67: Expected 00, got 03
version.c:733: Test failed: Offset 69: Expected 01, got b7
version.c:733: Test failed: Offset 70: Expected 1b, got ff
version.c:733: Test failed: Offset 71: Expected 00, got 4f
version.c:733: Test failed: Offset 72: Expected 01, got 2a
version.c:733: Test failed: Offset 73: Expected 01, got c5
version.c:733: Test failed: Offset 74: Expected 02, got 53
version.c:733: Test failed: Offset 75: Expected 03, got 46
version.c:733: Test failed: Offset 76: Expected 00, got 9e
version.c:733: Test failed: Offset 77: Expected b7, got 8f
version.c:733: Test failed: Offset 78: Expected ff, got db
version.c:733: Test failed: Offset 79: Expected 4f, got 72
version.c:733: Test failed: Offset 80: Expected 2a, got e5
version.c:733: Test failed: Offset 81: Expected c5, got aa
version.c:733: Test failed: Offset 82: Expected 53, got 9a
version.c:733: Test failed: Offset 83: Expected 46, got b9
version.c:733: Test failed: Offset 84: Expected 9e, got de
version.c:733: Test failed: Offset 85: Expected 8f, got 06
version.c:733: Test failed: Offset 86: Expected db, got 00
version.c:733: Test failed: Offset 87: Expected 72, got 00
version.c:733: Test failed: Offset 88: Expected e5, got 51
version.c:733: Test failed: Offset 89: Expected aa, got 45
version.c:733: Test failed: Offset 90: Expected 9a, got 4d
version.c:733: Test failed: Offset 91: Expected b9, got 55
version.c:733: Test failed: Offset 92: Expected de, got 00
version.c:733: Test failed: Offset 93: Expected 06, got 53
version.c:733: Test failed: Offset 94: Expected 00, got 74
version.c:733: Test failed: Offset 95: Expected 00, got 61
version.c:733: Test failed: Offset 96: Expected 51, got 6e
version.c:733: Test failed: Offset 97: Expected 45, got 64
version.c:733: Test failed: Offset 98: Expected 4d, got 61
version.c:733: Test failed: Offset 99: Expected 55, got 72
version.c:733: Test failed: Offset 100: Expected 00, got 64
version.c:733: Test failed: Offset 101: Expected 53, got 20
version.c:733: Test failed: Offset 102: Expected 74, got 50
version.c:733: Test failed: Offset 103: Expected 61, got 43
version.c:733: Test failed: Offset 104: Expected 6e, got 20
version.c:733: Test failed: Offset 105: Expected 64, got 28
version.c:733: Test failed: Offset 106: Expected 61, got 69
version.c:733: Test failed: Offset 107: Expected 72, got 34
version.c:733: Test failed: Offset 108: Expected 64, got 34
version.c:733: Test failed: Offset 109: Expected 20, got 30
version.c:733: Test failed: Offset 110: Expected 50, got 46
version.c:733: Test failed: Offset 111: Expected 43, got 58
version.c:733: Test failed: Offset 113: Expected 28, got 2b
version.c:733: Test failed: Offset 114: Expected 69, got 20
version.c:733: Test failed: Offset 115: Expected 34, got 50
version.c:733: Test failed: Offset 116: Expected 34, got 49
version.c:733: Test failed: Offset 117: Expected 30, got 49
version.c:733: Test failed: Offset 118: Expected 46, got 58
version.c:733: Test failed: Offset 119: Expected 58, got 2c
version.c:733: Test failed: Offset 121: Expected 2b, got 31
version.c:733: Test failed: Offset 122: Expected 20, got 39
version.c:733: Test failed: Offset 123: Expected 50, got 39
version.c:733: Test failed: Offset 124: Expected 49, got 36
version.c:733: Test failed: Offset 125: Expected 49, got 29
version.c:733: Test failed: Offset 126: Expected 58, got 00
version.c:733: Test failed: Offset 127: Expected 2c, got 70
version.c:733: Test failed: Offset 128: Expected 20, got 63
version.c:733: Test failed: Offset 129: Expected 31, got 2d
version.c:733: Test failed: Offset 130: Expected 39, got 69
version.c:733: Test failed: Offset 131: Expected 39, got 34
version.c:733: Test failed: Offset 132: Expected 36, got 34
version.c:733: Test failed: Offset 133: Expected 29, got 30
version.c:733: Test failed: Offset 134: Expected 00, got 66
version.c:733: Test failed: Offset 135: Expected 70, got 78
version.c:733: Test failed: Offset 136: Expected 63, got 2d
version.c:733: Test failed: Offset 137: Expected 2d, got 32
version.c:733: Test failed: Offset 138: Expected 69, got 2e
version.c:733: Test failed: Offset 139: Expected 34, got 31
version.c:733: Test failed: Offset 140: Expected 34, got 00
version.c:733: Test failed: Offset 141: Expected 30, got 00
version.c:733: Test failed: Offset 142: Expected 66, got 03
version.c:733: Test failed: Offset 143: Expected 78, got 15
version.c:733: Test failed: Offset 144: Expected 2d, got 00
version.c:733: Test failed: Offset 145: Expected 32, got 03
version.c:733: Test failed: Offset 146: Expected 2e, got 01
version.c:733: Test failed: Offset 147: Expected 31, got 01
version.c:733: Test failed: Offset 148: Expected 00, got 02
version.c:733: Test failed: Offset 150: Expected 03, got 00
version.c:733: Test failed: Offset 151: Expected 15, got 03
version.c:733: Test failed: Offset 152: Expected 00, got 03
version.c:733: Test failed: Offset 154: Expected 01, got 02
version.c:733: Test failed: Offset 155: Expected 01, got 00
version.c:733: Test failed: Offset 156: Expected 02, got 00
version.c:733: Test failed: Offset 159: Expected 03, got 00
version.c:733: Test failed: Offset 160: Expected 03, got 00
version.c:733: Test failed: Offset 161: Expected 03, got 00
version.c:733: Test failed: Offset 162: Expected 02, got 00
version.c:733: Test failed: Offset 163: Expected 00, got 51
version.c:733: Test failed: Offset 164: Expected 00, got 45
version.c:733: Test failed: Offset 165: Expected 00, got 4d
version.c:733: Test failed: Offset 166: Expected 00, got 55
version.c:733: Test failed: Offset 168: Expected 00, got 70
version.c:733: Test failed: Offset 169: Expected 00, got 63
version.c:733: Test failed: Offset 170: Expected 00, got 2d
version.c:733: Test failed: Offset 171: Expected 51, got 69
version.c:733: Test failed: Offset 172: Expected 45, got 34
version.c:733: Test failed: Offset 173: Expected 4d, got 34
version.c:733: Test failed: Offset 174: Expected 55, got 30
version.c:733: Test failed: Offset 175: Expected 00, got 66
version.c:733: Test failed: Offset 176: Expected 70, got 78
version.c:733: Test failed: Offset 177: Expected 63, got 2d
version.c:733: Test failed: Offset 178: Expected 2d, got 32
version.c:733: Test failed: Offset 179: Expected 69, got 2e
version.c:733: Test failed: Offset 180: Expected 34, got 31
version.c:733: Test failed: Offset 181: Expected 34, got 00
version.c:733: Test failed: Offset 182: Expected 30, got 00
version.c:733: Test failed: Offset 183: Expected 66, got 04
version.c:733: Test failed: Offset 184: Expected 78, got 2a
version.c:733: Test failed: Offset 185: Expected 2d, got 00
version.c:733: Test failed: Offset 186: Expected 32, got 04
version.c:733: Test failed: Offset 187: Expected 2e, got 01
version.c:733: Test failed: Offset 188: Expected 31, got 03
version.c:733: Test failed: Offset 189: Expected 00, got 01
version.c:733: Test failed: Offset 190: Expected 00, got 02
version.c:733: Test failed: Offset 191: Expected 04, got 61
version.c:733: Test failed: Offset 192: Expected 2a, got 0f
version.c:733: Test failed: Offset 194: Expected 04, got 00
version.c:733: Test failed: Offset 195: Expected 01, got fd
version.c:733: Test failed: Offset 196: Expected 03, got fb
version.c:733: Test failed: Offset 197: Expected 01, got 8b
version.c:733: Test failed: Offset 198: Expected 02, got 07
version.c:733: Test failed: Offset 199: Expected 61, got 03
version.c:733: Test failed: Offset 200: Expected 0f, got 00
version.c:733: Test failed: Offset 203: Expected fd, got d0
version.c:733: Test failed: Offset 204: Expected fb, got 07
version.c:733: Test failed: Offset 205: Expected 8b, got d0
version.c:733: Test failed: Offset 207: Expected 03, got 41
version.c:733: Test failed: Offset 208: Expected 00, got 01
version.c:733: Test failed: Offset 209: Expected 00, got ff
version.c:733: Test failed: Offset 210: Expected 00, got ff
version.c:733: Test failed: Offset 211: Expected d0, got ff
version.c:733: Test failed: Offset 212: Expected 07, got ff
version.c:733: Test failed: Offset 213: Expected d0, got ff
version.c:733: Test failed: Offset 214: Expected 07, got ff
version.c:733: Test failed: Offset 215: Expected 41, got 00
version.c:733: Test failed: Offset 216: Expected 01, got 00
version.c:733: Test failed: Offset 217: Expected ff, got 00
version.c:733: Test failed: Offset 218: Expected ff, got 01
version.c:733: Test failed: Offset 219: Expected ff, got 01
version.c:733: Test failed: Offset 220: Expected ff, got 01
version.c:733: Test failed: Offset 221: Expected ff, got 02
version.c:733: Test failed: Offset 222: Expected ff, got 00
version.c:733: Test failed: Offset 223: Expected 00, got 01
version.c:733: Test failed: Offset 225: Expected 00, got 43
version.c:733: Test failed: Offset 226: Expected 01, got 50
version.c:733: Test failed: Offset 227: Expected 01, got 55
version.c:733: Test failed: Offset 228: Expected 01, got 20
version.c:733: Test failed: Offset 229: Expected 02, got 30
version.c:733: Test failed: Offset 231: Expected 01, got 51
version.c:733: Test failed: Offset 232: Expected 00, got 45
version.c:733: Test failed: Offset 233: Expected 43, got 4d
version.c:733: Test failed: Offset 234: Expected 50, got 55
version.c:733: Test failed: Offset 235: Expected 55, got 00
version.c:733: Test failed: Offset 236: Expected 20, got 70
version.c:733: Test failed: Offset 237: Expected 30, got 63
version.c:733: Test failed: Offset 238: Expected 00, got 2d
version.c:733: Test failed: Offset 239: Expected 51, got 69
version.c:733: Test failed: Offset 240: Expected 45, got 34
version.c:733: Test failed: Offset 241: Expected 4d, got 34
version.c:733: Test failed: Offset 242: Expected 55, got 30
version.c:733: Test failed: Offset 243: Expected 00, got 66
version.c:733: Test failed: Offset 244: Expected 70, got 78
version.c:733: Test failed: Offset 245: Expected 63, got 2d
version.c:733: Test failed: Offset 246: Expected 2d, got 32
version.c:733: Test failed: Offset 247: Expected 69, got 2e
version.c:733: Test failed: Offset 248: Expected 34, got 31
version.c:733: Test failed: Offset 249: Expected 34, got 00
version.c:733: Test failed: Offset 250: Expected 30, got 00
version.c:733: Test failed: Offset 251: Expected 66, got 04
version.c:733: Test failed: Offset 252: Expected 78, got 2a
version.c:733: Test failed: Offset 253: Expected 2d, got 01
version.c:733: Test failed: Offset 254: Expected 32, got 04
version.c:733: Test failed: Offset 255: Expected 2e, got 01
version.c:733: Test failed: Offset 256: Expected 31, got 03
version.c:733: Test failed: Offset 257: Expected 00, got 01
version.c:733: Test failed: Offset 258: Expected 00, got 02
version.c:733: Test failed: Offset 259: Expected 04, got 61
version.c:733: Test failed: Offset 260: Expected 2a, got 0f
version.c:733: Test failed: Offset 261: Expected 01, got 00
version.c:733: Test failed: Offset 262: Expected 04, got 00
version.c:733: Test failed: Offset 263: Expected 01, got fd
version.c:733: Test failed: Offset 264: Expected 03, got fb
version.c:733: Test failed: Offset 265: Expected 01, got 8b
version.c:733: Test failed: Offset 266: Expected 02, got 07
version.c:733: Test failed: Offset 267: Expected 61, got 03
version.c:733: Test failed: Offset 268: Expected 0f, got 00
version.c:733: Test failed: Offset 271: Expected fd, got d0
version.c:733: Test failed: Offset 272: Expected fb, got 07
version.c:733: Test failed: Offset 273: Expected 8b, got d0
version.c:733: Test failed: Offset 275: Expected 03, got 41
version.c:733: Test failed: Offset 276: Expected 00, got 01
version.c:733: Test failed: Offset 277: Expected 00, got ff
version.c:733: Test failed: Offset 278: Expected 00, got ff
version.c:733: Test failed: Offset 279: Expected d0, got ff
version.c:733: Test failed: Offset 280: Expected 07, got ff
version.c:733: Test failed: Offset 281: Expected d0, got ff
version.c:733: Test failed: Offset 282: Expected 07, got ff
version.c:733: Test failed: Offset 283: Expected 41, got 00
version.c:733: Test failed: Offset 284: Expected 01, got 00
version.c:733: Test failed: Offset 285: Expected ff, got 00
version.c:733: Test failed: Offset 286: Expected ff, got 01
version.c:733: Test failed: Offset 287: Expected ff, got 01
version.c:733: Test failed: Offset 288: Expected ff, got 01
version.c:733: Test failed: Offset 289: Expected ff, got 02
version.c:733: Test failed: Offset 290: Expected ff, got 00
version.c:733: Test failed: Offset 291: Expected 00, got 01
version.c:733: Test failed: Offset 293: Expected 00, got 43
version.c:733: Test failed: Offset 294: Expected 01, got 50
version.c:733: Test failed: Offset 295: Expected 01, got 55
version.c:733: Test failed: Offset 296: Expected 01, got 20
version.c:733: Test failed: Offset 297: Expected 02, got 31
version.c:733: Test failed: Offset 299: Expected 01, got 51
version.c:733: Test failed: Offset 300: Expected 00, got 45
version.c:733: Test failed: Offset 301: Expected 43, got 4d
version.c:733: Test failed: Offset 302: Expected 50, got 55
version.c:733: Test failed: Offset 303: Expected 55, got 00
version.c:733: Test failed: Offset 304: Expected 20, got 70
version.c:733: Test failed: Offset 305: Expected 31, got 63
version.c:733: Test failed: Offset 306: Expected 00, got 2d
version.c:733: Test failed: Offset 307: Expected 51, got 69
version.c:733: Test failed: Offset 308: Expected 45, got 34
version.c:733: Test failed: Offset 309: Expected 4d, got 34
version.c:733: Test failed: Offset 310: Expected 55, got 30
version.c:733: Test failed: Offset 311: Expected 00, got 66
version.c:733: Test failed: Offset 312: Expected 70, got 78
version.c:733: Test failed: Offset 313: Expected 63, got 2d
version.c:733: Test failed: Offset 314: Expected 2d, got 32
version.c:733: Test failed: Offset 315: Expected 69, got 2e
version.c:733: Test failed: Offset 316: Expected 34, got 31
version.c:733: Test failed: Offset 317: Expected 34, got 00
version.c:733: Test failed: Offset 318: Expected 30, got 00
version.c:733: Test failed: Offset 319: Expected 66, got 10
version.c:733: Test failed: Offset 320: Expected 78, got 17
version.c:733: Test failed: Offset 321: Expected 2d, got 00
version.c:733: Test failed: Offset 322: Expected 32, got 10
version.c:733: Test failed: Offset 323: Expected 2e, got 01
version.c:733: Test failed: Offset 324: Expected 31, got 03
version.c:733: Test failed: Offset 325: Expected 00, got 06
version.c:733: Test failed: Offset 327: Expected 10, got 00
version.c:733: Test failed: Offset 328: Expected 17, got 10
version.c:733: Test failed: Offset 330: Expected 10, got fe
version.c:733: Test failed: Offset 331: Expected 01, got ff
version.c:733: Test failed: Offset 332: Expected 03, got 01
version.c:733: Test failed: Offset 333: Expected 06, got 00
version.c:733: Test failed: Offset 336: Expected 10, got 00
version.c:733: Test failed: Offset 338: Expected fe, got 00
version.c:733: Test failed: Offset 339: Expected ff, got 00
version.c:733: Test failed: Offset 340: Expected 01, got 00
version.c:733: Test failed: Offset 344: Expected 00, got 11
version.c:733: Test failed: Offset 345: Expected 00, got 28
version.c:733: Test failed: Offset 347: Expected 00, got 11
version.c:733: Test failed: Offset 349: Expected 00, got 10
version.c:733: Test failed: Offset 350: Expected 00, got fe
version.c:733: Test failed: Offset 351: Expected 00, got ff
version.c:733: Test failed: Offset 352: Expected 11, got ff
version.c:733: Test failed: Offset 353: Expected 28, got ff
version.c:733: Test failed: Offset 354: Expected 00, got ff
version.c:733: Test failed: Offset 355: Expected 11, got ff
version.c:733: Test failed: Offset 357: Expected 10, got 04
version.c:733: Test failed: Offset 358: Expected fe, got 09
version.c:733: Test failed: Offset 359: Expected ff, got 00
version.c:733: Test failed: Offset 360: Expected ff, got 01
version.c:733: Test failed: Offset 361: Expected ff, got 00
version.c:733: Test failed: Offset 362: Expected ff, got 07
version.c:733: Test failed: Offset 363: Expected ff, got 02
version.c:733: Test failed: Offset 365: Expected 04, got 00
version.c:733: Test failed: Offset 366: Expected 09, got 00
version.c:733: Test failed: Offset 367: Expected 00, got 02
version.c:733: Test failed: Offset 368: Expected 01, got 00
version.c:733: Test failed: Offset 370: Expected 07, got 00
version.c:733: Test failed: Offset 371: Expected 02, got 00
version.c:733: Test failed: Offset 375: Expected 02, got 00
version.c:733: Test failed: Offset 384: Expected 00, got 44
version.c:733: Test failed: Offset 385: Expected 00, got 49
version.c:733: Test failed: Offset 386: Expected 00, got 4d
version.c:733: Test failed: Offset 387: Expected 00, got 4d
version.c:733: Test failed: Offset 388: Expected 00, got 20
version.c:733: Test failed: Offset 389: Expected 00, got 30
version.c:733: Test failed: Offset 391: Expected 00, got 51
version.c:733: Test failed: Offset 392: Expected 44, got 45
version.c:733: Test failed: Offset 393: Expected 49, got 4d
version.c:733: Test failed: Offset 394: Expected 4d, got 55
version.c:733: Test failed: Offset 395: Expected 4d, got 00
version.c:733: Test failed: Offset 396: Expected 20, got 00
version.c:733: Test failed: Offset 397: Expected 30, got 13
version.c:733: Test failed: Offset 398: Expected 00, got 1f
version.c:733: Test failed: Offset 399: Expected 51, got 00
version.c:733: Test failed: Offset 400: Expected 45, got 13
version.c:733: Test failed: Offset 401: Expected 4d, got 00
version.c:733: Test failed: Offset 402: Expected 55, got 00
version.c:733: Test failed: Offset 405: Expected 13, got ff
version.c:733: Test failed: Offset 406: Expected 1f, got ff
version.c:733: Test failed: Offset 407: Expected 00, got 0f
version.c:733: Test failed: Offset 408: Expected 13, got 00
version.c:733: Test failed: Offset 410: Expected 00, got 10
version.c:733: Test failed: Offset 411: Expected 00, got 01
version.c:733: Test failed: Offset 413: Expected ff, got 00
version.c:733: Test failed: Offset 414: Expected ff, got 00
version.c:733: Test failed: Offset 415: Expected 0f, got 00
version.c:733: Test failed: Offset 418: Expected 10, got 00
version.c:733: Test failed: Offset 419: Expected 01, got 00
version.c:733: Test failed: Offset 430: Expected 00, got 20
version.c:733: Test failed: Offset 431: Expected 00, got 0b
version.c:733: Test failed: Offset 433: Expected 00, got 20
version.c:733: Test failed: Offset 438: Expected 20, got 00
version.c:733: Test failed: Offset 439: Expected 0b, got 00
version.c:733: Test failed: Offset 441: Expected 20, got 00
version.c:733: Test failed: Offset 443: Expected 00, got 7f
version.c:733: Test failed: Offset 444: Expected 00, got 04
version.c:733: Test failed: Offset 446: Expected 00, got 7f
June 15, 2018
Re: [PATCH v5 2/8] ntdll/tests: Add SystemFirmwareTableInformation tests
by Marvin
Hi,
While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
https://testbot.winehq.org/JobDetails.pl?Key=39153
Your paranoid android.
=== wxppro (32 bit info) ===
info.c:844: Test failed: Expected STATUS_INFO_LENGTH_MISMATCH, got c0000003
info.c:846: Test failed: Expected length 16, got 0
info.c:850: Test failed: Expected STATUS_NOT_IMPLEMENTED, got c0000003
info.c:858: Test failed: Expected STATUS_BUFFER_TOO_SMALL, got c0000003
info.c:860: Test failed: Expected length >= 16, got 0
info.c:867: Test failed: Expected STATUS_SUCCESS, got c0000003
=== w2003std (32 bit info) ===
info.c:846: Test failed: Expected length 16, got 0
info.c:850: Test failed: Expected STATUS_NOT_IMPLEMENTED, got c0000004
info.c:858: Test failed: Expected STATUS_BUFFER_TOO_SMALL, got c0000004
info.c:860: Test failed: Expected length >= 16, got 0
info.c:867: Test failed: Expected STATUS_SUCCESS, got c0000004
=== wvistau64 (32 bit info) ===
info.c:1836: Test failed: Expected STATUS_SUCCESS, got c0000022
0b9c:info: unhandled exception c0000005 at 003D0000
=== wvistau64_zh_CN (32 bit info) ===
info.c:1836: Test failed: Expected STATUS_SUCCESS, got c0000022
0bd0:info: unhandled exception c0000005 at 00360000
=== wvistau64_fr (32 bit info) ===
info.c:1836: Test failed: Expected STATUS_SUCCESS, got c0000022
072c:info: unhandled exception c0000005 at 003E0000
=== wvistau64_he (32 bit info) ===
info.c:1836: Test failed: Expected STATUS_SUCCESS, got c0000022
0be0:info: unhandled exception c0000005 at 003D0000
=== w2008s64 (32 bit info) ===
info.c:1836: Test failed: Expected STATUS_SUCCESS, got c0000022
0874:info: unhandled exception c0000005 at 002C0000
=== w7u (32 bit info) ===
info.c:1836: Test failed: Expected STATUS_SUCCESS, got c0000022
=== w7pro64 (32 bit info) ===
info.c:1836: Test failed: Expected STATUS_SUCCESS, got c0000022
0bf8:info: unhandled exception c0000005 at 003C0000
=== w8 (32 bit info) ===
info.c:1836: Test failed: Expected STATUS_SUCCESS, got c0000022
0fdc:info: unhandled exception c0000005 at 003E0000
=== w864 (32 bit info) ===
info.c:1836: Test failed: Expected STATUS_SUCCESS, got c0000022
0d10:info: unhandled exception c0000005 at 00360000
=== w1064 (32 bit info) ===
info.c:1836: Test failed: Expected STATUS_SUCCESS, got c0000022
064c:info: unhandled exception c0000005 at 002D0000
June 15, 2018