mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 00:14:35 +03:00
55a457de69
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.
65 lines
2.6 KiB
Perl
65 lines
2.6 KiB
Perl
#require test-repo slow osx osxpackaging
|
|
|
|
$ . "$TESTDIR/helpers-testrepo.sh"
|
|
$ syshgenv
|
|
|
|
$ OUTPUTDIR="`pwd`"
|
|
$ export OUTPUTDIR
|
|
$ KEEPMPKG=yes
|
|
$ export KEEPMPKG
|
|
|
|
$ cd "$TESTDIR"/..
|
|
$ make osx > "$OUTPUTDIR/build.log" 2>&1
|
|
$ cd "$OUTPUTDIR"
|
|
$ ls -d *.pkg
|
|
Mercurial-*-macosx10.*.pkg (glob)
|
|
|
|
$ xar -xf Mercurial*.pkg
|
|
|
|
Gather list of all installed files:
|
|
$ lsbom mercurial.pkg/Bom > boms.txt
|
|
|
|
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]
|
|
|
|
Spot-check some randomly selected files:
|
|
$ grep bdiff boms.txt | cut -d ' ' -f 1,2,3
|
|
./Library/Python/2.7/site-packages/mercurial/cext/bdiff.so 100755 0/0
|
|
./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
|
|
$ grep zsh/site-functions/_hg boms.txt | cut -d ' ' -f 1,2,3
|
|
./usr/local/share/zsh/site-functions/_hg 100644 0/0
|
|
$ grep hg-completion.bash boms.txt | cut -d ' ' -f 1,2,3
|
|
./usr/local/hg/contrib/hg-completion.bash 100644 0/0
|
|
$ egrep 'man[15]' boms.txt | cut -d ' ' -f 1,2,3
|
|
./usr/local/share/man/man1 40755 0/0
|
|
./usr/local/share/man/man1/chg.1 100644 0/0
|
|
./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
|
|
$ egrep 'bin/' boms.txt | cut -d ' ' -f 1,2,3
|
|
./usr/local/bin/chg 100755 0/0
|
|
./usr/local/bin/hg 100755 0/0
|
|
|
|
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
|
|
|
|
Note that we're not currently installing any /etc/mercurial stuff,
|
|
including merge-tool configurations.
|