Windows testsuite failures

Hannes Domani
2020-05-25T18:57:35Z

I went through all testsuite failures in gdb.base, and fixed everything
I could figure out.

So this series is about the bugs in gdb itself.

After this, there are still quite a few unexpected failures, and even
some unexpected successes.

Like in these, gdb returns for virtual inheritance classes "vtable" where
"VTT" is expected:
FAIL: gdb.base/max-depth-c++.exp: exp='v2': depth=1: p v2
FAIL: gdb.base/max-depth-c++.exp: exp='v2': depth=2: p v2
FAIL: gdb.base/max-depth-c++.exp: exp='v2': depth=unlimited: p v2
FAIL: gdb.base/max-depth-c++.exp: exp='v3': depth=1: p v3

Or this one, where gdb is started with --write, and then crashes when
actually trying to write the executable at the end:
FAIL: gdb.base/write_mem.exp: x /xh main

I don't know if these are bugs, so I'm not sure what to do with them (the
crash part is obviously bad, but should --write even be possible?).

I can provide any logs if necessary.

=== gdb Summary ===

# of expected passes 31937
# of unexpected failures 61
# of unexpected successes 4
# of expected failures 24
# of known failures 27
# of unresolved testcases 2
# of untested testcases 81
# of unsupported tests 81
# of duplicate test names 68

Failures:
FAIL: gdb.base/step-over-no-symbols.exp: displaced=off: advanced
FAIL: gdb.base/charset.exp: parse character literal in UTF-32
FAIL: gdb.base/charset.exp: check value of parsed character literal in UTF-32
FAIL: gdb.base/charset.exp: check value of '\a' in UTF-32
FAIL: gdb.base/charset.exp: check value of '\b' in UTF-32
FAIL: gdb.base/charset.exp: check value of '\f' in UTF-32
FAIL: gdb.base/charset.exp: check value of '\n' in UTF-32
FAIL: gdb.base/charset.exp: check value of '\r' in UTF-32
FAIL: gdb.base/charset.exp: check value of '\t' in UTF-32
FAIL: gdb.base/charset.exp: check value of '\v' in UTF-32
FAIL: gdb.base/charset.exp: print escape that doesn't exist in UTF-32
FAIL: gdb.base/charset.exp: check value of escape that doesn't exist in UTF-32
FAIL: gdb.base/charset.exp: basic wide character
FAIL: gdb.base/charset.exp: set_prefix=L: display String String32 with x/ws
FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: expected file is there
FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: check index-cache stats
FAIL: gdb.base/index-cache.exp: test_cache_enabled_hit: no files were created
FAIL: gdb.base/index-cache.exp: test_cache_enabled_hit: check index-cache stats
FAIL: gdb.base/exprs.exp: truncate (void*) 0x00000000ffffffff + 1
FAIL: gdb.base/exprs.exp: truncate (void*) 0xffffffff00000000 - 1
FAIL: gdb.base/ui-redirect.exp: redirect: set logging active on (timeout)
FAIL: gdb.base/ui-redirect.exp: redirect: save breakpoints cmds.txt (timeout)
FAIL: gdb.base/ui-redirect.exp: redirect: userdefined (timeout)
FAIL: gdb.base/float128.exp: print large128 (GDB may be missing MPFR support!)
FAIL: gdb.base/dmsym.exp: info line test_minsym
FAIL: gdb.base/long_long.exp: p/a *(long *)l
FAIL: gdb.base/wchar.exp: print single
FAIL: gdb.base/wchar.exp: print difficile
FAIL: gdb.base/wchar.exp: print difficile[2]
FAIL: gdb.base/wchar.exp: print repeat
FAIL: gdb.base/wchar.exp: print repeat_p
FAIL: gdb.base/wchar.exp: print repeat (print null on)
FAIL: gdb.base/wchar.exp: print repeat (print elements 3)
FAIL: gdb.base/wchar.exp: print repeat_p (print elements 3)
FAIL: gdb.base/longjmp.exp: next over call_longjmp (2)
FAIL: gdb.base/trace-commands.exp: nested trace-commands test (pattern 2)
FAIL: gdb.base/trace-commands.exp: depth resets on error part 1 (pattern 2)
FAIL: gdb.base/sepdebug.exp: CRC mismatch is reported
FAIL: gdb.base/max-depth-c++.exp: exp='v2': depth=1: p v2
FAIL: gdb.base/max-depth-c++.exp: exp='v2': depth=2: p v2
FAIL: gdb.base/max-depth-c++.exp: exp='v2': depth=unlimited: p v2
FAIL: gdb.base/max-depth-c++.exp: exp='v3': depth=1: p v3
FAIL: gdb.base/max-depth-c++.exp: exp='v3': depth=2: p v3
FAIL: gdb.base/max-depth-c++.exp: exp='v3': depth=unlimited: p v3
FAIL: gdb.base/max-depth-c++.exp: exp='v4': depth=2: p v4
FAIL: gdb.base/max-depth-c++.exp: exp='v4': depth=3: p v4
FAIL: gdb.base/max-depth-c++.exp: exp='v4': depth=unlimited: p v4
FAIL: gdb.base/max-depth-c++.exp: exp='v5': depth=2: p v5
FAIL: gdb.base/max-depth-c++.exp: exp='v5': depth=3: p v5
FAIL: gdb.base/max-depth-c++.exp: exp='v5': depth=unlimited: p v5
FAIL: gdb.base/max-depth-c++.exp: exp='v6': depth=2: p v6
FAIL: gdb.base/max-depth-c++.exp: exp='v6': depth=3: p v6
FAIL: gdb.base/max-depth-c++.exp: exp='v6': depth=unlimited: p v6
FAIL: gdb.base/max-depth-c++.exp: exp='v7': depth=3: p v7
FAIL: gdb.base/max-depth-c++.exp: exp='v7': depth=4: p v7
FAIL: gdb.base/max-depth-c++.exp: exp='v7': depth=unlimited: p v7
FAIL: gdb.base/write_mem.exp: x /xh main
FAIL: gdb.base/step-indirect-call-thunk.exp: stepi into call thunk
FAIL: gdb.base/step-indirect-call-thunk.exp: stepi into return thunk
FAIL: gdb.base/step-indirect-call-thunk.exp: stepi out of return thunk back into thrice
FAIL: gdb.base/with.exp: user-defined: define usercmd (timeout)

Unexpected passes:
XPASS: gdb.base/sepdebug.exp: build-id: breakpoint function, optimized file
XPASS: gdb.base/sepdebug.exp: build-id: breakpoint small function, optimized file
XPASS: gdb.base/sepdebug.exp: build-id: run until function breakpoint, optimized file
XPASS: gdb.base/sepdebug.exp: build-id: run until breakpoint set at small function, optimized file (line bp_location14)

PS: It takes 40 minutes to run all tests of gdb.base, how does this
compare to Linux?

Hannes