Test suite failures on big-endian architectures
- Dominant language
- C++
- Stars
- 262
- Forks
- 110
- PR merge metrics
- No merged PRs in 30d
Description
Hi,
I'm the Debian maintainer of exempi
Exempi is a port of the Adobe XMP SDK to work on UNIX and to be built with autotools.
https://gitlab.freedesktop.org/libopenraw/exempi
Running the test suite on various architectures, results in the following failure on big-endian architectures like s390x:
```
FAIL: tests/testcore
====================
Running ../samples/source/dumpmainxmp ./../samples/testfiles/BlueSquare.ai
Running ../samples/source/dumpmainxmp ./../samples/testfiles/BlueSquare.eps
Running ../samples/source/dumpmainxmp ./../samples/testfiles/BlueSquare.gif
terminate called after throwing an instance of 'XMP_Error'
Aborted
Failed
FAIL tests/testcore.sh (exit status: 255)
```
A backtrace of running the test manually:
```
Starting program: /home/biebl/exempi/exempi-2.6.2/samples/source/dumpmainxmp samples/testfiles/BlueSquare.gif
Program received signal SIGABRT, Aborted.
0x000003fffd7c1d60 in raise () from /lib/s390x-linux-gnu/libc.so.6
#0 0x000003fffd7c1d60 in raise () from /lib/s390x-linux-gnu/libc.so.6
No symbol table info available.
#1 0x000003fffd7a495c in abort () from /lib/s390x-linux-gnu/libc.so.6
No symbol table info available.
#2 0x000003fffdbc9736 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/s390x-linux-gnu/libstdc++.so.6
No symbol table info available.
#3 0x000003fffdbc7026 in ?? () from /usr/lib/s390x-linux-gnu/libstdc++.so.6
No symbol table info available.
#4 0x000003fffdbc70a0 in std::terminate() () from /usr/lib/s390x-linux-gnu/libstdc++.so.6
No symbol table info available.
#5 0x000003fffdbc7392 in __cxa_throw () from /usr/lib/s390x-linux-gnu/libstdc++.so.6
No symbol table info available.
#6 0x000002aa00024b1c in TXMPFiles, std::allocator > >::OpenFile (
this=this@entry=0x3ffffffee70, filePath=filePath@entry=0x3fffffff7ad "samples/testfiles/BlueSquare.gif",
format=format@entry=538976288, openFlags=openFlags@entry=1) at ../../public/include/client-glue/TXMPFiles.incl_cpp:313
wResult = {errMessage = 0x2aa001cb9b0 "Out of range seek operation", ptrResult = 0x2aa0013513c, floatResult = 0,
int64Result = 0, int32Result = 9}
ok =
#7 0x000002aa0001e90a in ProcessFile (fileName=0x3fffffff7ad "samples/testfiles/BlueSquare.gif") at DumpMainXMP.cpp:83
ok =
buffer = "Dumping main XMP for samples/testfiles/BlueSquare.gif\000\217\314\000\000\002\252\000\033\371\240\000\000\002\252\000\a-\310\000\000\003\377\377\377\357X\000\000\003\377\377\377\357P\000\000\003\377\375\377W0\000\000\000\000\000\000\vg\000\000\002\252\000\033\367\300\000\000\003\377\375\372\257\230\000\000\002\252\000\a)\350\000\000\002\252\000\006S\210\000\000\003\377\377\377\356\250", '\000' , "\002\000\000\000\000\000\000\000\000\000\000\002\252\000\033\367\300\000\000\000\000MP2 \000\000\002\252\000\034\256\260MP2 \000\006/$"...
xmpMeta = {
_vptr.TXMPMeta = 0x2aa0016f4c8 , std::allocator > >+16>, xmpRef = 0x2aa001caf00}
xmpFile = {
_vptr.TXMPFiles = 0x2aa0016f508 , std::allocator > >+16>, xmpFilesRef = 0x2aa001cb080}
format = 4294962648
openFlags = 1023
handlerFlags = 4256987410
xmpPacket = {offset = -1, length = -1, padSize = 0, charForm = 0 '\000', writeable = 0 '\000', hasWrapper = 0 '\000',
pad = 0 '\000'}
offset =
length =
#8 0x000002aa0001c258 in main (argc=, argv=) at DumpMainXMP.cpp:127
i =
options = 2
```
Full build logs can be found at https://buildd.debian.org/status/package.php?p=exempi
Useful documentation https://wiki.debian.org/ArchitectureSpecificsMemo
Contributor guide
Research direction
Start with tests/testcore.sh and reproduce the failure using samples/source/dumpmainxmp on a big-endian architecture. Read DumpMainXMP.cpp and TXMPFiles.incl_cpp around OpenFile, then compare the failing BlueSquare.gif path with the earlier sample runs; done means the test suite completes successfully on big-endian systems.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- operating-systems, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100