On Thu, Aug 16, 2007 at 06:52:47PM +0100, Andrew Ross wrote:
> On Thu, Aug 16, 2007 at 08:56:31AM -0700, Alan Irwin wrote:
> > (2) For exactly the same revision as last night (i.e., without your recent
> > workaround to disable example 21) and with python2.4-numeric-ext installed,
> > the error messages from ctest turned into
> > 
> > *** PLPLOT ERROR ***
> > plw3d: Invalid axis range, aborting operation
> > 
> > *** PLPLOT WARNING ***
> > plot3dcl: Maximum and minimum Z values are equal! "fixing"...
> > 
> > *** PLPLOT ERROR ***
> > plw3d: Invalid axis range, aborting operation
> > 
> > ....
> > 
> > -- Process completed
> >    Passed
> > 
> > The following tests passed:
> >         examples_python
> > 
> > 
> > >From your remarks and my later successful test with your workaround (see 3
> > below) those errors are due to example 21 (without your update to disable
> > it).  But why do all those PLPLOT ERRORs not propagate to the overall test
> > status? If somebody ran the test without verbose, they would be convinced
> > all was well with python even when example 21 has problems. The question
> > boils down to why a python error such as a missing module generates a
> > non-zero status code (which we do test for in test/test_python.sh), but
> > PLPLOT ERROR does not. Hope you know how to fix this PLPLOT ERROR irritation
> > with ctest (which I assume is a general PLplot problem and nothing
> > specifically to do with our python interface).
> 
> This is nothing to do with python - a quick test with the C examples
> shows the same thing if you make zg all zeros in example 21 (this is
> what is returned by griddata in the faulty Numeric case). The reason
> appears to be that the PLPLOT ERROR is not actually treated like an
> error - the program continues regardless. If it really is an error then
> the programme would abort with an error code. It's the program error code 
> that ctest picks up. If we decide it should continue in this case, then
> the error should be a warning. 

The reason is that plabort does not abort the program. It is used to
abort a given plplot function call. It can optionally set an error flag
or call a user-defined function (although this won't work with most bindings 
since plsError and plsabort are not in the CAPI and we can't pass
function pointers from most languages).

plexit is used for really fatal errors, such as malloc failures. This
will terminate the program with an error code.

Changing this is a big philosophical change. Is failure to draw an axis
because the user passed invalid parameters really a cause to exit the
whole program?

I suspect all this was written before the large number of bindings were
available. For the C bindings the user always has a choice to set their
own handlers. For e.g. python there is little difference between a
warning and an abort.

Andrew



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to