Opened 9 years ago
Last modified 8 years ago
#570 new defect
better custom model error diagnostics
Reported by: | pkienzle | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | SasView Next Release +1 |
Component: | SasView | Keywords: | |
Cc: | Work Package: | SasView Bug Fixing |
Description
When defining a custom model but having a bad parameter table, the custom model compile menu item claimed that the model loaded without difficulty. Similarly when there were errors in the C code for the model.
The compile button needs to run the model with some nominal value (e.g., Iq([0.1, 0.2, 0.3]) and Iqxy([0.1, 0.2, 0.3], [0.1, 0.2, 0.3]) to make sure that the model runs with the default parameters. Any errors returned by the compiler should be displayed.
Check that errors are captured and returned for bad opencl models on the various OpenCL environments (mac GPU, mac CPU, windows nvidia, windows radeon, windows intel) and for kerneldll under windows with the tcc compiler.
For pure python models, check that python code with Iq.vectorized=True but if statements in the code shows the correct errors.
These tests belong in the sasmodels package. Make sure that the appropriate compiler output gets captured as part of the test. The sasview gui only needs to demonstrate that bad output gets displayed to the user, but does not need to run the tests as part of the test suite.
Change History (4)
comment:1 Changed 9 years ago by pkienzle
comment:2 Changed 9 years ago by pkienzle
Models are tested and errors are displayed, but this has not yet been tested on all platforms.
comment:3 Changed 8 years ago by pkienzle
I've had a syntax error in C code crash SasView? when running OpenCL on a GPU on Windows. Not sure which GPU it was. Perhaps the model test could be run in a separate process so we can trap this kind of error?
comment:4 Changed 8 years ago by butler
- Milestone changed from SasView 4.0.0 to SasView Next Release +1
Don't have bandwidth to deal with for 4.0 release which is already way way late. Moving to +1
Errors will be easier to debug if we have the correct file number and line number. The #line compiler directive may help in this regard.