GenABEL-Project / ProbABEL

Tool for genome-wide association analysis of imputed genetic data.
7 stars 4 forks source link

Failure of test suite for big endian architectures #45

Closed tillea closed 7 years ago

tillea commented 7 years ago

Hi, I received a bug report in Debian which reports 5 failures out of 7 tests. It seems probabel code relies on little endian architecture. I wonder whether you intend to fix this or whether you rather decide that the code should stay at it is. In the latter case I would exclude the affected architectures from Debian builds. Kind regards, Andreas.

lckarssen commented 7 years ago

Dear Andreas,

Thanks for the bug report. I remember we discussed this some time in the past on the debian-med mailing list, e.g. here and earlier here. At the time we decided to exclude the affected architectures.

The problem is that the binary input files were generated on a little-endian architecture and ProbABEL makes no attempt to check for endianness. The tests on big-endian machines would probably pass if input files were used that were also created on a big-endian machine. So, I guess the failing tests could be 'fixed'/worked around by providing big-endian input files and trying to detect endianness before running the tests.

However, I think all machines used for the kind of scientific analyses that ProbABEL does are little endian, therefore I'm not planning in fixing this any time soon (especially since the actual code will most likely work on big-endian machines if the input files were generated on the same architecture).

tillea commented 7 years ago

Dear Lennart,

On Thu, Sep 14, 2017 at 02:19:52PM +0000, Lennart C. Karssen wrote:

Thanks for the bug report. I remember we discussed this some time in the past on the debian-med mailing list, e.g. here and earlier here. At the time we decided to exclude the affected architectures.

Sorry, I'm doing to much different things to remember every single issue of a certain software. :-)

The problem is that the binary input files were generated on a little-endian architecture and ProbABEL makes no attempt to check for endianness. The tests on big-endian machines would probably pass if input files were used that were also created on a big-endian machine. So, I guess the failing tests could be 'fixed'/worked around by providing big-endian input files and trying to detect endianness before running the tests.

However, I think all machines used for the kind of scientific analyses that ProbABEL does are little endian, therefore I'm not planning in fixing this any time soon (especially since the actual code will most likely work on big-endian machines if the input files were generated on the same architecture).

So do you think it is a sensible solution to do the following:

if architecture in (mips, s390x, hppa, powerpc, ppc64, sparc64) make check || true fi

in other words hiding our eyes for those architectures where the tests are known to fail?

Kind regards

  Andreas.

-- http://fam-tille.de

tillea commented 7 years ago

Dear Andreas,

On 14-09-17 17:33, Andreas Tille wrote:

Dear Lennart,

On Thu, Sep 14, 2017 at 02:19:52PM +0000, Lennart C. Karssen wrote:

Thanks for the bug report. I remember we discussed this some time in the past on the debian-med mailing list, e.g. here and earlier here. At the time we decided to exclude the affected architectures.

Sorry, I'm doing to much different things to remember every single issue of a certain software. :-)

Of course! It wasn't me intention to imply you should :-).

The problem is that the binary input files were generated on a little-endian architecture and ProbABEL makes no attempt to check for endianness. The tests on big-endian machines would probably pass if input files were used that were also created on a big-endian machine. So, I guess the failing tests could be 'fixed'/worked around by providing big-endian input files and trying to detect endianness before running the tests.

However, I think all machines used for the kind of scientific analyses that ProbABEL does are little endian, therefore I'm not planning in fixing this any time soon (especially since the actual code will most likely work on big-endian machines if the input files were generated on the same architecture).

So do you think it is a sensible solution to do the following:

if architecture in (mips, s390x, hppa, powerpc, ppc64, sparc64) make check || true fi

in other words hiding our eyes for those architectures where the tests are known to fail?

Yes, that would be great!

Thanks,

Lennart.

Kind regards

  Andreas.

-- ------------------------* L.C. Karssen 's-Hertogenbosch The Netherlands

lennart@karssen.org http://blog.karssen.org GPG key ID: A88F554A -------------------------

lckarssen commented 7 years ago

Hmm, weird. For some reason Github thinks the previous reply was made by Andreas, whereas it actually was an e-mail by me...

lckarssen commented 7 years ago

Closing this bug as @tillea uploaded Debian package version 0.4.5-5 to the Debian Unstable package repositories and checks now finish (see https://buildd.debian.org/status/package.php?p=probabel&suite=sid).