[gdb/testsuite] Add test-case gdb.dlang/dlang-start-2.exp
authorTom de Vries <tdevries@suse.de>
Mon, 27 Mar 2023 11:47:51 +0000 (13:47 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 27 Mar 2023 11:47:51 +0000 (13:47 +0200)
commit2b3f4c0616abffb2a1a29543cb649483b1722db4
tree2935f1e76748edc1e17b54b453b950e281b77149
parent943527750e9ca12837c6f63cd28f50f41bd682be
[gdb/testsuite] Add test-case gdb.dlang/dlang-start-2.exp

For test-case gdb.dlang/dlang-start.exp, I run into:
...
UNSUPPORTED: gdb.dlang/dlang-start.exp: require failed: can_compile d
...

My distro has no support for gdc, but I'd like to have the test-case
running and passing, so let's rewrite the test-case using dwarf assembly
and add it alongside (rather than replacing it, because it's good to use
actual compiler output if we have it available).

My distro does have a package providing dmd, so let's mimic that debug info in
the dwarf assembly.  This gives us:
...
(gdb) start ^M
Temporary breakpoint 1 at 0x4004ab^M
Starting program: dlang-start-2 ^M
^M
Temporary breakpoint 1, 0x00000000004004ab in _Dmain ()^M
...

The "_Dmain ()" should probably be "D main", I've filed PR30276 about that.

Also add a "show language" to check that we automatically set the language
correctly to D.

Note that the dwarf assembly also describes main, otherwise the test-case
doesn't function as regression test for commit 47fe57c9281 ("Fix "start" for
D, Rust, etc").

Tested on x86_64-linux.
gdb/testsuite/gdb.dlang/dlang-start-2.exp [new file with mode: 0644]
gdb/testsuite/gdb.dlang/dmain.c [new file with mode: 0644]