ITK icon indicating copy to clipboard operation
ITK copied to clipboard

DCMTK tests failing

Open blowekamp opened this issue 1 year ago • 6 comments

The following tests are failing when DCMTKImageIO is enabled: 963 - itkDCMTKImageIOTest1 (Failed) 965 - itkDCMTKImageIOTest3 (Failed) 968 - itkDCMTKDirCosinesTest (Failed) 976 - itkDCMTKImageIOSlopeInterceptTest (Failed) 977 - itkDCMTKImageIONoPreambleTest (Failed)

Running git bisect determined the errors began with the following commit:

commit f89399aa35ea620b078c9564dc3f9e3f1a2e99ae Author: Hans Johnson [email protected] Date: Mon Jan 17 17:05:27 2022 -0600

ENH: Update DCMTK to more modern codebase

Update to remove deprecated cmake usages.

blowekamp avatar Sep 23 '22 15:09 blowekamp

@hjmjohnson

blowekamp avatar Sep 23 '22 15:09 blowekamp

@blowekamp It might be a few days before I can tackle this issue. Thanks for tracking it down.

I'm a little surprised this did not surface til now.

hjmjohnson avatar Sep 23 '22 17:09 hjmjohnson

I don't think DCMTK is enable on systems besides the AWS BATCH valgrind and coverage builds.

blowekamp avatar Sep 23 '22 18:09 blowekamp

Sorry to chime in.

I'm a little surprised this did not surface til now.

I think those tests have been failing for some time now. But yes, as the module is not active for most builds, they might have been less noticeable.

Valgrind has been reporting defects for some time as well: https://open.cdash.org/viewDynamicAnalysis.php?buildid=8177016

Another potentially related issue might be #2735. Relevant to the module: #2798 #2817 #2872

jhlegarreta avatar Sep 25 '22 13:09 jhlegarreta

I could reproduce failed tests locally, gcc version 12.2.0 (Debian 12.2.0-3),

commit f89399a

tests don't fail after reverting this commit. Tried with current master and the reverted commit f89399a :

100% tests passed, 0 tests failed out of 15

issakomi avatar Sep 30 '22 00:09 issakomi

Pinging @hjmjohnson 😄

dzenanz avatar Sep 30 '22 14:09 dzenanz

@hjmjohnson @dzenanz @jhlegarreta pinging everyone as these tests are still failing.

blowekamp avatar Nov 03 '22 13:11 blowekamp

Unfortunately, I think I cannot be of help here as I cannot build the DCMTK IO module: #2817.

jhlegarreta avatar Nov 03 '22 13:11 jhlegarreta

tests don't fail after reverting this commit. Tried with current master and the reverted commit f89399a :

100% tests passed, 0 tests failed out of 15

-- Info: DCMTK will compile without any default dictionary
-- Info: DCMTK will load dictionaries defined by DCMDICTPATH environment variable
-- Info: DCMTK's builtin private dictionary support will be enabled

The first and second lines above are suspicious. Not sure, but maybe it is related.

issakomi avatar Nov 04 '22 15:11 issakomi

-- Info: DCMTK will compile without any default dictionary -- Info: DCMTK will load dictionaries defined by DCMDICTPATH environment variable

Yes, it is the reason, hard to find out because error messages from the failed tests are somewhat misleading, e.g. failed to open a file or no image data. After setting DCMDICTPATH the tests are OK again, s. output below.

r@deb2:~/itk/build/Modules/IO/DCMTK/test$ make test
Running tests...
Test project /home/r/itk/build/Modules/IO/DCMTK/test
      Start  1: itkDCMTKImageIOTest1
 1/15 Test  #1: itkDCMTKImageIOTest1 ...................***Failed    0.02 sec
      Start  2: itkDCMTKImageIOTest2
 2/15 Test  #2: itkDCMTKImageIOTest2 ...................   Passed    0.03 sec
      Start  3: itkDCMTKImageIOTest3
 3/15 Test  #3: itkDCMTKImageIOTest3 ...................***Failed    0.02 sec
      Start  4: itkDCMTKImageIOTest4
 4/15 Test  #4: itkDCMTKImageIOTest4 ...................   Passed    0.02 sec
      Start  5: itkDCMTKSeriesReadImageWrite
 5/15 Test  #5: itkDCMTKSeriesReadImageWrite ...........   Passed    0.03 sec
      Start  6: itkDCMTKDirCosinesTest
 6/15 Test  #6: itkDCMTKDirCosinesTest .................***Failed    0.02 sec
      Start  7: itkDCMTKSeriesStreamReadImageWrite1
 7/15 Test  #7: itkDCMTKSeriesStreamReadImageWrite1 ....   Passed    0.04 sec
      Start  8: itkDCMTKSeriesImageOrientationWrite1
 8/15 Test  #8: itkDCMTKSeriesImageOrientationWrite1 ...   Passed    0.03 sec
      Start  9: itkDCMTKImageIOOrthoDirTest
 9/15 Test  #9: itkDCMTKImageIOOrthoDirTest ............   Passed    0.02 sec
      Start 10: itkDCMTKMultiFrame4DTest
