On Wed, Mar 22, 2017 at 10:06:05PM +0000, Alistair Leslie-Hughes wrote:
diff --git a/dlls/odbccp32/tests/misc.c b/dlls/odbccp32/tests/misc.c index 4fdf584..e977e91 100644 --- a/dlls/odbccp32/tests/misc.c +++ b/dlls/odbccp32/tests/misc.c @@ -473,6 +473,67 @@ void test_SQLInstallDriverEx(void) ok(cnt == 0, "SQLRemoveDriver failed %d\n", cnt); }
+void test_SQLInstallTranslatorEx(void) +{
- char path[MAX_PATH];
- char syspath[MAX_PATH];
- WORD size = 0;
- BOOL ret, sql_ret;
- DWORD cnt, error_code = 0;
- HKEY hkey;
- LONG res;
- GetSystemDirectoryA(syspath, MAX_PATH);
- ret = SQLInstallTranslatorEx("WINE ODBC Translator\0Translator=sample.dll\0Setup=sample.dll\0\0", NULL, path, MAX_PATH, &size, ODBC_INSTALL_COMPLETE, NULL);
The string will be terminated in three '\0's, I suspect you only need two. Also, 160 chars is a little long for a line - There are other cases in this series where line-length is excessive.
- sql_ret = SQLInstallerErrorW(1, &error_code, NULL, 0, NULL);
- if (sql_ret && error_code == ODBC_ERROR_WRITING_SYSINFO_FAILED)
- {
win_skip("not enough privileges\n");
return;
- }
- ok(sql_ret && error_code == SQL_SUCCESS, "SQLInstallDriverEx failed %d, %u\n", sql_ret, error_code);
- ok(!strcmp(path, syspath), "invalid path %s\n", path);
You should test size here. Does it include the '\0' or not, msdn is vague.
Huw.