1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-11 16:58:40 +03:00

testprogs: add tests for GetForm.

Guenther
This commit is contained in:
Günther Deschner 2010-01-15 16:25:20 +01:00
parent ca646a82f8
commit ecd35d7ea6

View File

@ -167,6 +167,54 @@ static BOOL test_EnumDrivers(struct torture_context *tctx,
/****************************************************************************
****************************************************************************/
static BOOL test_GetForm(struct torture_context *tctx,
LPSTR servername,
HANDLE handle,
LPSTR formname)
{
DWORD levels[] = { 1, 2 };
DWORD success[] = { 1, 0 };
DWORD i;
LPBYTE buffer = NULL;
for (i=0; i < ARRAY_SIZE(levels); i++) {
DWORD needed = 0;
DWORD err = 0;
char tmp[1024];
torture_comment(tctx, "Testing GetForm(%s) level %d", formname, levels[i]);
GetForm(handle, formname, levels[i], NULL, 0, &needed);
err = GetLastError();
if (err == ERROR_INSUFFICIENT_BUFFER) {
err = 0;
buffer = malloc(needed);
torture_assert(tctx, buffer, "malloc failed");
if (!GetForm(handle, formname, levels[i], buffer, needed, &needed)) {
err = GetLastError();
}
}
if (err) {
sprintf(tmp, "GetForm failed level %d on [%s] (buffer size = %d), error: %s\n",
levels[i], servername, needed, errstr(err));
if (success[i]) {
torture_fail(tctx, tmp);
} else {
torture_warning(tctx, tmp);
}
}
free(buffer);
buffer = NULL;
}
return TRUE;
}
/****************************************************************************
****************************************************************************/
static BOOL test_EnumForms(struct torture_context *tctx,
LPSTR servername,
HANDLE handle)