openexr: 23 tests fail on Darwin PPC, mostly with: err_cb ERROR 6: File is not an OpenEXR file: magic 0x762F3101 (1982804225) flags 0x02020000

79% tests passed, 23 tests failed out of 112

Total Test time (real) = 3074.38 sec

The following tests FAILED:
	  7 - OpenEXRCore.testAttrSizes (Subprocess aborted)
	 18 - OpenEXRCore.testOpenScans (Subprocess aborted)
	 19 - OpenEXRCore.testOpenTiles (Subprocess aborted)
	 21 - OpenEXRCore.testOpenDeep (Subprocess aborted)
	 22 - OpenEXRCore.testReadScans (Subprocess aborted)
	 23 - OpenEXRCore.testReadTiles (Subprocess aborted)
	 25 - OpenEXRCore.testReadDeep (Subprocess aborted)
	 26 - OpenEXRCore.testReadUnpack (Subprocess aborted)
	 35 - OpenEXRCore.testWriteAttrs (Subprocess aborted)
	 37 - OpenEXRCore.testWriteTiles (Subprocess aborted)
	 41 - OpenEXRCore.testNoCompression (Subprocess aborted)
	 42 - OpenEXRCore.testRLECompression (Subprocess aborted)
	 43 - OpenEXRCore.testZIPCompression (Subprocess aborted)
	 44 - OpenEXRCore.testZIPSCompression (Subprocess aborted)
	 46 - OpenEXRCore.testPXR24Compression (Subprocess aborted)
	 47 - OpenEXRCore.testB44Compression (Subprocess aborted)
	 48 - OpenEXRCore.testB44ACompression (Subprocess aborted)
	 60 - OpenEXR.testCompression (Subprocess aborted)
	 94 - OpenEXR.testRgba (Subprocess aborted)
	 95 - OpenEXR.testRgbaThreading (Subprocess aborted)
	 97 - OpenEXR.testSampleImages (Subprocess aborted)
	 99 - OpenEXR.testSharedFrameBuffer (Subprocess aborted)
	104 - OpenEXR.testTiledRgba (Subprocess aborted)
Errors while running CTest

Many of those failures look identically:

37/112 Testing: OpenEXRCore.testWriteTiles
37/112 Test: OpenEXRCore.testWriteTiles
Command: "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_graphics_openexr/openexr/work/build/bin/OpenEXRCoreTest" "testWriteTiles"
Directory: /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_graphics_openexr/openexr/work/build/src/test/OpenEXRCoreTest
"OpenEXRCore.testWriteTiles" start time: May 12 08:17 CST
Output:
----------------------------------------------------------
tempDir = '/var/tmp/OpenEXR_LNbCWD/': 24

=======
Running testWriteTiles
err_cb EXR_ERR_FILE_BAD_HEADER (6): File is not an OpenEXR file: magic 0x762F3101 (1982804225) flags 0x02020000
Return Error: (6) File is not an OpenEXR file or has a bad header value
Core Test failed: exr_start_read (&f, fn.c_str (), &cinit)
           file:/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_graphics_openexr/openexr/work/openexr-3.1.7/src/test/OpenEXRCoreTest/write.cpp
           line:1204
       function:void testWriteTiles(const std::string&)
<end of output>
Test time =   1.00 sec
----------------------------------------------------------
Test Failed.

What goes wrong and how to fix it?

P. S. I had to switch openexr to use a generic fallback with pthread instead of libdispatch, which is not supported on PPC (and does not exist prior to 10.6). This should be fixed in the master, I believe.

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 39 (38 by maintainers)

Commits related to this issue

Most upvoted comments

I believe this issue was resolved in the v3.1.8 release, but feel free to reopen if anything is still amiss, thanks.

There should already be tight packing around all the structures that are direct read into core, or they shouldn’t assume tight packing (i.e. we can change the code to make 3 reads, bit more overhead), but that was also the point of the validation.

As a side note, I did find via visual inspection one field which was not properly handling big / little endian when reading / processing chunks from the file where it validates the data in the mini chunk header at each chunk (i.e. a tile has the x,y,level,size), that will get merged in soon.

I think “minimize” is fine, splitting them doesn’t give us better or different control of behavior.