Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] sigall.exp and friends: centralize signals list.
@ 2012-07-19 14:35 Pedro Alves
  2012-07-19 17:24 ` Tom Tromey
  2012-07-25 13:48 ` [patch] testsuite: Fix Tcl < 7.5 regression [Re: [PATCH] sigall.exp and friends: centralize signals list.] Jan Kratochvil
  0 siblings, 2 replies; 10+ messages in thread
From: Pedro Alves @ 2012-07-19 14:35 UTC (permalink / raw)
  To: gdb-patches

I was doing a fix to gdb.reverse/sigall-precsave.exp that requires
adding code that does something once for each signal the tested
program generates.  I thought that putting the signals list into a tcl
list and add another walk over the list would be better than following
the trend of adding a bunch of similar calls in a sequence, once per
each signal.  This patch just does the refactoring to add a list and
use it, without changing anything else.

Tested x86_64 Fedora 17, and applied.

2012-07-19  Pedro Alves  <palves@redhat.com>

	* gdb.base/sigall.exp (signals): New list.
	<top level>: Loop over signals in the $signals list instead of
	calling a test function once per signal.
	* gdb.reverse/sigall-precsave.exp (signals): New list.
	<top level>: Loop over signals in the $signals list instead of
	calling a test function once per signal.
	* gdb.reverse/sigall-reverse.exp (signals): New list.
	<top level>: Loop over signals in the $signals list instead of
	calling a test function once per signal.
---
 gdb/testsuite/gdb.base/sigall.exp             |  164 +++++++------
 gdb/testsuite/gdb.reverse/sigall-precsave.exp |  316 ++++++++-----------------
 gdb/testsuite/gdb.reverse/sigall-reverse.exp  |  317 ++++++++-----------------
 3 files changed, 293 insertions(+), 504 deletions(-)

diff --git a/gdb/testsuite/gdb.base/sigall.exp b/gdb/testsuite/gdb.base/sigall.exp
index 1f2bab7..7963504 100644
--- a/gdb/testsuite/gdb.base/sigall.exp
+++ b/gdb/testsuite/gdb.base/sigall.exp
@@ -31,10 +31,6 @@ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
      return -1
 }
 
