[MI/testsuite] mi_gdb_test: expected result priority?

Elena Zannoni ezannoni@redhat.com
Mon Jun 24 13:20:00 GMT 2002


Keith Seitz writes:
 > Hi,
 > 
 > I've been writing some MI tests for all the stuff that I've been adding,
 > and I ran across an anomaly...
 > 
 > When mi_gdb_test actually calls expect, it does:
 > 
 >     gdb_expect $tmt {
 > 	 -re "\\*\\*\\* DOSEXIT code.*" {
 > 	     if { $message != "" } {
 > 		 fail "$message";
 > 	     }
 > 	     gdb_suppress_entire_file "GDB died";
 > 	     return -1;
 > 	 }
 > 	 -re "Ending remote debugging.*$mi_gdb_prompt\[ \]*$" {
 > 	    if ![isnative] then {
 > 		warning "Can`t communicate to remote target."
 > 	    }
 > 	    gdb_exit
 > 	    gdb_start
 > 	    set result -1
 > 	}
 > 	 -re "(${question_string})$" {
 > 	    send_gdb "$response_string\n";
 > 	    exp_continue;
 > 	}
 > 	 -re "Undefined.* command:.*$mi_gdb_prompt\[ \]*$" {
 > 	    perror "Undefined command \"$command\"."
 >             fail "$message"
 > 	    set result 1
 > 	}
 > 	 -re "Ambiguous command.*$mi_gdb_prompt\[ \]*$" {
 > 	    perror "\"$command\" is not a unique command name."
 >             fail "$message"
 > 	    set result 1
 > 	}
 > 	 -re "\[\r\n\]*($pattern)\[\r\n\]+$mi_gdb_prompt\[ \]*$" {
 > 	    if ![string match "" $message] then {
 > 		pass "$message"
 > 	    }
 > 	    set result 0
 > 	}
 > 
 > 
 > The astute reader will notice that the _real_ expected pattern by the
 > caller is pre-empted by several other patterns. Therefore if one wanted to
 > write a test to check for the string "Ambiguous command", well, you'd
 > automatically get a fail. Likewise, if you wanted to write a test that
 > checked for the string "Undefined command: \"bogus\".  Try \"help\"."
 > (which I am trying to do), one is screwed.
 > 
 > Is there any particular reason to not move the real expected result
 > pattern higher in the list (like to/near the top or something)??
 > 
 > Keith


Hmm, nothing has changed in that procedure since day one. It is kind
of a copy of the gdb_test one in gdb.exp. Maybe you can rearrange the
patterns to be like gdb_test? The 'pass' occurs earlier in there.

Elena



More information about the Gdb mailing list