[Insight-developers] Roll-call of ITK Regression Tests that crash if Floating Point Exceptions are turned on.

Gordon L. Kindlmann glk at uchicago.edu
Mon Nov 1 10:36:05 EDT 2010


Yes, that is what's trying to do, to ensure that all the compile-time  
assumptions about value representation (including QNaN vs SNaN) in  
fact hold in the current platform.  The "assume good faith" wikipedia  
principle may have some relevance here.

The suggestion to allow pushing and popping the FP exceptions seems  
like a great idea.

Gordon

On Nov 1, 2010, at 9:03 AM, kent williams wrote:

> It is trying to compute NaN at runtime, which it does to see if it is
> running on a system compatible with the one it was built on,  
> according to
> comments.
>
> The fix -- I guess, is to add methods to the FloatingPointExceptions  
> class
> so that the NRRD reader can push the current exception state, mask
> exceptions and then pop  the exception state.
>
>
> On 10/29/10 6:48 PM, "Bill Lorensen" <bill.lorensen at gmail.com> wrote:
>>
>> I think that nrrd is failing on purpose.
>>
>>
>> On Fri, Oct 29, 2010 at 6:13 PM, kent williams
>> <norman-k-williams at uiowa.edu> wrote:
>>> I guess I can log a bug for each, and then try and fix them  
>>> myself, but
>>> there are more than I can probably handle by myself, and having  
>>> just spent
>>> an hour in GDB trying to figure just one out, I could be at it  
>>> quite some
>>> time.
>>>
>>> THE GOOD NEWS -- there are 5 'real' issues -- I've fixed one, Bill  
>>> Lorensen
>>> has fixed a second, leaving 3 real problems that need addressing.
>>>
>>> THE BAD NEWS -- The NRRD reader is insane. It calls a function  
>>> called
>>> airSanity before it does anything useful, and the first thing that  
>>> function
>>> does is to compute DBL_MAX cubed.  The NRRD reader is incompatible  
>>> with
>>> numeric exception checking -- on purpose!
>>>
>>> This patch fixes the numeric exception:
>>>
>>> diff --git a/Utilities/NrrdIO/simple.c b/Utilities/NrrdIO/simple.c
>>> index e716cd6..c37d2e0 100644
>>> --- a/Utilities/NrrdIO/simple.c
>>> +++ b/Utilities/NrrdIO/simple.c
>>> @@ -1348,7 +1348,8 @@ nrrdSanity(void) {
>>>     return 1;
>>>   }
>>>
>>> -  aret = airSanity();
>>> +  // aret = airSanity();
>>> +  aret = airInsane_not;
>>>   if (aret != airInsane_not) {
>>>     if (airInsane_32Bit == aret) {
>>>       biffAddf(NRRD, "%s: (sizeof(size_t) == %u, not %u)", me,
>>>
>>> THE TESTS:
>>>    146 - itkSampleToHistogramFilterTest7 (OTHER_FAULT) -- I  
>>> started looking
>>> at this one, and it basically should have never worked.  It falls  
>>> afoul of
>>> mixed float/int calculations and ends up overflowing integer  
>>> vectors all
>>> over the place.
>>>
>>>    287 - itkColorTableTest (OTHER_FAULT) -- Bill Lorensen has a  
>>> fix for
>>> this one, not yet pushed to master.
>>>
>>>    987 - itkQuadEdgeMeshNormalFilterTest (OTHER_FAULT) -- first  
>>> fails
>>> trying to compute acos(220)
>>>
>>> TESTS THAT FAIL DUE TO THE NRRD READER:
>>>
>>>  498 - itkVectorImageTest (OTHER_FAULT)
>>>    1070 - itkNrrdImageIOTest1 (OTHER_FAULT)
>>>    1071 - itkNrrdImageIOTest2 (OTHER_FAULT)
>>>    1089 - itkVectorImageReadWriteTest2 (OTHER_FAULT)
>>>    1091 - itkSymmetricSecondRankTensorImageReadTest (OTHER_FAULT)
>>>    1099 - itkImageFileWriterTest2_1 (OTHER_FAULT)
>>>    1104 - itkImageFileReaderDimensionsTest_NRRD (OTHER_FAULT)
>>>    1107 - itkImageFileReaderStreamingTest_3 (OTHER_FAULT)
>>>    1110 - itkImageFileWriterStreamingPastingCompressingTest_NRR D
>>> (OTHER_FAULT)
>>>    1111 - itkImageFileWriterStreamingPastingCompressingTest_NHDR
>>> (OTHER_FAULT)
>>>    1231 - itkNrrdImageReadWriteTest1 (OTHER_FAULT)
>>>    1232 - itkNrrdImageReadWriteTest2 (OTHER_FAULT)
>>>    1233 - itkNrrdImageReadWriteTest3 (OTHER_FAULT)
>>>    1234 - itkNrrdImageReadWriteTest4 (OTHER_FAULT)
>>>    1235 - itkNrrdImageReadWriteTest5 (OTHER_FAULT)
>>>    1236 - itkNrrdImageReadWriteTest6 (OTHER_FAULT)
>>>    1237 - itkNrrdImageReadWriteTest7 (OTHER_FAULT)
>>>    1238 - itkNrrdImageReadWriteTest8 (OTHER_FAULT)
>>>    1239 - itkNrrdImageReadWriteTest9 (OTHER_FAULT)
>>>    1240 - itkNrrdImageReadWriteTest10 (OTHER_FAULT)
>>>    1241 - itkNrrdImageReadWriteTest11 (OTHER_FAULT)
>>>    1242 - itkNrrdRGBImageReadWriteTest0 (OTHER_FAULT)
>>>    1243 - itkNrrdRGBImageReadWriteTest1 (OTHER_FAULT)
>>>    1244 - itkNrrdRGBImageReadWriteTest2 (OTHER_FAULT)
>>>    1245 - itkNrrdRGBAImageReadWriteTest (OTHER_FAULT)
>>>    1246 - itkNrrdDiffusionTensor3DImageReadTest1 (OTHER_FAULT)
>>>    1247 - itkNrrdDiffusionTensor3DImageReadTest2 (OTHER_FAULT)
>>>    1248 - itkNrrdDiffusionTensor3DImageReadTest3 (OTHER_FAULT)
>>>    1249 - itkNrrdDiffusionTensor3DImageReadWriteTest (OTHER_FAULT)
>>>    1250 - itkNrrdDiffusionTensor3DImageReadWriteTest4 (OTHER_FAULT)
>>>    1251 -  
>>> itkNrrdDiffusionTensor3DImageReadTensorDoubleWriteTensorDouble
>>> (OTHER_FAULT)
>>>    1252 - itkNrrdComplexImageReadTest (OTHER_FAULT)
>>>    1253 - itkNrrdComplexImageReadWriteTest (OTHER_FAULT)
>>>    1254 - itkNrrdVectorImageReadTest (OTHER_FAULT)
>>>    1255 - itkNrrdVectorImageReadWriteTest (OTHER_FAULT)
>>>    1256 - itkNrrdCovariantVectorImageReadTest (OTHER_FAULT)
>>>    1257 - itkNrrdCovariantVectorImageReadWriteTest (OTHER_FAULT)
>>>    1262 - itkImageIODirection3DTest05 (OTHER_FAULT)
>>>    1263 - itkImageIODirection3DTest06 (OTHER_FAULT)
>>>    1277 - itkImageIODirection2DTest11 (OTHER_FAULT)
>>>    1278 - itkImageIODirection2DTest12 (OTHER_FAULT)
>>>    1279 - itkImageIODirection2DTest13 (OTHER_FAULT)
>>>    1280 - itkImageIODirection2DTest14 (OTHER_FAULT)
>>>    1281 - itkImageIODirection2DTest15 (OTHER_FAULT)
>>>    1530 - itkGridImageSourceTest1 (OTHER_FAULT)
>>>    1531 - itkGridImageSourceTest2 (OTHER_FAULT)
>>>    1532 - itkGridImageSourceTest3 (OTHER_FAULT)
>>>    1533 - itkGridImageSourceTest4 (OTHER_FAULT)
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Kitware offers ITK Training Courses, for more information visit:
>>> http://kitware.com/products/protraining.html
>>>
>>> Please keep messages on-topic and check the ITK FAQ at:
>>> http://www.itk.org/Wiki/ITK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.itk.org/mailman/listinfo/insight-developers
>>>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers
>



More information about the Insight-developers mailing list