-# Make the first signal SIGABRT because it is always supported.
-set sig_supported 1
-set thissig "ABRT"
-
 proc test_one_sig {nextsig} {
     global sig_supported
     global gdb_prompt
@@ -104,77 +100,97 @@ proc test_one_sig {nextsig} {
 
 gdb_load $binfile
 
+# The list of signals that the program generates, in the order they
+# are generated.
+set signals {
+    ABRT
+    HUP
+    QUIT
+    ILL
+    EMT
+    FPE
+    BUS
+    SEGV
+    SYS
+    PIPE
+    ALRM
+    URG
+    TSTP
+    CONT
+    CHLD
+    TTIN
+    TTOU
+    IO
+    XCPU
+    XFSZ
+    VTALRM
+    PROF
+    WINCH
+    LOST
+    USR1
+    USR2
+    PWR
+    POLL
+    WIND
+    PHONE
+    WAITING
+    LWP
+    DANGER
+    GRANT
+    RETRACT
+    MSG
+    SOUND
+    SAK
+    PRIO
+    33
+    34
+    35
+    36
+    37
+    38
+    39
+    40
+    41
+    42
+    43
+    44
+    45
+    46
+    47
+    48
+    49
+    50
+    51
+    52
+    53
+    54
+    55
+    56
+    57
+    58
+    59
+    60
+    61
+    62
+    63
+    TERM
+}
+
+# Make the first signal SIGABRT because it is always supported.
+set sig_supported 1
+set thissig "ABRT"
+
 runto gen_ABRT
-test_one_sig HUP
-test_one_sig QUIT
-test_one_sig ILL
-test_one_sig EMT
-test_one_sig FPE
-test_one_sig BUS
-test_one_sig SEGV
-test_one_sig SYS
-test_one_sig PIPE
-test_one_sig ALRM
-test_one_sig URG
-test_one_sig TSTP
-test_one_sig CONT
-test_one_sig CHLD
-test_one_sig TTIN
-test_one_sig TTOU
-test_one_sig IO
-test_one_sig XCPU
-test_one_sig XFSZ
-test_one_sig VTALRM
-test_one_sig PROF
-test_one_sig WINCH
-test_one_sig LOST
-test_one_sig USR1
-test_one_sig USR2
-test_one_sig PWR
-test_one_sig POLL
-test_one_sig WIND
-test_one_sig PHONE
-test_one_sig WAITING
-test_one_sig LWP
-test_one_sig DANGER
-test_one_sig GRANT
-test_one_sig RETRACT
-test_one_sig MSG
-test_one_sig SOUND
-test_one_sig SAK
-test_one_sig PRIO
-test_one_sig 33
-test_one_sig 34
-test_one_sig 35
-test_one_sig 36
-test_one_sig 37
-test_one_sig 38
-test_one_sig 39
-test_one_sig 40
-test_one_sig 41
-test_one_sig 42
-test_one_sig 43
-test_one_sig 44
-test_one_sig 45
-test_one_sig 46
-test_one_sig 47
-test_one_sig 48
-test_one_sig 49
-test_one_sig 50
-test_one_sig 51
-test_one_sig 52
-test_one_sig 53
-test_one_sig 54
-test_one_sig 55
-test_one_sig 56
-test_one_sig 57
-test_one_sig 58
-test_one_sig 59
-test_one_sig 60
-test_one_sig 61
-test_one_sig 62
-test_one_sig 63
-test_one_sig TERM
+
+for {set i 0;} {$i < [llength $signals]} {incr i;} {
+    # Skip the first.
+    if { $i == 0 } {
+	continue
+    }
+
+    set sig [lindex $signals $i]
+    test_one_sig $sig
+}
 
 # The last signal (SIGTERM) gets handled slightly differently because
 # we are not setting up for another test.
diff --git a/gdb/testsuite/gdb.reverse/sigall-precsave.exp b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
index 465e3cc..e2dabf9 100644
--- a/gdb/testsuite/gdb.reverse/sigall-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
@@ -34,10 +34,6 @@ if {[build_executable $testfile.exp $testfile $srcfile debug] == -1} {
     return -1
 }
 
-# Make the first signal SIGABRT because it is always supported.
-set sig_supported 1
-set thissig "ABRT"
-
 proc test_one_sig {nextsig} {
     global sig_supported
     global gdb_prompt
@@ -182,6 +178,82 @@ gdb_test "break $breakloc" \
 # Signal handlers must be disabled
 gdb_test "handle all nostop noprint"
 
+# The list of signals that the program generates, in the order they
+# are generated.
+set signals {
+    ABRT
+    HUP
+    QUIT
+    ILL
+    EMT
+    FPE
+    BUS
+    SEGV
+    SYS
+    PIPE
+    ALRM
+    URG
+    TSTP
+    CONT
+    CHLD
+    TTIN
+    TTOU
+    IO
+    XCPU
+    XFSZ
+    VTALRM
+    PROF
+    WINCH
+    LOST
+    USR1
+    USR2
+    PWR
+    POLL
+    WIND
+    PHONE
+    WAITING
+    LWP
+    DANGER
+    GRANT
+    RETRACT
+    MSG
+    SOUND
+    SAK
+    PRIO
+    33
+    34
+    35
+    36
+    37
+    38
+    39
+    40
+    41
+    42
+    43
+    44
+    45
+    46
+    47
+    48
+    49
+    50
+    51
+    52
+    53
+    54
+    55
+    56
+    57
+    58
+    59
+    60
+    61
+    62
+    63
+    TERM
+}
+
 gdb_test "continue" "Breakpoint .* end of main .*" "run to end of main"
 
 gdb_test "record save $precsave" \
@@ -198,77 +270,20 @@ gdb_test "record restore $precsave" \
 # Signal handlers must be re-enabled
 gdb_test "handle all stop print"
 
+# Make the first signal SIGABRT because it is always supported.
+set sig_supported 1
+set thissig "ABRT"
+
 # test signal handling
-test_one_sig HUP
-test_one_sig QUIT
-test_one_sig ILL
-test_one_sig EMT
-test_one_sig FPE
-test_one_sig BUS
-test_one_sig SEGV
-test_one_sig SYS
-test_one_sig PIPE
-test_one_sig ALRM
-test_one_sig URG
-test_one_sig TSTP
-test_one_sig CONT
-test_one_sig CHLD
-test_one_sig TTIN
-test_one_sig TTOU
-test_one_sig IO
-test_one_sig XCPU
-test_one_sig XFSZ
-test_one_sig VTALRM
-test_one_sig PROF
-test_one_sig WINCH
-test_one_sig LOST
-test_one_sig USR1
-test_one_sig USR2
-test_one_sig PWR
-test_one_sig POLL
-test_one_sig WIND
-test_one_sig PHONE
-test_one_sig WAITING
-test_one_sig LWP
-test_one_sig DANGER
-test_one_sig GRANT
-test_one_sig RETRACT
-test_one_sig MSG
-test_one_sig SOUND
-test_one_sig SAK
-test_one_sig PRIO
-test_one_sig 33
-test_one_sig 34
-test_one_sig 35
-test_one_sig 36
-test_one_sig 37
-test_one_sig 38
-test_one_sig 39
-test_one_sig 40
-test_one_sig 41
-test_one_sig 42
-test_one_sig 43
-test_one_sig 44
-test_one_sig 45
-test_one_sig 46
-test_one_sig 47
-test_one_sig 48
-test_one_sig 49
-test_one_sig 50
-test_one_sig 51
-test_one_sig 52
-test_one_sig 53
-test_one_sig 54
-test_one_sig 55
-test_one_sig 56
-test_one_sig 57
-test_one_sig 58
-test_one_sig 59
-test_one_sig 60
-test_one_sig 61
-test_one_sig 62
-test_one_sig 63
-test_one_sig TERM
+for {set i 0;} {$i < [llength $signals]} {incr i;} {
+    # Skip the first.
+    if { $i == 0 } {
+	continue
+    }
+
+    set sig [lindex $signals $i]
+    test_one_sig $sig
+}
 
 # The last signal (SIGTERM) gets handled slightly differently because
 # we are not setting up for another test.
@@ -282,149 +297,20 @@ gdb_test "continue" "Breakpoint.*handle_TERM.*" "send signal TERM"
 
 gdb_test "continue" " end of main .*" "continue to sigall exit" 
 
-test_one_sig_reverse TERM
-test_one_sig_reverse 63
-test_one_sig_reverse 62
-test_one_sig_reverse 61
-test_one_sig_reverse 60
-test_one_sig_reverse 59
-test_one_sig_reverse 58
-test_one_sig_reverse 57
-test_one_sig_reverse 56
-test_one_sig_reverse 55
-test_one_sig_reverse 54
-test_one_sig_reverse 53
-test_one_sig_reverse 52
-test_one_sig_reverse 51
-test_one_sig_reverse 50
-test_one_sig_reverse 49
-test_one_sig_reverse 48
-test_one_sig_reverse 47
-test_one_sig_reverse 46
-test_one_sig_reverse 45
-test_one_sig_reverse 44
-test_one_sig_reverse 43
-test_one_sig_reverse 42
-test_one_sig_reverse 41
-test_one_sig_reverse 40
-test_one_sig_reverse 39
-test_one_sig_reverse 38
-test_one_sig_reverse 37
-test_one_sig_reverse 36
-test_one_sig_reverse 35
-test_one_sig_reverse 34
-test_one_sig_reverse 33
-test_one_sig_reverse PRIO
-test_one_sig_reverse SAK
-test_one_sig_reverse SOUND
-test_one_sig_reverse MSG
-test_one_sig_reverse RETRACT
-test_one_sig_reverse GRANT
-test_one_sig_reverse DANGER
-test_one_sig_reverse LWP
-test_one_sig_reverse WAITING
-test_one_sig_reverse PHONE
-test_one_sig_reverse WIND
-test_one_sig_reverse POLL
-test_one_sig_reverse PWR
-test_one_sig_reverse USR2
-test_one_sig_reverse USR1
-test_one_sig_reverse LOST
-test_one_sig_reverse WINCH
-test_one_sig_reverse PROF
-test_one_sig_reverse VTALRM
-test_one_sig_reverse XFSZ
-test_one_sig_reverse XCPU
-test_one_sig_reverse IO
-test_one_sig_reverse TTOU
-test_one_sig_reverse TTIN
-test_one_sig_reverse CHLD
-test_one_sig_reverse CONT
-test_one_sig_reverse TSTP
-test_one_sig_reverse URG
-test_one_sig_reverse ALRM
-test_one_sig_reverse PIPE
-test_one_sig_reverse SYS
-test_one_sig_reverse SEGV
-test_one_sig_reverse BUS
-test_one_sig_reverse FPE
-test_one_sig_reverse EMT
-test_one_sig_reverse ILL
-test_one_sig_reverse QUIT
-test_one_sig_reverse HUP
-test_one_sig_reverse ABRT
+foreach sig [lreverse $signals] {
+    test_one_sig_reverse $sig
+}
 
 # Make the first signal SIGABRT because it is always supported.
 set sig_supported 1
 set thissig "ABRT"
 
-test_one_sig HUP
-test_one_sig QUIT
-test_one_sig ILL
-test_one_sig EMT
-test_one_sig FPE
-test_one_sig BUS
-test_one_sig SEGV
-test_one_sig SYS
-test_one_sig PIPE
-test_one_sig ALRM
-test_one_sig URG
-test_one_sig TSTP
-test_one_sig CONT
-test_one_sig CHLD
-test_one_sig TTIN
-test_one_sig TTOU
-test_one_sig IO
-test_one_sig XCPU
-test_one_sig XFSZ
-test_one_sig VTALRM
-test_one_sig PROF
-test_one_sig WINCH
-test_one_sig LOST
-test_one_sig USR1
-test_one_sig USR2
-test_one_sig PWR
-test_one_sig POLL
-test_one_sig WIND
-test_one_sig PHONE
-test_one_sig WAITING
-test_one_sig LWP
-test_one_sig DANGER
-test_one_sig GRANT
-test_one_sig RETRACT
-test_one_sig MSG
-test_one_sig SOUND
-test_one_sig SAK
-test_one_sig PRIO
-test_one_sig 33
-test_one_sig 34
-test_one_sig 35
-test_one_sig 36
-test_one_sig 37
-test_one_sig 38
-test_one_sig 39
-test_one_sig 40
-test_one_sig 41
-test_one_sig 42
-test_one_sig 43
-test_one_sig 44
-test_one_sig 45
-test_one_sig 46
-test_one_sig 47
-test_one_sig 48
-test_one_sig 49
-test_one_sig 50
-test_one_sig 51
-test_one_sig 52
-test_one_sig 53
-test_one_sig 54
-test_one_sig 55
-test_one_sig 56
-test_one_sig 57
-test_one_sig 58
-test_one_sig 59
-test_one_sig 60
-test_one_sig 61
-test_one_sig 62
-test_one_sig 63
-test_one_sig TERM
+for {set i 0;} {$i < [llength $signals]} {incr i;} {
+    # Skip the first.
+    if { $i == 0 } {
+	continue
+    }
+
+    set sig [lindex $signals $i]
+    test_one_sig $sig
+}
diff --git a/gdb/testsuite/gdb.reverse/sigall-reverse.exp b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
index 598e5d4..f5bbe1e 100644
--- a/gdb/testsuite/gdb.reverse/sigall-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
@@ -33,10 +33,6 @@ if {[build_executable $testfile.exp $testfile $srcfile debug] == -1} {
     return -1
 }
 
-# Make the first signal SIGABRT because it is always supported.
-set sig_supported 1
-set thissig "ABRT"
-
 proc test_one_sig {nextsig} {
     global sig_supported
     global gdb_prompt
@@ -171,76 +167,96 @@ if [supports_process_record] {
     gdb_test_no_output "record" "Turn on process record"
 }
 
-test_one_sig HUP
-test_one_sig QUIT
-test_one_sig ILL
-test_one_sig EMT
-test_one_sig FPE
-test_one_sig BUS
-test_one_sig SEGV
-test_one_sig SYS
-test_one_sig PIPE
-test_one_sig ALRM
-test_one_sig URG
-test_one_sig TSTP
-test_one_sig CONT
-test_one_sig CHLD
-test_one_sig TTIN
-test_one_sig TTOU
-test_one_sig IO
-test_one_sig XCPU
-test_one_sig XFSZ
-test_one_sig VTALRM
-test_one_sig PROF
-test_one_sig WINCH
-test_one_sig LOST
-test_one_sig USR1
-test_one_sig USR2
-test_one_sig PWR
-test_one_sig POLL
-test_one_sig WIND
-test_one_sig PHONE
-test_one_sig WAITING
-test_one_sig LWP
-test_one_sig DANGER
-test_one_sig GRANT
-test_one_sig RETRACT
-test_one_sig MSG
-test_one_sig SOUND
-test_one_sig SAK
-test_one_sig PRIO
-test_one_sig 33
-test_one_sig 34
-test_one_sig 35
-test_one_sig 36
-test_one_sig 37
-test_one_sig 38
-test_one_sig 39
-test_one_sig 40
-test_one_sig 41
-test_one_sig 42
-test_one_sig 43
-test_one_sig 44
-test_one_sig 45
-test_one_sig 46
-test_one_sig 47
-test_one_sig 48
-test_one_sig 49
-test_one_sig 50
-test_one_sig 51
-test_one_sig 52
-test_one_sig 53
-test_one_sig 54
-test_one_sig 55
-test_one_sig 56
-test_one_sig 57
-test_one_sig 58
-test_one_sig 59
-test_one_sig 60
-test_one_sig 61
-test_one_sig 62
-test_one_sig 63
-test_one_sig TERM
+# The list of signals that the program generates, in the order they
+# are generated.
+set signals {
+    ABRT
+    HUP
+    QUIT
+    ILL
+    EMT
+    FPE
+    BUS
+    SEGV
+    SYS
+    PIPE
+    ALRM
+    URG
+    TSTP
+    CONT
+    CHLD
+    TTIN
+    TTOU
+    IO
+    XCPU
+    XFSZ
+    VTALRM
+    PROF
+    WINCH
+    LOST
+    USR1
+    USR2
+    PWR
+    POLL
+    WIND
+    PHONE
+    WAITING
+    LWP
+    DANGER
+    GRANT
+    RETRACT
+    MSG
+    SOUND
+    SAK
+    PRIO
+    33
+    34
+    35
+    36
+    37
+    38
+    39
+    40
+    41
+    42
+    43
+    44
+    45
+    46
+    47
+    48
+    49
+    50
+    51
+    52
+    53
+    54
+    55
+    56
+    57
+    58
+    59
+    60
+    61
+    62
+    63
+    TERM
+}
+
+# Make the first signal SIGABRT because it is always supported.
+set sig_supported 1
+set thissig "ABRT"
+
+# test signal handling
+for {set i 0;} {$i < [llength $signals]} {incr i;} {
+    # Skip the first.
+    if { $i == 0 } {
+	continue
+    }
+
+    set sig [lindex $signals $i]
+    test_one_sig $sig
+}
 
 # The last signal (SIGTERM) gets handled slightly differently because
 # we are not setting up for another test.
@@ -256,149 +272,20 @@ gdb_test "continue" "\[process \[0-9\]+ .*" "continue to sigal exit" \
     "The next instruction is syscall exit_group.* program...y. or n. " \
     "yes"
 
-test_one_sig_reverse TERM
-test_one_sig_reverse 63
-test_one_sig_reverse 62
-test_one_sig_reverse 61
-test_one_sig_reverse 60
-test_one_sig_reverse 59
-test_one_sig_reverse 58
-test_one_sig_reverse 57
-test_one_sig_reverse 56
-test_one_sig_reverse 55
-test_one_sig_reverse 54
-test_one_sig_reverse 53
-test_one_sig_reverse 52
-test_one_sig_reverse 51
-test_one_sig_reverse 50
-test_one_sig_reverse 49
-test_one_sig_reverse 48
-test_one_sig_reverse 47
-test_one_sig_reverse 46
-test_one_sig_reverse 45
-test_one_sig_reverse 44
-test_one_sig_reverse 43
-test_one_sig_reverse 42
-test_one_sig_reverse 41
-test_one_sig_reverse 40
-test_one_sig_reverse 39
-test_one_sig_reverse 38
-test_one_sig_reverse 37
-test_one_sig_reverse 36
-test_one_sig_reverse 35
-test_one_sig_reverse 34
-test_one_sig_reverse 33
-test_one_sig_reverse PRIO
-test_one_sig_reverse SAK
-test_one_sig_reverse SOUND
-test_one_sig_reverse MSG
-test_one_sig_reverse RETRACT
-test_one_sig_reverse GRANT
-test_one_sig_reverse DANGER
-test_one_sig_reverse LWP
-test_one_sig_reverse WAITING
-test_one_sig_reverse PHONE
-test_one_sig_reverse WIND
-test_one_sig_reverse POLL
-test_one_sig_reverse PWR
-test_one_sig_reverse USR2
-test_one_sig_reverse USR1
-test_one_sig_reverse LOST
-test_one_sig_reverse WINCH
-test_one_sig_reverse PROF
-test_one_sig_reverse VTALRM
-test_one_sig_reverse XFSZ
-test_one_sig_reverse XCPU
-test_one_sig_reverse IO
-test_one_sig_reverse TTOU
-test_one_sig_reverse TTIN
-test_one_sig_reverse CHLD
-test_one_sig_reverse CONT
-test_one_sig_reverse TSTP
-test_one_sig_reverse URG
-test_one_sig_reverse ALRM
-test_one_sig_reverse PIPE
-test_one_sig_reverse SYS
-test_one_sig_reverse SEGV
-test_one_sig_reverse BUS
-test_one_sig_reverse FPE
-test_one_sig_reverse EMT
-test_one_sig_reverse ILL
-test_one_sig_reverse QUIT
-test_one_sig_reverse HUP
-test_one_sig_reverse ABRT
+foreach sig [lreverse $signals] {
+    test_one_sig_reverse $sig
+}
 
 # Make the first signal SIGABRT because it is always supported.
 set sig_supported 1
 set thissig "ABRT"
 
-test_one_sig HUP
-test_one_sig QUIT
-test_one_sig ILL
-test_one_sig EMT
-test_one_sig FPE
-test_one_sig BUS
-test_one_sig SEGV
-test_one_sig SYS
-test_one_sig PIPE
-test_one_sig ALRM
-test_one_sig URG
-test_one_sig TSTP
-test_one_sig CONT
-test_one_sig CHLD
-test_one_sig TTIN
-test_one_sig TTOU
-test_one_sig IO
-test_one_sig XCPU
-test_one_sig XFSZ
-test_one_sig VTALRM
-test_one_sig PROF
-test_one_sig WINCH
-test_one_sig LOST
-test_one_sig USR1
-test_one_sig USR2
-test_one_sig PWR
-test_one_sig POLL
-test_one_sig WIND
-test_one_sig PHONE
-test_one_sig WAITING
-test_one_sig LWP
-test_one_sig DANGER
-test_one_sig GRANT
-test_one_sig RETRACT
-test_one_sig MSG
-test_one_sig SOUND
-test_one_sig SAK
-test_one_sig PRIO
-test_one_sig 33
-test_one_sig 34
-test_one_sig 35
-test_one_sig 36
-test_one_sig 37
-test_one_sig 38
-test_one_sig 39
-test_one_sig 40
-test_one_sig 41
-test_one_sig 42
-test_one_sig 43
-test_one_sig 44
-test_one_sig 45
-test_one_sig 46
-test_one_sig 47
-test_one_sig 48
-test_one_sig 49
-test_one_sig 50
-test_one_sig 51
-test_one_sig 52
-test_one_sig 53
-test_one_sig 54
-test_one_sig 55
-test_one_sig 56
-test_one_sig 57
-test_one_sig 58
-test_one_sig 59
-test_one_sig 60
-test_one_sig 61
-test_one_sig 62
-test_one_sig 63
-test_one_sig TERM
+for {set i 0;} {$i < [llength $signals]} {incr i;} {
+    # Skip the first.
+    if { $i == 0 } {
+	continue
+    }
+
+    set sig [lindex $signals $i]
+    test_one_sig $sig
+}


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] sigall.exp and friends: centralize signals list.
  2012-07-19 14:35 [PATCH] sigall.exp and friends: centralize signals list Pedro Alves
@ 2012-07-19 17:24 ` Tom Tromey
  2012-07-19 17:33   ` Pedro Alves
  2012-07-25 13:48 ` [patch] testsuite: Fix Tcl < 7.5 regression [Re: [PATCH] sigall.exp and friends: centralize signals list.] Jan Kratochvil
  1 sibling, 1 reply; 10+ messages in thread
From: Tom Tromey @ 2012-07-19 17:24 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gdb-patches

>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:

Pedro> +for {set i 0;} {$i < [llength $signals]} {incr i;} {
Pedro> +    # Skip the first.
Pedro> +    if { $i == 0 } {
Pedro> +	continue
Pedro> +    }
Pedro> +
Pedro> +    set sig [lindex $signals $i]
Pedro> +    test_one_sig $sig
Pedro> +}

The ";"s aren't needed.  They're only needed in Tcl if you write
multiple statements on one line, but we don't do that anyhow, or
shouldn't, since it is bad style.

For the above I think it is more idiomatic in Tcl to write:

foreach sig $signals {
    if {$sig == "ABRT"} {
      continue
    }
   test_one_sig $sig
}

That said, I don't care if you leave it as-is.

Tom


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] sigall.exp and friends: centralize signals list.
  2012-07-19 17:24 ` Tom Tromey
@ 2012-07-19 17:33   ` Pedro Alves
  2012-07-19 19:17     ` Tom Tromey
  0 siblings, 1 reply; 10+ messages in thread
From: Pedro Alves @ 2012-07-19 17:33 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb-patches

On 07/19/2012 06:24 PM, Tom Tromey wrote:
>>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:
> 
> Pedro> +for {set i 0;} {$i < [llength $signals]} {incr i;} {
> Pedro> +    # Skip the first.
> Pedro> +    if { $i == 0 } {
> Pedro> +	continue
> Pedro> +    }
> Pedro> +
> Pedro> +    set sig [lindex $signals $i]
> Pedro> +    test_one_sig $sig
> Pedro> +}
> 
> The ";"s aren't needed.  They're only needed in Tcl if you write
> multiple statements on one line, but we don't do that anyhow, or
> shouldn't, since it is bad style.

Thanks.  I copied that from elsewhere, and didn't think much about it.
I'll grep and fix the instances I find.

> 
> For the above I think it is more idiomatic in Tcl to write:
> 
> foreach sig $signals {
>     if {$sig == "ABRT"} {
>       continue
>     }
>    test_one_sig $sig
> }
> 
> That said, I don't care if you leave it as-is.

I actually started out that way.  Then I thought that:

 - There's no guarantee that we won't have duplicate signals on the
   list.  If the test some day generates two SIGABRTs, we'd still only want
   to skip only the first of those, so we'd have to change the loop.

 - We really want to skip the first signal, because that's handled
   before the loop.  It doesn't matter which signal it is.  So I concluded
   that not hard coding a signal name was a little better, and went with a for
   with index, which expresses the idea naturally.

-- 
Pedro Alves


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] sigall.exp and friends: centralize signals list.
  2012-07-19 17:33   ` Pedro Alves
@ 2012-07-19 19:17     ` Tom Tromey
  2012-07-19 19:48       ` Pedro Alves
  0 siblings, 1 reply; 10+ messages in thread
From: Tom Tromey @ 2012-07-19 19:17 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gdb-patches

>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:

Pedro>  - We really want to skip the first signal, because that's
Pedro>  handled before the loop.  It doesn't matter which signal it is.
Pedro>  So I concluded that not hard coding a signal name was a little
Pedro>  better, and went with a for with index, which expresses the idea
Pedro>  naturally.

Alternatively you can use [lrange $signals 1 end]

Tom


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] sigall.exp and friends: centralize signals list.
  2012-07-19 19:17     ` Tom Tromey
@ 2012-07-19 19:48       ` Pedro Alves
  2012-07-19 19:58         ` Tom Tromey
  2012-07-19 20:03         ` cleanup some fors in the testsuite (was: Re: [PATCH] sigall.exp and friends: centralize signals list.) Pedro Alves
  0 siblings, 2 replies; 10+ messages in thread
From: Pedro Alves @ 2012-07-19 19:48 UTC (permalink / raw)
  To: Tom Tromey; +Cc: Pedro Alves, gdb-patches

On 07/19/2012 08:16 PM, Tom Tromey wrote:
>>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:
> 
> Pedro>  - We really want to skip the first signal, because that's
> Pedro>  handled before the loop.  It doesn't matter which signal it is.
> Pedro>  So I concluded that not hard coding a signal name was a little
> Pedro>  better, and went with a for with index, which expresses the idea
> Pedro>  naturally.
> 
> Alternatively you can use [lrange $signals 1 end]

Or even:

for {set i 1} {$i < [llength $signals]} {incr i} {

which in hindsight, I have no idea why I didn't do it like that, over a
silly "if i==0 continue".  :-P

I'll use lrange.

-- 
Pedro Alves


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] sigall.exp and friends: centralize signals list.
  2012-07-19 19:48       ` Pedro Alves
@ 2012-07-19 19:58         ` Tom Tromey
  2012-07-19 20:03         ` cleanup some fors in the testsuite (was: Re: [PATCH] sigall.exp and friends: centralize signals list.) Pedro Alves
  1 sibling, 0 replies; 10+ messages in thread
From: Tom Tromey @ 2012-07-19 19:58 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gdb-patches

Pedro> Or even:
Pedro> for {set i 1} {$i < [llength $signals]} {incr i} {
Pedro> which in hindsight, I have no idea why I didn't do it like that, over a
Pedro> silly "if i==0 continue".  :-P

I didn't think of that either.  Funny :-)

Tom


^ permalink raw reply	[flat|nested] 10+ messages in thread

* cleanup some fors in the testsuite (was: Re: [PATCH] sigall.exp and friends: centralize signals list.)
  2012-07-19 19:48       ` Pedro Alves
  2012-07-19 19:58         ` Tom Tromey
@ 2012-07-19 20:03         ` Pedro Alves
  1 sibling, 0 replies; 10+ messages in thread
From: Pedro Alves @ 2012-07-19 20:03 UTC (permalink / raw)
  To: Pedro Alves; +Cc: Tom Tromey, gdb-patches

On 07/19/2012 08:47 PM, Pedro Alves wrote:
> On 07/19/2012 08:16 PM, Tom Tromey wrote:
>>>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:
>>
>> Pedro>  - We really want to skip the first signal, because that's
>> Pedro>  handled before the loop.  It doesn't matter which signal it is.
>> Pedro>  So I concluded that not hard coding a signal name was a little
>> Pedro>  better, and went with a for with index, which expresses the idea
>> Pedro>  naturally.
>>
>> Alternatively you can use [lrange $signals 1 end]
> 
> Or even:
> 
> for {set i 1} {$i < [llength $signals]} {incr i} {
> 
> which in hindsight, I have no idea why I didn't do it like that, over a
> silly "if i==0 continue".  :-P
> 
> I'll use lrange.

I've applied this.  Thanks!

2012-07-19  Pedro Alves  <palves@redhat.com>

	* config/monitor.exp (gdb_load): Remove redundant ';' in for loop.
	* config/vx.exp (gdb_start): Likewise.
	* gdb.base/printcmds.exp (test_print_repeats_10): Likewise.
	* gdb.base/setvar.exp (test_set): Likewise.
	* gdb.base/sigall.exp: Use foreach+lrange instead of for+continue.
	* gdb.reverse/sigall-precsave.exp: Likewise.
	* gdb.reverse/sigall-reverse.exp: Likewise.
---
 gdb/testsuite/config/monitor.exp              |    2 +-
 gdb/testsuite/config/vx.exp                   |    2 +-
 gdb/testsuite/gdb.base/printcmds.exp          |    4 ++--
 gdb/testsuite/gdb.base/setvar.exp             |    2 +-
 gdb/testsuite/gdb.base/sigall.exp             |    8 +-------
 gdb/testsuite/gdb.reverse/sigall-precsave.exp |   16 ++--------------
 gdb/testsuite/gdb.reverse/sigall-reverse.exp  |   16 ++--------------
 7 files changed, 10 insertions(+), 40 deletions(-)

diff --git a/gdb/testsuite/config/monitor.exp b/gdb/testsuite/config/monitor.exp
index a40911d..361926b 100644
--- a/gdb/testsuite/config/monitor.exp
+++ b/gdb/testsuite/config/monitor.exp
@@ -159,7 +159,7 @@ proc gdb_load { arg } {

     set last_gdb_file $arg;

-    for { set j 1; } { $j <= 2 } {incr j; } {
+    for { set j 1 } { $j <= 2 } {incr j } {
 	if [target_info exists gdb,use_standard_load] {
 	    gdb_target_exec;
 	    if ![target_info exists gdb,no_push_conn] {
diff --git a/gdb/testsuite/config/vx.exp b/gdb/testsuite/config/vx.exp
index 335287f..29c3b1b 100644
--- a/gdb/testsuite/config/vx.exp
+++ b/gdb/testsuite/config/vx.exp
@@ -59,7 +59,7 @@ proc gdb_start { } {
     global reboot

     # get a connection to the board
-    for { set x 0; } { $x < 3 } { incr x } {
+    for { set x 0 } { $x < 3 } { incr x } {
 	set shell_id [remote_open target]
 	if { $shell_id > 0 } {
 	    verbose "Spawn id for remote shell is $shell_id"
diff --git a/gdb/testsuite/gdb.base/printcmds.exp b/gdb/testsuite/gdb.base/printcmds.exp
index 993162e..4f76cec 100644
--- a/gdb/testsuite/gdb.base/printcmds.exp
+++ b/gdb/testsuite/gdb.base/printcmds.exp
@@ -424,9 +424,9 @@ proc test_print_all_chars {} {
 proc test_print_repeats_10 {} {
     global gdb_prompt decimal

-    for { set x 1; } { $x <= 16 } { incr x; } {
+    for { set x 1 } { $x <= 16 } { incr x } {
 	gdb_test_no_output "set print elements $x"
-	for { set e 1; } { $e <= 16 } {incr e; } {
+	for { set e 1 } { $e <= 16 } {incr e } {
 	    set v [expr $e - 1];
 	    set command "p &ctable2\[${v}*16\]"
 	    if { $x < $e } {
diff --git a/gdb/testsuite/gdb.base/setvar.exp b/gdb/testsuite/gdb.base/setvar.exp
index 870d043..7faa10a 100644
--- a/gdb/testsuite/gdb.base/setvar.exp
+++ b/gdb/testsuite/gdb.base/setvar.exp
@@ -77,7 +77,7 @@ proc test_set { args } {
     set count 1;

     # Set up the variables.
-    for {set x 0;} {$x < $length} {incr x;} {
+    for {set x 0} {$x < $length} {incr x} {
 	if { "[lindex $args $x]" != "" } {
 	    set arg [lindex $args $x];
 	    if { ($x == $final) || ([string first ".*" [lindex $args [expr $x + 1]]] >= 0) } {
diff --git a/gdb/testsuite/gdb.base/sigall.exp b/gdb/testsuite/gdb.base/sigall.exp
index 7963504..5084f22 100644
--- a/gdb/testsuite/gdb.base/sigall.exp
+++ b/gdb/testsuite/gdb.base/sigall.exp
@@ -182,13 +182,7 @@ set thissig "ABRT"

 runto gen_ABRT

-for {set i 0;} {$i < [llength $signals]} {incr i;} {
-    # Skip the first.
-    if { $i == 0 } {
-	continue
-    }
-
-    set sig [lindex $signals $i]
+foreach sig [lrange $signals 1 end] {
     test_one_sig $sig
 }

diff --git a/gdb/testsuite/gdb.reverse/sigall-precsave.exp b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
index ee3240b..d0d68a6 100644
--- a/gdb/testsuite/gdb.reverse/sigall-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
@@ -300,13 +300,7 @@ set sig_supported 1
 set thissig "ABRT"

 # test signal handling
-for {set i 0;} {$i < [llength $signals]} {incr i;} {
-    # Skip the first.
-    if { $i == 0 } {
-	continue
-    }
-
-    set sig [lindex $signals $i]
+foreach sig [lrange $signals 1 end] {
     test_one_sig $sig
 }

@@ -330,12 +324,6 @@ foreach sig [lreverse $signals] {
 set sig_supported 1
 set thissig "ABRT"

-for {set i 0;} {$i < [llength $signals]} {incr i;} {
-    # Skip the first.
-    if { $i == 0 } {
-	continue
-    }
-
-    set sig [lindex $signals $i]
+foreach sig [lrange $signals 1 end] {
     test_one_sig $sig
 }
diff --git a/gdb/testsuite/gdb.reverse/sigall-reverse.exp b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
index f5bbe1e..3d516ac 100644
--- a/gdb/testsuite/gdb.reverse/sigall-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
@@ -248,13 +248,7 @@ set sig_supported 1
 set thissig "ABRT"

 # test signal handling
-for {set i 0;} {$i < [llength $signals]} {incr i;} {
-    # Skip the first.
-    if { $i == 0 } {
-	continue
-    }
-
-    set sig [lindex $signals $i]
+foreach sig [lrange $signals 1 end] {
     test_one_sig $sig
 }

@@ -280,12 +274,6 @@ foreach sig [lreverse $signals] {
 set sig_supported 1
 set thissig "ABRT"

-for {set i 0;} {$i < [llength $signals]} {incr i;} {
-    # Skip the first.
-    if { $i == 0 } {
-	continue
-    }
-
-    set sig [lindex $signals $i]
+foreach sig [lrange $signals 1 end] {
     test_one_sig $sig
 }


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [patch] testsuite: Fix Tcl < 7.5 regression   [Re: [PATCH] sigall.exp and friends: centralize signals list.]
  2012-07-19 14:35 [PATCH] sigall.exp and friends: centralize signals list Pedro Alves
  2012-07-19 17:24 ` Tom Tromey
@ 2012-07-25 13:48 ` Jan Kratochvil
  2012-07-25 13:51   ` Pedro Alves
  1 sibling, 1 reply; 10+ messages in thread
From: Jan Kratochvil @ 2012-07-25 13:48 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gdb-patches

On Thu, 19 Jul 2012 16:35:26 +0200, Pedro Alves wrote:
> Tested x86_64 Fedora 17, and applied.
[...]
> --- a/gdb/testsuite/gdb.reverse/sigall-precsave.exp
> +++ b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
> +foreach sig [lreverse $signals] {
> +    test_one_sig_reverse $sig
> +}

--- 20120719Build-gdbcvs-epel5/epel-5-x86_64/out/gdb-m32.sum    2012-07-19 07:08:00.075100625 +0200
+++ 20120720Build-gdbcvs-epel5/epel-5-x86_64/out/gdb-m32.sum    2012-07-20 07:56:27.967798598 +0200
-Running gdb/testsuite/gdb.reverse/sigall-reverse.exp ...
-PASS: gdb.reverse/sigall-reverse.exp: Turn on process record
[...]
+ERROR: (DejaGnu) proc "lreverse {
+    ABRT
[...]
+    TERM
+}" does not exist.

I will check it in today.

That 'info procs' is in fact not needed, 'proc lreverse' definition is a nop
with new Tcl (=it does not replace the built-in proc of the same name).
But I have rather put the conditional there.


Thanks,
Jan


gdb/testsuite/
2012-07-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compatibility with Tcl before 7.5.
	* lib/future.exp (lreverse): New function if it does not exist.

diff --git a/gdb/testsuite/lib/future.exp b/gdb/testsuite/lib/future.exp
index bf47988..26e668f 100644
--- a/gdb/testsuite/lib/future.exp
+++ b/gdb/testsuite/lib/future.exp
@@ -521,3 +521,16 @@ if {$use_gdb_compile} {
     catch {rename default_target_compile {}}
     rename gdb_default_target_compile default_target_compile
 }
+
+
+# Provide 'lreverse' missing in Tcl before 7.5.
+
+if {[info procs lreverse] == ""} {
+    proc lreverse { arg } {
+	set retval {}
+	while { [llength $retval] < [llength $arg] } {
+	    lappend retval [lindex $arg end-[llength $retval]]
+	}
+	return $retval
+    }
+}


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [patch] testsuite: Fix Tcl < 7.5 regression   [Re: [PATCH] sigall.exp and friends: centralize signals list.]
  2012-07-25 13:48 ` [patch] testsuite: Fix Tcl < 7.5 regression [Re: [PATCH] sigall.exp and friends: centralize signals list.] Jan Kratochvil
@ 2012-07-25 13:51   ` Pedro Alves
  2012-07-25 20:18     ` [commit] " Jan Kratochvil
  0 siblings, 1 reply; 10+ messages in thread
From: Pedro Alves @ 2012-07-25 13:51 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: gdb-patches

On 07/25/2012 02:47 PM, Jan Kratochvil wrote:

> That 'info procs' is in fact not needed, 'proc lreverse' definition is a nop
> with new Tcl (=it does not replace the built-in proc of the same name).
> But I have rather put the conditional there.

I agree; it's more self descriptive that way.

I would never imagine lreverse would be so "recent".

Thanks.

-- 
Pedro Alves


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [commit] [patch] testsuite: Fix Tcl < 7.5 regression   [Re: [PATCH] sigall.exp and friends: centralize signals list.]
  2012-07-25 13:51   ` Pedro Alves
@ 2012-07-25 20:18     ` Jan Kratochvil
  0 siblings, 0 replies; 10+ messages in thread
From: Jan Kratochvil @ 2012-07-25 20:18 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gdb-patches

On Wed, 25 Jul 2012 15:51:43 +0200, Pedro Alves wrote:
> I agree; it's more self descriptive that way.
> 
> I would never imagine lreverse would be so "recent".

Checked in:
	http://sourceware.org/ml/gdb-cvs/2012-07/msg00208.html


Thanks,
Jan


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2012-07-25 20:18 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-19 14:35 [PATCH] sigall.exp and friends: centralize signals list Pedro Alves
2012-07-19 17:24 ` Tom Tromey
2012-07-19 17:33   ` Pedro Alves
2012-07-19 19:17     ` Tom Tromey
2012-07-19 19:48       ` Pedro Alves
2012-07-19 19:58         ` Tom Tromey
2012-07-19 20:03         ` cleanup some fors in the testsuite (was: Re: [PATCH] sigall.exp and friends: centralize signals list.) Pedro Alves
2012-07-25 13:48 ` [patch] testsuite: Fix Tcl < 7.5 regression [Re: [PATCH] sigall.exp and friends: centralize signals list.] Jan Kratochvil
2012-07-25 13:51   ` Pedro Alves
2012-07-25 20:18     ` [commit] " Jan Kratochvil

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox