tests/test-docker-packaging.t
author Gregory Szorc <gregory.szorc@gmail.com>
Sat, 20 May 2017 14:01:05 -0700
changeset 32378 7d0c69505a66
parent 29219 3c9066ed557c
child 33116 6c113a7dec52
permissions -rw-r--r--
cext: extract revlog/index parsing code to own C file parsers.c is ~3000 lines and ~2/3 of it is related to the revlog index type. We already have separate C source files for directory utilities and manifest parsing. I think the quite unwieldy revlog/index parsing code should be self-contained as well. I performed the extraction as a file copy then removed content from both sides in order to preserve file history and blame. As part of this, I also had to move the hexdigit table and function to a shared header since it is used by both parsers.c and revlog.c # no-check-commit

#require test-repo slow docker

  $ . "$TESTDIR/helpers-testrepo.sh"

Ensure debuild doesn't run the testsuite, as that could get silly.
  $ DEB_BUILD_OPTIONS=nocheck
  $ export DEB_BUILD_OPTIONS
  $ OUTPUTDIR=`pwd`
  $ export OUTPUTDIR

  $ cd "$TESTDIR"/..
  $ make docker-debian-jessie > $OUTPUTDIR/build.log 2>&1
  $ cd $OUTPUTDIR
  $ ls *.deb
  mercurial-common_*.deb (glob)
  mercurial_*.deb (glob)

We check debian package contents with portable tools so that when
we're on non-debian machines we can still test the packages that are
built using docker.

main deb should have .so but no .py
  $ ar x mercurial_*.deb
  $ tar tf data.tar* | egrep '(localrepo|parsers)'
  ./usr/lib/python2.7/dist-packages/mercurial/parsers*.so (glob)
mercurial-common should have .py but no .so or .pyc
  $ ar x mercurial-common_*.deb
  $ tar tf data.tar* | egrep '(localrepo|parsers)'
  ./usr/lib/python2.7/dist-packages/mercurial/pure/parsers.py
  ./usr/lib/python2.7/dist-packages/mercurial/localrepo.py