Save the select test info on close.

The browse dialog now lists all winetest dlls and allows selection of either all tests in all dlls, all tests within a dll, or the option to choose individual tests. (rewuires a modified winetest framework)

svn path=/trunk/; revision=34034
This commit is contained in:
Ged Murphy 2008-06-20 11:20:26 +00:00
parent 938f407a80
commit 0537163f8d
4 changed files with 49 additions and 20 deletions

View file

@ -88,8 +88,6 @@ GetListOfTestDlls(PMAIN_WND_INFO pInfo)
{ {
if (!(findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) if (!(findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{ {
//MessageBoxW(NULL, findFileData.cFileName, NULL, 0);
/* set the path */ /* set the path */
wcscpy(ptr, szDllPath); wcscpy(ptr, szDllPath);
@ -124,11 +122,9 @@ FreeItemTag(PMAIN_WND_INFO pInfo,
HTREEITEM hItem) HTREEITEM hItem)
{ {
TV_ITEM tvItem; TV_ITEM tvItem;
WCHAR buf[256];
tvItem.hItem = hItem; tvItem.hItem = hItem;
tvItem.mask = TVIF_PARAM | TVIF_TEXT; tvItem.mask = TVIF_PARAM;
tvItem.pszText = buf;
(void)TreeView_GetItem(pInfo->hBrowseTV, &tvItem); (void)TreeView_GetItem(pInfo->hBrowseTV, &tvItem);
@ -217,8 +213,10 @@ BuildTestItemData(LPWSTR lpDll,
sizeof(TEST_ITEM)); sizeof(TEST_ITEM));
if (pItem) if (pItem)
{ {
wcsncpy(pItem->szSelectedDll, lpDll, MAX_PATH); if (lpDll)
wcsncpy(pItem->szRunString, lpRun, MAX_RUN_CMD); wcsncpy(pItem->szSelectedDll, lpDll, MAX_PATH);
if (lpRun)
wcsncpy(pItem->szRunString, lpRun, MAX_RUN_CMD);
} }
return pItem; return pItem;
@ -229,6 +227,7 @@ PopulateTreeView(PMAIN_WND_INFO pInfo)
{ {
HTREEITEM hRoot; HTREEITEM hRoot;
HIMAGELIST hImgList; HIMAGELIST hImgList;
PTEST_ITEM pTestItem;
DLLNAME GetTestName; DLLNAME GetTestName;
MODULES GetModulesInTest; MODULES GetModulesInTest;
HMODULE hDll; HMODULE hDll;
@ -250,11 +249,13 @@ PopulateTreeView(PMAIN_WND_INFO pInfo)
hImgList, hImgList,
TVSIL_NORMAL); TVSIL_NORMAL);
pTestItem = BuildTestItemData(L"", L"Full");
/* insert the root item into the tree */ /* insert the root item into the tree */
hRoot = InsertIntoTreeView(pInfo->hBrowseTV, hRoot = InsertIntoTreeView(pInfo->hBrowseTV,
NULL, NULL,
L"Full", L"Full",
0, pTestItem,
IL_MAIN, IL_MAIN,
HAS_CHILD); HAS_CHILD);
@ -272,7 +273,6 @@ PopulateTreeView(PMAIN_WND_INFO pInfo)
LPSTR lpModules, ptr; LPSTR lpModules, ptr;
LPWSTR lpModW; LPWSTR lpModW;
INT numMods; INT numMods;
PTEST_ITEM pTestItem;
lpTestName = GetTestName(); lpTestName = GetTestName();
@ -383,14 +383,43 @@ BrowseDlgProc(HWND hDlg,
case WM_COMMAND: case WM_COMMAND:
{ {
if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL)) switch (LOWORD(wParam))
{ {
HeapFree(GetProcessHeap(), 0, pInfo->lpDllList); case IDOK:
pInfo->lpDllList = NULL; {
TV_ITEM tvItem;
EndDialog(hDlg, tvItem.hItem = TreeView_GetSelection(pInfo->hBrowseTV);
LOWORD(wParam)); tvItem.mask = TVIF_PARAM;
return TRUE;
if (TreeView_GetItem(pInfo->hBrowseTV, &tvItem))
{
PTEST_ITEM pItem;
pItem = (PTEST_ITEM)tvItem.lParam;
if (pItem)
CopyMemory(&pInfo->SelectedTest, pItem, sizeof(TEST_ITEM));
EndDialog(hDlg,
LOWORD(wParam));
}
else
{
DisplayMessage(L"Please select an item");
}
break;
}
case IDCANCEL:
{
HeapFree(GetProcessHeap(), 0, pInfo->lpDllList);
pInfo->lpDllList = NULL;
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
} }
break; break;

View file

@ -29,7 +29,7 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Test hierarchy" CAPTION "Test hierarchy"
FONT 8, "MS Shell Dlg", 0, 0, 0x1 FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN BEGIN
PUSHBUTTON "Select", IDC_SELECT, 202, 7, 50, 14 PUSHBUTTON "Select", IDOK, 202, 7, 50, 14
PUSHBUTTON "Close", IDCANCEL, 202, 34, 50, 14
CONTROL "", IDC_TREEVIEW, "SysTreeView32", WS_BORDER | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT, 7, 7, 189, 236 CONTROL "", IDC_TREEVIEW, "SysTreeView32", WS_BORDER | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT, 7, 7, 189, 236
PUSHBUTTON "Close", IDOK, 202, 34, 50, 14
END END

View file

@ -208,7 +208,7 @@ VOID DisplayError(INT err)
LocalFree(lpMsgBuf); LocalFree(lpMsgBuf);
} }
VOID DisplayString(LPWSTR lpMsg) VOID DisplayMessage(LPWSTR lpMsg)
{ {
MessageBoxW(NULL, lpMsg, L"Note!", MB_ICONEXCLAMATION|MB_OK); MessageBoxW(NULL, lpMsg, L"Note!", MB_ICONEXCLAMATION|MB_OK);
} }

View file

@ -32,7 +32,7 @@ typedef struct _MAIN_WND_INFO
LPWSTR lpDllList; LPWSTR lpDllList;
INT numDlls; INT numDlls;
PTEST_ITEM SelectedTest; TEST_ITEM SelectedTest;
} MAIN_WND_INFO, *PMAIN_WND_INFO; } MAIN_WND_INFO, *PMAIN_WND_INFO;
@ -46,7 +46,7 @@ BOOL CALLBACK BrowseDlgProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lPara
/* misc.c */ /* misc.c */
HIMAGELIST InitImageList(UINT StartResource, UINT EndResource, UINT Width, UINT Height); HIMAGELIST InitImageList(UINT StartResource, UINT EndResource, UINT Width, UINT Height);
VOID DisplayString(LPWSTR lpMsg); VOID DisplayMessage(LPWSTR lpMsg);
VOID DisplayError(INT err); VOID DisplayError(INT err);
DWORD AnsiToUnicode(LPCSTR lpSrcStr, LPWSTR *lpDstStr); DWORD AnsiToUnicode(LPCSTR lpSrcStr, LPWSTR *lpDstStr);