This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ld tests hang on older arm-linux hosts


Hi Richard,

The new init-array family of tests are spinning for ever on some older
arm-linux platforms (where there appears to be a bug in ld-linux.so).

The test framework executes a generated test using

catch "exec $binfile > $binfile.out" exec_output

but this doesn't take a timeout, so if the executable doesn't terminate
the testsuite just hangs.  I think it needs to use the remote_exec (or
local_exec) proc in dejagnu's remote.exp framework file which can take a
timeout, but my expect knowledge is limited and I've been unsuccessful
in producing a viable patch.

Are you still struggling with this ?


If so then I think that it may be file redirection that is causing the problems. For example I found that replacing this:

	    set failed 0
	    send_log "Running: $binfile > $binfile.out\n"
	    verbose "Running: $binfile > $binfile.out"
	    catch "exec $binfile > $binfile.out" exec_output
	
	    if ![string match "" $exec_output] then {
		send_log "$exec_output\n"
		verbose "$exec_output" 1
		set failed 1
	    } else {

with this:

	    set failed 0
	    send_log "Running: $binfile\n"
	    verbose "Running: $binfile"
	    set tmp [local_exec $binfile "" "" 100]
	    set status [lindex $tmp 0]
	    set bin_output [lindex $tmp 1]
	
	    if { $status != 0 } then {
		set failed 1
	    } else {

worked. Of course at this point you have the output of the program in a variable called $bin_output but the code is about to go on and do a "diff $binfile.out...." but I am sure that you can fix that.

Also you would probably want the timeout to be set on a per-target basis and not hardcoded to 100.

Cheers
  Nick


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]