Module: wine Branch: master Commit: d0ce7ec59902abab0d4c88407b0e6dda92f6dfc3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d0ce7ec59902abab0d4c88407b...
Author: Paul Vriens paul.vriens.wine@gmail.com Date: Thu Aug 23 18:28:23 2007 +0200
winetest: Put dll version information in the report.
---
programs/winetest/Makefile.in | 2 +- programs/winetest/main.c | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletions(-)
diff --git a/programs/winetest/Makefile.in b/programs/winetest/Makefile.in index 01111f4..30d29ff 100644 --- a/programs/winetest/Makefile.in +++ b/programs/winetest/Makefile.in @@ -4,7 +4,7 @@ SRCDIR = @srcdir@ VPATH = @srcdir@ MODULE = winetest.exe APPMODE = -mconsole -IMPORTS = comctl32 user32 gdi32 wsock32 kernel32 +IMPORTS = comctl32 version user32 gdi32 wsock32 kernel32
C_SRCS = \ gui.c \ diff --git a/programs/winetest/main.c b/programs/winetest/main.c index 5d5462b..54574b1 100644 --- a/programs/winetest/main.c +++ b/programs/winetest/main.c @@ -62,6 +62,39 @@ static struct rev_info *rev_infos = NULL; static const char whitespace[] = " \t\r\n"; static const char testexe[] = "_test.exe";
+static char * get_file_version(char * file_name) +{ + static char version[32]; + DWORD size; + DWORD handle; + + size = GetFileVersionInfoSizeA(file_name, &handle); + if (size) { + char * data = xmalloc(size); + if (data) { + if (GetFileVersionInfoA(file_name, handle, size, data)) { + static char backslash[] = "\"; + VS_FIXEDFILEINFO *pFixedVersionInfo; + UINT len; + if (VerQueryValueA(data, backslash, (LPVOID *)&pFixedVersionInfo, &len)) { + sprintf(version, "%d.%d.%d.%d", + pFixedVersionInfo->dwFileVersionMS >> 16, + pFixedVersionInfo->dwFileVersionMS & 0xffff, + pFixedVersionInfo->dwFileVersionLS >> 16, + pFixedVersionInfo->dwFileVersionLS & 0xffff); + } else + sprintf(version, "version not available"); + } else + sprintf(version, "unknown"); + free(data); + } else + sprintf(version, "failed"); + } else + sprintf(version, "version not available"); + + return version; +} + static int running_under_wine (void) { HMODULE module = GetModuleHandleA("ntdll.dll"); @@ -448,6 +481,8 @@ extract_test_proc (HMODULE hModule, LPCTSTR lpszType, } FreeLibrary(dll);
+ xprintf (" %s=%s\n", dllname, get_file_version(dllname)); + get_subtests( tempdir, &wine_tests[nr_of_files], lpszName ); nr_of_tests += wine_tests[nr_of_files].subtest_count; nr_of_files++;