[PATCH] Fix some minor bugs in test suite command logging

Tom Tromey tom@tromey.com
Sat Oct 24 20:29:06 GMT 2020


I noticed that the test suite command logging would create a file like
"gdb.cmd.-1".  I tracked this down to a substraction in
standard_output_file_with_gdb_instance.

Then, I saw that the .in file was not created for MI.  This is fixed
by adding a call to default_mi_gdb_start.

Finally, commands might not end up in the .in file in some cases.  For
me this happened because the test took a long time, so I got impatient
and killed it.  Flushing the file after each write seemed like a good
thing to do here.

gdb/testsuite/ChangeLog
2020-10-24  Tom Tromey  <tom@tromey.com>

	* lib/mi-support.exp (default_mi_gdb_start): Call
	gdb_stdin_log_init.
	* lib/gdb.exp (standard_output_file_with_gdb_instance): Don't
	subtract one from gdb_instances.
	(gdb_stdin_log_write): Flush in_file.
---
 gdb/testsuite/ChangeLog          | 8 ++++++++
 gdb/testsuite/lib/gdb.exp        | 6 ++++--
 gdb/testsuite/lib/mi-support.exp | 6 ++++++
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index f53df59f181..e3017ee1408 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -5207,7 +5207,7 @@ proc standard_output_file {basename} {
 
 proc standard_output_file_with_gdb_instance {basename} {
     global gdb_instances
-    set count [expr $gdb_instances - 1 ]
+    set count $gdb_instances
 
     if {$count == 0} {
       return [standard_output_file $basename]
@@ -7210,8 +7210,10 @@ proc gdb_stdin_log_write { message {type standard} } {
         }
     }
 
-    #Write to the log
+    # Write to the log and make sure the output is there, even in case
+    # of crash.
     puts -nonewline $in_file "$message"
+    flush $in_file
 }
 
 # Write the command line used to invocate gdb to the cmd file.
diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp
index 3dea699a0b2..8e7b0ab79e2 100644
--- a/gdb/testsuite/lib/mi-support.exp
+++ b/gdb/testsuite/lib/mi-support.exp
@@ -206,6 +206,12 @@ proc default_mi_gdb_start { args } {
     global MIFLAGS
     global FORCE_SEPARATE_MI_TTY
 
+    # Keep track of the number of times GDB has been launched.
+    global gdb_instances
+    incr gdb_instances
+
+    gdb_stdin_log_init
+
     if {[info exists FORCE_SEPARATE_MI_TTY]} {
 	set separate_mi_pty $FORCE_SEPARATE_MI_TTY
     } else {
-- 
2.17.2



More information about the Gdb-patches mailing list