[PATCH] gdb/testsuite: Use 'array unset' instead of just 'unset'

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] gdb/testsuite: Use 'array unset' instead of just 'unset'

Andrew Burgess
In the check-test-names.exp library 'unset' was being used to unset an
array variable.  Though this seems to work fine on tcl 8.6, it was
discovered on a CentOS 7.8.2003 machine, running tcl 8.5, that this
doesn't work and 'array unset' should be used instead.

Using 'array unset' should work fine for newer and older versions of
tcl (since 8.3, releases ~2000).

gdb/testsuite/ChangeLog:

        * lib/check-test-names.exp (do_reset_vars): Use 'array unset' to
        unset the array variable.
---
 gdb/testsuite/ChangeLog                | 5 +++++
 gdb/testsuite/lib/check-test-names.exp | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/lib/check-test-names.exp b/gdb/testsuite/lib/check-test-names.exp
index 4c0fde6e4ea..d72de3cf821 100644
--- a/gdb/testsuite/lib/check-test-names.exp
+++ b/gdb/testsuite/lib/check-test-names.exp
@@ -150,7 +150,7 @@ namespace eval ::CheckTestNames {
 
  CheckTestNames::reset_vars
 
- unset all_test_names
+ array unset all_test_names
  foreach nm {paths duplicates} {
     set counts($nm,count) 0
  }
--
2.25.4

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] gdb/testsuite: Use 'array unset' instead of just 'unset'

Sourceware - gdb-patches mailing list
On 2020-08-04 7:39 a.m., Andrew Burgess wrote:

> In the check-test-names.exp library 'unset' was being used to unset an
> array variable.  Though this seems to work fine on tcl 8.6, it was
> discovered on a CentOS 7.8.2003 machine, running tcl 8.5, that this
> doesn't work and 'array unset' should be used instead.
>
> Using 'array unset' should work fine for newer and older versions of
> tcl (since 8.3, releases ~2000).
>
> gdb/testsuite/ChangeLog:
>
> * lib/check-test-names.exp (do_reset_vars): Use 'array unset' to
> unset the array variable.
> ---
>  gdb/testsuite/ChangeLog                | 5 +++++
>  gdb/testsuite/lib/check-test-names.exp | 2 +-
>  2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/gdb/testsuite/lib/check-test-names.exp b/gdb/testsuite/lib/check-test-names.exp
> index 4c0fde6e4ea..d72de3cf821 100644
> --- a/gdb/testsuite/lib/check-test-names.exp
> +++ b/gdb/testsuite/lib/check-test-names.exp
> @@ -150,7 +150,7 @@ namespace eval ::CheckTestNames {
>  
>   CheckTestNames::reset_vars
>  
> - unset all_test_names
> + array unset all_test_names
>   foreach nm {paths duplicates} {
>      set counts($nm,count) 0
>   }
> --
> 2.25.4
>

Thanks, that makes it work.

For context (for others), I stumbled on this issue on machine gcc135 of the compile
farm, where running any test would give:

can't unset "all_test_names": no such variable
    while executing
"unset all_test_names"
    (procedure "CheckTestNames::do_reset_vars" line 7)
    invoked from within
"CheckTestNames::do_reset_vars"
    ("eval" body line 1)
    invoked from within
"eval "CheckTestNames::do_reset_vars""
    (procedure "reset_vars" line 2)
    invoked from within
"reset_vars"
    (procedure "runtest" line 10)
    invoked from within
"runtest $test_name"
    ("foreach" body line 42)
    invoked from within

Simon
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] gdb/testsuite: Use 'array unset' instead of just 'unset'

Andrew Burgess
* Simon Marchi <[hidden email]> [2020-08-04 08:48:27 -0400]:

> On 2020-08-04 7:39 a.m., Andrew Burgess wrote:
> > In the check-test-names.exp library 'unset' was being used to unset an
> > array variable.  Though this seems to work fine on tcl 8.6, it was
> > discovered on a CentOS 7.8.2003 machine, running tcl 8.5, that this
> > doesn't work and 'array unset' should be used instead.
> >
> > Using 'array unset' should work fine for newer and older versions of
> > tcl (since 8.3, releases ~2000).
> >
> > gdb/testsuite/ChangeLog:
> >
> > * lib/check-test-names.exp (do_reset_vars): Use 'array unset' to
> > unset the array variable.
> > ---
> >  gdb/testsuite/ChangeLog                | 5 +++++
> >  gdb/testsuite/lib/check-test-names.exp | 2 +-
> >  2 files changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/gdb/testsuite/lib/check-test-names.exp b/gdb/testsuite/lib/check-test-names.exp
> > index 4c0fde6e4ea..d72de3cf821 100644
> > --- a/gdb/testsuite/lib/check-test-names.exp
> > +++ b/gdb/testsuite/lib/check-test-names.exp
> > @@ -150,7 +150,7 @@ namespace eval ::CheckTestNames {
> >  
> >   CheckTestNames::reset_vars
> >  
> > - unset all_test_names
> > + array unset all_test_names
> >   foreach nm {paths duplicates} {
> >      set counts($nm,count) 0
> >   }
> > --
> > 2.25.4
> >
>
> Thanks, that makes it work.

Excellent.  I've pushed this.

Thanks,
Andrew