Hi, I think I found a bug in proc unknown in lib/framework.exp.
Patch describing the problem and fixing it attached below. Thanks, - Tom
Propagate return value of auto-loaded command Consider a library file foo.tcl: ... $ cat lib/foo.tcl proc foo { } { return "foo-return" } ... and a test-case test.tcl: ... $ cat test.tcl \#!/usr/bin/tclsh auto_mkindex lib *.tcl lappend auto_path [pwd]/lib set res [foo] puts "RES: $res" ... which gives us: ... $ ./test.tcl RES: foo-return ... When overriding the ::unknown command using: ... rename ::unknown ::tcl_unknown proc unknown args { if {[catch {uplevel 1 ::tcl_unknown $args} msg]} { puts "ERROR: proc \"$args\" does not exist." exit } } ... we have instead: ... $ ./test.tcl RES: ... What is missing, is the propagation of the return value of foo, like this: ... puts "ERROR: proc \"$args\" does not exist." exit } -} +} else { + return $msg +} ... Fix unknown in lib/framework.exp accordingly. ChangeLog: 2020-06-17 Tom de Vries <tdevr...@suse.de> * lib/framework.exp (unknown): Propagate return value of auto-loaded command. --- lib/framework.exp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/framework.exp b/lib/framework.exp index e6ce197..c9875d2 100644 --- a/lib/framework.exp +++ b/lib/framework.exp @@ -272,6 +272,9 @@ proc unknown args { } set exit_status 2 log_and_exit + } else { + # Propagate return value. + return $msg } }
_______________________________________________ Bug-dejagnu mailing list Bug-dejagnu@gnu.org https://lists.gnu.org/mailman/listinfo/bug-dejagnu