##// END OF EJS Templates
tests: use the system hg for examining the local repository...
tests: use the system hg for examining the local repository Most test scripts use "hg" to interact with a temporary test repository. However a few tests also want to run hg commands to interact with the local repository containing the mercurial source code. Notably, many of the test-check-* tests want to check local files and commit messages. These tests were previously using the version of hg being tested to query the source repository. However, this will fail if the source repository requires extensions or other settings not supported by the version of mercurial being tested. The source repository was typically initially cloned using the system hg installation, so we should use the system hg installation to query it. There was already a helpers-testrepo.sh script designed to help cope with different requirements for the source repository versus the test repositories. However, it only handled the evolve extension. This new behavior works with any extensions that are different between the system installation and the test installation.

File last commit:

r33116:6c113a7d default
r33116:6c113a7d default
Show More
test-mac-packages.t
64 lines | 2.6 KiB | text/troff | Tads3Lexer
/ tests / test-mac-packages.t
Kevin Bullock
osx: create a modern package including manpages...
r29027 #require test-repo slow osx osxpackaging
timeless
tests: silence test-repo obsolete warning...
r29219
$ . "$TESTDIR/helpers-testrepo.sh"
Adam Simpkins
tests: use the system hg for examining the local repository...
r33116 $ syshgenv
timeless
tests: silence test-repo obsolete warning...
r29219
Augie Fackler
osx: use more paranoid quoting in test
r31610 $ OUTPUTDIR="`pwd`"
Augie Fackler
tests: add test for Mac OS X package construction
r29025 $ export OUTPUTDIR
$ KEEPMPKG=yes
$ export KEEPMPKG
$ cd "$TESTDIR"/..
Augie Fackler
osx: use more paranoid quoting in test
r31610 $ make osx > "$OUTPUTDIR/build.log" 2>&1
$ cd "$OUTPUTDIR"
Kevin Bullock
osx: create a modern package including manpages...
r29027 $ ls -d *.pkg
Mercurial-*-macosx10.*.pkg (glob)
$ xar -xf Mercurial*.pkg
Augie Fackler
tests: add test for Mac OS X package construction
r29025
Gather list of all installed files:
Kevin Bullock
osx: create a modern package including manpages...
r29027 $ lsbom mercurial.pkg/Bom > boms.txt
Augie Fackler
tests: add test for Mac OS X package construction
r29025
Augie Fackler
osx: override default exclude filter for pkgbuild...
r32603 We've had problems with the filter logic in the past. Make sure no
.DS_Store files ended up in the final package:
$ grep DS_S boms.txt
[1]
Augie Fackler
tests: add test for Mac OS X package construction
r29025 Spot-check some randomly selected files:
Kevin Bullock
osx: create a modern package including manpages...
r29027 $ grep bdiff boms.txt | cut -d ' ' -f 1,2,3
Augie Fackler
osx: update Mac packaging tests for bdiff.so install location change
r32469 ./Library/Python/2.7/site-packages/mercurial/cext/bdiff.so 100755 0/0
Kevin Bullock
osx: create a modern package including manpages...
r29027 ./Library/Python/2.7/site-packages/mercurial/pure/bdiff.py 100644 0/0
./Library/Python/2.7/site-packages/mercurial/pure/bdiff.pyc 100644 0/0
./Library/Python/2.7/site-packages/mercurial/pure/bdiff.pyo 100644 0/0
Kyle Lippincott
zsh_completion: install as _hg not hg...
r32604 $ grep zsh/site-functions/_hg boms.txt | cut -d ' ' -f 1,2,3
./usr/local/share/zsh/site-functions/_hg 100644 0/0
Augie Fackler
osx: install bash and zsh completions by default...
r31142 $ grep hg-completion.bash boms.txt | cut -d ' ' -f 1,2,3
Augie Fackler
osx: install completion scripts using install(1) to avoid umask badness...
r31609 ./usr/local/hg/contrib/hg-completion.bash 100644 0/0
Kevin Bullock
osx: create a modern package including manpages...
r29027 $ egrep 'man[15]' boms.txt | cut -d ' ' -f 1,2,3
./usr/local/share/man/man1 40755 0/0
Augie Fackler
osx: include chg by default
r32471 ./usr/local/share/man/man1/chg.1 100644 0/0
Kevin Bullock
osx: create a modern package including manpages...
r29027 ./usr/local/share/man/man1/hg.1 100644 0/0
./usr/local/share/man/man5 40755 0/0
./usr/local/share/man/man5/hgignore.5 100644 0/0
./usr/local/share/man/man5/hgrc.5 100644 0/0
$ grep bser boms.txt | cut -d ' ' -f 1,2,3
./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/bser.so 100755 0/0
./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.py 100644 0/0
./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.pyc 100644 0/0
./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.pyo 100644 0/0
$ grep localrepo boms.txt | cut -d ' ' -f 1,2,3
./Library/Python/2.7/site-packages/mercurial/localrepo.py 100644 0/0
./Library/Python/2.7/site-packages/mercurial/localrepo.pyc 100644 0/0
./Library/Python/2.7/site-packages/mercurial/localrepo.pyo 100644 0/0
Augie Fackler
osx: include chg by default
r32471 $ egrep 'bin/' boms.txt | cut -d ' ' -f 1,2,3
./usr/local/bin/chg 100755 0/0
Kevin Bullock
osx: create a modern package including manpages...
r29027 ./usr/local/bin/hg 100755 0/0
Augie Fackler
tests: add test for Mac OS X package construction
r29025
Augie Fackler
osx: explicitly build hg with /usr/bin/python2.7...
r29535 Make sure the built binary uses the system Python interpreter
$ bsdtar xf mercurial.pkg/Payload usr/local/bin
Use a glob to find this to avoid check-code whining about a fixed path.
$ head -n 1 usr/local/b?n/hg
#!/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
Augie Fackler
tests: add test for Mac OS X package construction
r29025 Note that we're not currently installing any /etc/mercurial stuff,
including merge-tool configurations.