[testsuite] Make the testsuite work on mingw

Message ID 20190814231502.78501-1-cbiesinger@google.com
State New, archived
Headers

Commit Message

Terekhov, Mikhail via Gdb-patches Aug. 14, 2019, 11:15 p.m. UTC
  Dejagnu produces an objdir like /c/, but GDB expects something like c:/.
So fix it up in lib/gdb.exp.

gdb/testsuite/ChangeLog:

2019-08-14  Christian Biesinger  <cbiesinger@google.com>

	* lib/gdb.exp: When running on a mingw target, replace
	/x/ with x:/.
---
 gdb/testsuite/lib/gdb.exp | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Kevin Buettner Aug. 15, 2019, 1:47 a.m. UTC | #1
On Wed, 14 Aug 2019 18:15:02 -0500
"Christian Biesinger via gdb-patches" <gdb-patches@sourceware.org> wrote:

> Dejagnu produces an objdir like /c/, but GDB expects something like c:/.
> So fix it up in lib/gdb.exp.
> 
> gdb/testsuite/ChangeLog:
> 
> 2019-08-14  Christian Biesinger  <cbiesinger@google.com>
> 
> 	* lib/gdb.exp: When running on a mingw target, replace
> 	/x/ with x:/.

LGTM.

Kevin
  
Pedro Alves Aug. 15, 2019, 3:56 p.m. UTC | #2
On 8/15/19 12:15 AM, Christian Biesinger via gdb-patches wrote:
> Dejagnu produces an objdir like /c/, but GDB expects something like c:/.
> So fix it up in lib/gdb.exp.
> 
> gdb/testsuite/ChangeLog:
> 
> 2019-08-14  Christian Biesinger  <cbiesinger@google.com>
> 
> 	* lib/gdb.exp: When running on a mingw target, replace
> 	/x/ with x:/.
> ---
>  gdb/testsuite/lib/gdb.exp | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
> index edc8dfcdfd..af56e8aa12 100644
> --- a/gdb/testsuite/lib/gdb.exp
> +++ b/gdb/testsuite/lib/gdb.exp
> @@ -4724,6 +4724,10 @@ proc standard_output_file {basename} {
>  
>      set dir [make_gdb_parallel_path outputs $subdir $gdb_test_file_name]
>      file mkdir $dir
> +    # If running on MinGW, replace /c/foo with c:/foo

OOC, does "on MinGW" mean using a Cygwin or MSYS2 dejagnu?

Or are you really using a native MinGW expect/dejagnu?

> +    if { [ishost *-*-mingw*] } {
> +        set dir [regsub {^/([a-z])/} $dir {\1:/}]
> +    }
>      return [file join $dir $basename]
>  }
>  
> 

Thanks,
Pedro Alves
  
Terekhov, Mikhail via Gdb-patches Aug. 15, 2019, 4:15 p.m. UTC | #3
On Thu, Aug 15, 2019 at 10:56 AM Pedro Alves <palves@redhat.com> wrote:
> On 8/15/19 12:15 AM, Christian Biesinger via gdb-patches wrote:
> > Dejagnu produces an objdir like /c/, but GDB expects something like c:/.
> > So fix it up in lib/gdb.exp.
> >
> > gdb/testsuite/ChangeLog:
> >
> > 2019-08-14  Christian Biesinger  <cbiesinger@google.com>
> >
> >       * lib/gdb.exp: When running on a mingw target, replace
> >       /x/ with x:/.
> > ---
> >  gdb/testsuite/lib/gdb.exp | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
> > index edc8dfcdfd..af56e8aa12 100644
> > --- a/gdb/testsuite/lib/gdb.exp
> > +++ b/gdb/testsuite/lib/gdb.exp
> > @@ -4724,6 +4724,10 @@ proc standard_output_file {basename} {
> >
> >      set dir [make_gdb_parallel_path outputs $subdir $gdb_test_file_name]
> >      file mkdir $dir
> > +    # If running on MinGW, replace /c/foo with c:/foo
>
> OOC, does "on MinGW" mean using a Cygwin or MSYS2 dejagnu?
>
> Or are you really using a native MinGW expect/dejagnu?

This was an MSYS dejagnu. (Hmm, I guess a cygwin one would require a
different patch, to also match and remove /cygdrive... but I'll leave
that to another time)

I pushed this patch.

Christian

> > +    if { [ishost *-*-mingw*] } {
> > +        set dir [regsub {^/([a-z])/} $dir {\1:/}]
> > +    }
> >      return [file join $dir $basename]
> >  }
> >
> >
>
> Thanks,
> Pedro Alves
  

Patch

diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index edc8dfcdfd..af56e8aa12 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -4724,6 +4724,10 @@  proc standard_output_file {basename} {
 
     set dir [make_gdb_parallel_path outputs $subdir $gdb_test_file_name]
     file mkdir $dir
+    # If running on MinGW, replace /c/foo with c:/foo
+    if { [ishost *-*-mingw*] } {
+        set dir [regsub {^/([a-z])/} $dir {\1:/}]
+    }
     return [file join $dir $basename]
 }