Thanks, I'll try that. It doesn't matter if it is cross-platform. I just need it for a test file on my own computer that I don't intend to put in master (or at least, not the slow ones so long as they are slow).
Aaron Meurer On Jun 2, 2010, at 3:42 PM, Ondrej Certik wrote: > On Wed, Jun 2, 2010 at 10:25 AM, Aaron S. Meurer <[email protected]> wrote: >> Does anyone know how to make a test that times out? For my GSoC project, I >> am gathering up all the failing integrals from the issues into a file of >> XFAIL tests, so I can see if any of them ever pass. The problem is that >> many integrals fail not by traceback or by returning an unevaluated >> Integral, but by simply hanging. So is there a way that I can say, "if this >> test takes longer than, say, a minute, then fail, but let it run that long >> in case it might pass"? Something like: >> >> @XFAIL >> def test_some_issue(): >> assert run_with_timeout("integrate(hard_integral, x)", 60) == >> the_answer >> >> and run_with_timeout will return the result if it finishes in less than 60 >> seconds, or else raise some kind of exception. I know that Goolge has >> something like this underlying all Python executions in their AppEngine, but >> I think it is in-house code. For example, go to live.sympy.com and run: >> >> var('m n a b c') >> integrate((x**m * (1 - x)**n * (a + b*x + c*x**2))/(1 + x**2), x) # from >> issue 1426 >> >> And you will get DeadlineExceededError. > > Yes, I think that one can use signals to do that, but I am not sure if > it's cross platform. See the example at the end of this page: > > http://docs.python.org/library/signal.html > > Ondrej > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
