Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#524 closed bug (invalid)

could not send/received undefined identifiers via ssi

Reported by: kroeker@… Owned by: somebody
Priority: minor Milestone: 3-2-0 and higher
Component: singular-kernel Version:
Keywords: ssi undefined identifier Cc:

Description

Applies to all test, which ends in an infinite loop in case of failure.

Since watchdog behaves at least courious, it is not possible or recommended(?) to limit the runtime for a specific test from a test collection inside that test.

However, it is possible to utilize the new ability of 'regress.cmd' (option '-A' in spielwiese).

minimal Proposal:

let 'regress.cmd' check for a file

$tst_file.timelimit

If the file exists, extract the number inside that file and use it as specific timelimit. If regress.cmd was already used with the option '-A', then the smallest limit value (>0) wins.

Change History (6)

comment:1 Changed 9 years ago by kroeker@…

oops, please remove the milestone value of this ticket and set it to empty milestone.

comment:2 Changed 9 years ago by hannes

Resolution: invalid
Status: newclosed

If you want a limit outside of Singular: the shell provides it: see limit/ulimit. Inside Singular, there are several possibilitiesi beside watchdog: waitfirst/waitall, or even system("alarm",<int>); (abort after that many seconds).

comment:3 Changed 9 years ago by kroeker@…

I like to set a limit for a specific test using the regress.cmd framework.

Do you have a working simple example for achieving that using 'waitall'?

The

 system("alarm",<int>);

command seems to do nothing on my system.

comment:4 Changed 9 years ago by kroeker@…

ok, here is a small example which has more details than the example

www.singular.uni-kl.de/Manual/latest/sing_116.htm#SEC156

from the manual

link l1 = "ssi:fork"; //fork the current process
open(l1);

//evauales '1-1' before writing, but not 'ring(...)'; see documentation of 'quote'
write( l1, quote(ring(1-1,x,dp)) );
waitfirst( list(l1), 1000); // waits 1 second.
if( status(l1,"read")=="ready" )
{
  def result=read(l1);
  result;
}
else { ERROR("command failed"); }
close(l1);

comment:5 Changed 9 years ago by hannes

Component: dontKnowsingular-kernel
Keywords: ssi undefined identifier added; time limit test regress.cmd removed
Summary: individual timelimit for testcould not send/received undefined identifiers via ssi
Type: proposed featurebug

comment:6 Changed 9 years ago by kroeker@…

Mhh, it seems we have a misunderstanding here.

The timeout issue should be closed with "wont fix"

since an alternative solution with ssi:fork is possible.

The example above was just for additional info. The fork example fails in master but works in spielwiese. => This should be a new issue.

Note: See TracTickets for help on using tickets.