[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Strange *.so names in pbuild do require tricks for test suite (Was: Trying to run build time tests using nosetest for python-pysam)



Hi Bas,

On Mon, Jul 20, 2015 at 11:06:22AM +0200, sebastic wrote:
> On 2015-07-20 10:54, Andreas Tille wrote:
> >unfortunately I did not got any response from Debian Python team and
> >I'm simply lost how to run the tests.
> 
> Maybe change the dh_auto_test override to something like:
> 
> override_dh_auto_test:
> 	PYBUILD_SYSTEM=custom \
> 	PYBUILD_TEST_ARGS="cd tests && {interpreter} pysam_test.py" dh_auto_test ||
> echo "Ignoring test failures"
> 
> Also note the following in tests/00README.txt:

Seems this README is outdated - the file pysam_test.py is not provided
any more and the tests are run with nosetest now.  However, I was able
to make some progress based from your input and I also patched the test
suite to work offline (by dropping two tests).  The current rules file
is available in Git[1].

However, I have spotted a very strange problem I would like to discuss
with Debian Python team.  The following dynamic libraries are created
in the build process:

$ find .pybuild -name "*.so"
.pybuild/pythonX.Y_3.4/build/pysam/csamfile.cpython-34m.so
.pybuild/pythonX.Y_3.4/build/pysam/libchtslib.cpython-34m.so
.pybuild/pythonX.Y_3.4/build/pysam/TabProxies.cpython-34m.so
.pybuild/pythonX.Y_3.4/build/pysam/calignmentfile.cpython-34m.so
.pybuild/pythonX.Y_3.4/build/pysam/csamtools.cpython-34m.so
.pybuild/pythonX.Y_3.4/build/pysam/cbcf.cpython-34m.so
.pybuild/pythonX.Y_3.4/build/pysam/ctabix.cpython-34m.so
.pybuild/pythonX.Y_3.4/build/pysam/cfaidx.cpython-34m.so
.pybuild/pythonX.Y_3.4/build/pysam/cvcf.cpython-34m.so
.pybuild/pythonX.Y_2.7/build/pysam/csamfile.so
.pybuild/pythonX.Y_2.7/build/pysam/cvcf.so
.pybuild/pythonX.Y_2.7/build/pysam/libchtslib.so
.pybuild/pythonX.Y_2.7/build/pysam/TabProxies.so
.pybuild/pythonX.Y_2.7/build/pysam/csamtools.so
.pybuild/pythonX.Y_2.7/build/pysam/cfaidx.so
.pybuild/pythonX.Y_2.7/build/pysam/calignmentfile.so
.pybuild/pythonX.Y_2.7/build/pysam/ctabix.so
.pybuild/pythonX.Y_2.7/build/pysam/cbcf.so

As you might have noticed the Python 3.4 files are named

    *.cpython-34m.so

This leads to the fact that the nosetest3 call would fail with
the error

   .pybuild/pythonX.Y_3.4/build/pysam/cfaidx.so

not found (actually all dynamic libraries are seeked without the
".cpython-34m" inside the name.  I hacked around this inside the rules
file by providing symlinks and also noticed that I need to remove these
symlinks again since dh_python3 would otherwise stumble upon these.

I wonder what would be the proper way to deal with this.

I also learned that if I would run the test suite after the
*.debs are installed it has problems with the so names as well
that in both Python versions now are:

    cfaidx.x86_64-linux-gnu.so

(when build on amd64).  I suspect that the test suite itself might be
buggy since this is the usual naming for the dynamic libraries in Python
packages (at least when comparing with other packages).

Any hint is appreciated.

Kind regards

      Andreas.

[1] https://anonscm.debian.org/cgit/debian-med/python-pysam.git/tree/debian/rules

-- 
http://fam-tille.de


Reply to: