[1/2] testsuite: Introduce dejagnu_version

Message ID 20170313212749.9607-1-simon.marchi@ericsson.com
State New, archived
Headers

Commit Message

Simon Marchi March 13, 2017, 9:27 p.m. UTC
  The next patch will require checking the DejaGnu version.  There is
already a test that does this,
gdb.threads/attach-many-short-lived-threads.exp.  This patch introduces
a new procedure, dejagnu_version, and makes that test use it.

The version number is "right-padded" with zeroes, to make sure that we
always return a triplet (major, minor, patch).

The procedure does not consider the DejaGnu versions from git.  For
example, if you used DejaGnu from its current master branch, the version
would be "1.6.1-git", meaning that 1.6.1 will be the next release.  I
figured we'll cross that bridge when (and if) we get there.

gdb/testsuite/ChangeLog:

	* lib/gdb.exp (dejagnu_version): New proc.
	* gdb.threads/attach-many-short-lived-threads.exp (bad_dejagnu):
	Use dejagnu_version.
---
 .../attach-many-short-lived-threads.exp            |  8 +------
 gdb/testsuite/lib/gdb.exp                          | 26 ++++++++++++++++++++++
 2 files changed, 27 insertions(+), 7 deletions(-)
  

Comments

Pedro Alves March 13, 2017, 9:54 p.m. UTC | #1
OK.

Thanks,
Pedro Alves

On 03/13/2017 09:27 PM, Simon Marchi wrote:
> The next patch will require checking the DejaGnu version.  There is
> already a test that does this,
> gdb.threads/attach-many-short-lived-threads.exp.  This patch introduces
> a new procedure, dejagnu_version, and makes that test use it.
> 
> The version number is "right-padded" with zeroes, to make sure that we
> always return a triplet (major, minor, patch).
> 
> The procedure does not consider the DejaGnu versions from git.  For
> example, if you used DejaGnu from its current master branch, the version
> would be "1.6.1-git", meaning that 1.6.1 will be the next release.  I
> figured we'll cross that bridge when (and if) we get there.
> 
> gdb/testsuite/ChangeLog:
> 
> 	* lib/gdb.exp (dejagnu_version): New proc.
> 	* gdb.threads/attach-many-short-lived-threads.exp (bad_dejagnu):
> 	Use dejagnu_version.
> ---
>  .../attach-many-short-lived-threads.exp            |  8 +------
>  gdb/testsuite/lib/gdb.exp                          | 26 ++++++++++++++++++++++
>  2 files changed, 27 insertions(+), 7 deletions(-)
> 
> diff --git a/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp b/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
> index cd752ca496..edc96132e3 100644
> --- a/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
> +++ b/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
> @@ -24,13 +24,7 @@
>  # Return true if the running version of DejaGnu is known to not be
>  # able to run this test.
>  proc bad_dejagnu {} {
> -    global frame_version
> -
> -    verbose -log "DejaGnu version: $frame_version"
> -    verbose -log "Expect version: [exp_version]"
> -    verbose -log "Tcl version: [info tclversion]"
> -
> -    set dj_ver [split $frame_version .]
> +    set dj_ver [dejagnu_version]
>      set dj_ver_major [lindex $dj_ver 0]
>      set dj_ver_minor [lindex $dj_ver 1]
>  
> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
> index 188484f792..c773d41bae 100644
> --- a/gdb/testsuite/lib/gdb.exp
> +++ b/gdb/testsuite/lib/gdb.exp
> @@ -6023,6 +6023,32 @@ proc multi_line_input { args } {
>      return [join $args "\n"]
>  }
>  
> +# Return the version of the DejaGnu framework.
> +#
> +# The return value is a list containing the major, minor and patch version
> +# numbers.  If the version does not contain a minor or patch number, they will
> +# be set to 0.  For example:
> +#
> +#   1.6   -> {1 6 0}
> +#   1.6.1 -> {1 6 1}
> +#   2     -> {2 0 0}
> +
> +proc dejagnu_version { } {
> +    # The frame_version variable is defined by DejaGnu, in runtest.exp.
> +    global frame_version
> +
> +    verbose -log "DejaGnu version: $frame_version"
> +    verbose -log "Expect version: [exp_version]"
> +    verbose -log "Tcl version: [info tclversion]"
> +
> +    set dg_ver [split $frame_version .]
> +
> +    while { [llength $dg_ver] < 3 } {
> +	lappend dg_ver 0
> +    }
> +
> +    return $dg_ver
> +}
>  
>  # Always load compatibility stuff.
>  load_lib future.exp
>
  
Simon Marchi March 13, 2017, 10:03 p.m. UTC | #2
On 2017-03-13 17:54, Pedro Alves wrote:
> OK.
> 
> Thanks,
> Pedro Alves

Both patches pushed.

Thanks,

Simon
  

Patch

diff --git a/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp b/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
index cd752ca496..edc96132e3 100644
--- a/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
+++ b/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
@@ -24,13 +24,7 @@ 
 # Return true if the running version of DejaGnu is known to not be
 # able to run this test.
 proc bad_dejagnu {} {
-    global frame_version
-
-    verbose -log "DejaGnu version: $frame_version"
-    verbose -log "Expect version: [exp_version]"
-    verbose -log "Tcl version: [info tclversion]"
-
-    set dj_ver [split $frame_version .]
+    set dj_ver [dejagnu_version]
     set dj_ver_major [lindex $dj_ver 0]
     set dj_ver_minor [lindex $dj_ver 1]
 
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 188484f792..c773d41bae 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -6023,6 +6023,32 @@  proc multi_line_input { args } {
     return [join $args "\n"]
 }
 
+# Return the version of the DejaGnu framework.
+#
+# The return value is a list containing the major, minor and patch version
+# numbers.  If the version does not contain a minor or patch number, they will
+# be set to 0.  For example:
+#
+#   1.6   -> {1 6 0}
+#   1.6.1 -> {1 6 1}
+#   2     -> {2 0 0}
+
+proc dejagnu_version { } {
+    # The frame_version variable is defined by DejaGnu, in runtest.exp.
+    global frame_version
+
+    verbose -log "DejaGnu version: $frame_version"
+    verbose -log "Expect version: [exp_version]"
+    verbose -log "Tcl version: [info tclversion]"
+
+    set dg_ver [split $frame_version .]
+
+    while { [llength $dg_ver] < 3 } {
+	lappend dg_ver 0
+    }
+
+    return $dg_ver
+}
 
 # Always load compatibility stuff.
 load_lib future.exp