10/15 Test #10: itkDCMTKMultiFrame4DTest ...............   Passed    0.64 sec
      Start 11: itkDCMTKImageIONonSquareTest
11/15 Test #11: itkDCMTKImageIONonSquareTest ...........   Passed    0.08 sec
      Start 12: itkDCMTKRGBImageIOColorImageTest
12/15 Test #12: itkDCMTKRGBImageIOColorImageTest .......   Passed    0.06 sec
      Start 13: ITKDCMTKLoggerTest
13/15 Test #13: ITKDCMTKLoggerTest .....................   Passed    0.01 sec
      Start 14: itkDCMTKImageIOSlopeInterceptTest
14/15 Test #14: itkDCMTKImageIOSlopeInterceptTest ......***Failed    0.02 sec
      Start 15: itkDCMTKImageIONoPreambleTest
15/15 Test #15: itkDCMTKImageIONoPreambleTest ..........***Failed    0.01 sec

67% tests passed, 5 tests failed out of 15

Label Time Summary:
ITKIODCMTK    =   1.05 sec*proc (15 tests)

Total Test time (real) =   1.05 sec

The following tests FAILED:
	  1 - itkDCMTKImageIOTest1 (Failed)
	  3 - itkDCMTKImageIOTest3 (Failed)
	  6 - itkDCMTKDirCosinesTest (Failed)
	 14 - itkDCMTKImageIOSlopeInterceptTest (Failed)
	 15 - itkDCMTKImageIONoPreambleTest (Failed)
Errors while running CTest
Output from these tests are in: /home/r/itk/build/Modules/IO/DCMTK/test/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
make: *** [Makefile:91: test] Error 8




r@deb2:~/itk/build/Modules/IO/DCMTK/test$ export DCMDICTPATH=/home/r/dicom.dic 




r@deb2:~/itk/build/Modules/IO/DCMTK/test$ make test
Running tests...
Test project /home/r/itk/build/Modules/IO/DCMTK/test
      Start  1: itkDCMTKImageIOTest1
 1/15 Test  #1: itkDCMTKImageIOTest1 ...................   Passed    0.04 sec
      Start  2: itkDCMTKImageIOTest2
 2/15 Test  #2: itkDCMTKImageIOTest2 ...................   Passed    0.04 sec
      Start  3: itkDCMTKImageIOTest3
 3/15 Test  #3: itkDCMTKImageIOTest3 ...................   Passed    0.03 sec
      Start  4: itkDCMTKImageIOTest4
 4/15 Test  #4: itkDCMTKImageIOTest4 ...................   Passed    0.03 sec
      Start  5: itkDCMTKSeriesReadImageWrite
 5/15 Test  #5: itkDCMTKSeriesReadImageWrite ...........   Passed    0.04 sec
      Start  6: itkDCMTKDirCosinesTest
 6/15 Test  #6: itkDCMTKDirCosinesTest .................   Passed    0.07 sec
      Start  7: itkDCMTKSeriesStreamReadImageWrite1
 7/15 Test  #7: itkDCMTKSeriesStreamReadImageWrite1 ....   Passed    0.05 sec
      Start  8: itkDCMTKSeriesImageOrientationWrite1
 8/15 Test  #8: itkDCMTKSeriesImageOrientationWrite1 ...   Passed    0.04 sec
      Start  9: itkDCMTKImageIOOrthoDirTest
 9/15 Test  #9: itkDCMTKImageIOOrthoDirTest ............   Passed    0.03 sec
      Start 10: itkDCMTKMultiFrame4DTest
10/15 Test #10: itkDCMTKMultiFrame4DTest ...............   Passed    1.24 sec
      Start 11: itkDCMTKImageIONonSquareTest
11/15 Test #11: itkDCMTKImageIONonSquareTest ...........   Passed    0.09 sec
      Start 12: itkDCMTKRGBImageIOColorImageTest
12/15 Test #12: itkDCMTKRGBImageIOColorImageTest .......   Passed    0.07 sec
      Start 13: ITKDCMTKLoggerTest
13/15 Test #13: ITKDCMTKLoggerTest .....................   Passed    0.01 sec
      Start 14: itkDCMTKImageIOSlopeInterceptTest
14/15 Test #14: itkDCMTKImageIOSlopeInterceptTest ......   Passed    0.03 sec
      Start 15: itkDCMTKImageIONoPreambleTest
15/15 Test #15: itkDCMTKImageIONoPreambleTest ..........   Passed    0.03 sec

100% tests passed, 0 tests failed out of 15

Label Time Summary:
ITKIODCMTK    =   1.85 sec*proc (15 tests)

Total Test time (real) =   1.86 sec

issakomi avatar Nov 05 '22 01:11 issakomi

I think that I know how to fix.

Before:

-- Info: DCMTK will compile without any default dictionary
-- Info: DCMTK will load dictionaries defined by DCMDICTPATH environment variable

After:

-- Info: DCMTK will compile with built-in (compiled-in) default dictionary
-- Info: DCMTK will load dictionaries defined by DCMDICTPATH environment variable

issakomi avatar Nov 05 '22 01:11 issakomi