From bee78503449c4175e4e2731dc70cecbfd3d6ea15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hentschel?= Date: Tue, 22 Jun 2010 19:36:08 +0200 Subject: [PATCH] winetest: Implement aborting. --- programs/winetest/gui.c | 3 ++- programs/winetest/main.c | 11 +++++++++++ programs/winetest/winetest.h | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/programs/winetest/gui.c b/programs/winetest/gui.c index 45b3232cc31..a9f346570d3 100644 --- a/programs/winetest/gui.c +++ b/programs/winetest/gui.c @@ -456,7 +456,8 @@ DlgProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) MAKEINTRESOURCE (IDD_ABOUT), hwnd, AboutProc); return TRUE; case IDABORT: - report (R_WARNING, "Not implemented"); + report (R_STATUS, "Aborting, please wait..."); + aborting = TRUE; return TRUE; } } diff --git a/programs/winetest/main.c b/programs/winetest/main.c index 01217d2d056..f5bf8d48115 100644 --- a/programs/winetest/main.c +++ b/programs/winetest/main.c @@ -49,6 +49,7 @@ struct wine_test char *tag = NULL; char *email = NULL; +BOOL aborting = FALSE; static struct wine_test *wine_tests; static int nr_of_files, nr_of_tests; static int nr_native_dlls; @@ -677,6 +678,7 @@ extract_test_proc (HMODULE hModule, LPCTSTR lpszType, HMODULE dll; DWORD err; + if (aborting) return TRUE; if (test_filtered_out( lpszName, NULL )) return TRUE; /* Check if the main dll is present on this system */ @@ -840,6 +842,8 @@ run_tests (char *logname, char *outdir) FreeLibrary(hmscoree); + if (aborting) return logname; + xprintf ("Test output:\n" ); report (R_DELTA, 0, "Extracting: Done"); @@ -853,12 +857,15 @@ run_tests (char *logname, char *outdir) struct wine_test *test = wine_tests + i; int j; + if (aborting) break; + if (test->maindllpath) { /* We need to add the path (to the main dll) to PATH */ append_path(test->maindllpath); } for (j = 0; j < test->subtest_count; j++) { + if (aborting) break; report (R_STEP, "Running: %s:%s", test->name, test->subtests[j]); run_test (test, test->subtests[j], logfile, tempdir); @@ -1105,6 +1112,10 @@ int main( int argc, char *argv[] ) if (!logname) { logname = run_tests (NULL, outdir); + if (aborting) { + DeleteFileA(logname); + exit (0); + } if (build_id[0] && !nb_filters && !nr_native_dlls && report (R_ASK, MB_YESNO, "Do you want to submit the test results?") == IDYES) if (!send_file (logname) && !DeleteFileA(logname)) diff --git a/programs/winetest/winetest.h b/programs/winetest/winetest.h index a0d2fbd93e9..2b9046caebc 100644 --- a/programs/winetest/winetest.h +++ b/programs/winetest/winetest.h @@ -69,6 +69,7 @@ enum report_type { #define MAXTAGLEN 20 extern char *tag; extern char *email; +extern BOOL aborting; int guiAskTag (void); int guiAskEmail (void); int report (enum report_type t, ...);