The following series beefs up the tests about dbghelp DLL and fixes a couple of bugs in dbghelp.
The idea is to have a set of files to get debug info from (debuggee*.*).
This is supported in two different ways: A) to be compiled directly inside dbghelp_test: the default tools and options used in Wine will be covered (now: cross compile + dwarf version 2 debug format) B) but also the ability to run the same tests on an external process + image (made mainly out of the debuggee*.* only files). The idea is of course to use different compilers, debug format, options, 32/64bit targets... Those alternate images **ARE NOT** part (for now) of winetest.
Unfortunately, with Winetest Bot, the A) won't work under windows: debug format of dbghelp_test.exe is dwarf2, while native dbghelp doesn't support it. So the tests are skipped. Anyway, most of the Windows setup:s don't have native dbghelp.dll installed <g>, so that shouldn't change much.
I locally test every patch with: - A) on 32bit Wine (mingw + dwarf2) - A) on 64bit Wine (mingw + dwarf2) - A) on Windows10 as PE64 (msc + pdb) - B) image: mingw + dwarf2 + target=PE64bit + option -O1 on 64bit Wine - B) image: mingw + dwarf2 + target=PE32bit + option -O1 on 32bit Wine - B) image: ms compiler + pdb + target=PE64bit + option /O1 on 64 bit Wine
This serie will be continued with: 1) more tests (and more fixes) (around 20+ patches to come) 2) support of dwarf3 and 4 (around 70+ patches to come)
I also plan to add more local tests (dwarf3 and dwarf4; WoW; PE32 + pdb on Wine, cross 32/64 bit between tester and debuggee, other options O2).
Changes introduced in v2: - make sure that dbghelp_test.exe embedded as resource inside winetest.exe isn't stripped, so that on can access its debug information. tools/makedep.c is fixed accordingly. This should fix all the TestBot failures. - the existing tests (before this series) for dbghelp, could somehow work when no debug information is available. Make sure we don't change this behavior (v1 was skipping those tests when no debug info is avail)
A+
---
Eric Pouech (10): tools/makedep: added support for not stripping some test modules dbghelp/tests: Added dedicated structure to control the debuggee dbghelp/tests: Added ability to launch an external process instead of debugging self dbghelp/tests: Now properly getting base of main module inside debuggee structure dbghelp/tests: Added two new compilation units (debuggee1.c and debuggee2.c) dbghelp/tests: now building inside each debuggee a manifest dbghelp/tests: StackWalk64 testing now support external process dbghelp/tests: Added tests about getting symbol information dbghelp: returns name of compiland in SymGetTypeInfo dbghelp: handling of complex location in dwarf
dlls/dbghelp/dwarf.c | 1 - dlls/dbghelp/tests/Makefile.in | 4 +- dlls/dbghelp/tests/dbghelp.c | 547 +++++++++++++++++++++++++++++++-- dlls/dbghelp/tests/debuggee.h | 30 ++ dlls/dbghelp/tests/debuggee1.c | 115 +++++++ dlls/dbghelp/tests/debuggee2.c | 7 + dlls/dbghelp/type.c | 3 +- tools/makedep.c | 11 +- 8 files changed, 673 insertions(+), 45 deletions(-) create mode 100644 dlls/dbghelp/tests/debuggee.h create mode 100644 dlls/dbghelp/tests/debuggee1.c create mode 100644 dlls/dbghelp/tests/debuggee2.c