##// END OF EJS Templates
posix: always seek to EOF when opening a file in append mode...
posix: always seek to EOF when opening a file in append mode Python 3 already does this, so skip it there. Consider the program: #include <stdio.h> int main() { FILE *f = fopen("narf", "w"); fprintf(f, "narf\n"); fclose(f); f = fopen("narf", "a"); printf("%ld\n", ftell(f)); fprintf(f, "troz\n"); printf("%ld\n", ftell(f)); return 0; } on macOS, FreeBSD, and Linux with glibc, this program prints 5 10 but on musl libc (Alpine Linux and probably others) this prints 0 10 By my reading of https://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html this is technically correct, specifically: > Opening a file with append mode (a as the first character in the > mode argument) shall cause all subsequent writes to the file to be > forced to the then current end-of-file, regardless of intervening > calls to fseek(). in other words, the file position doesn't really matter in append-mode files, and we can't depend on it being at all meaningful unless we perform a seek() before tell() after open(..., 'a'). Experimentally after a .write() we can do a .tell() and it'll always be reasonable, but I'm unclear from reading the specification if that's a smart thing to rely on. This matches what we do on Windows and what Python 3 does for free, so let's just be consistent. Thanks to Yuya for the idea.

File last commit:

r34407:0133ca39 default
r42778:97ada9b8 5.0.2 stable
Show More
test-debian-packages.t
32 lines | 1.2 KiB | text/troff | Tads3Lexer
/ tests / test-debian-packages.t
Kyle Lippincott
tests: add "have" check for dpkg builddeps...
r34402 #require test-repo slow debhelper debdeps
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148
timeless
tests: silence test-repo obsolete warning...
r29219 $ . "$TESTDIR/helpers-testrepo.sh"
Yuya Nishihara
tests: alias syshg and syshgenv so they can be switched conditionally
r33199 $ testrepohgenv
timeless
tests: silence test-repo obsolete warning...
r29219
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 Ensure debuild doesn't run the testsuite, as that could get silly.
$ DEB_BUILD_OPTIONS=nocheck
$ export DEB_BUILD_OPTIONS
Augie Fackler
test-debian-packages: new test for testing construction of debian packages
r26147 $ OUTPUTDIR=`pwd`
$ export OUTPUTDIR
$ cd "$TESTDIR"/..
$ make deb > $OUTPUTDIR/build.log 2>&1
$ cd $OUTPUTDIR
Kyle Lippincott
tests: expect parsers.so in cext, parsers.py in pure (test-debian-packages)...
r34401 $ ls *.deb | grep -v 'dbg'
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 mercurial-common_*.deb (glob)
mercurial_*.deb (glob)
main deb should have .so but no .py
$ dpkg --contents mercurial_*.deb | egrep '(localrepo|parsers)'
Kyle Lippincott
tests: expect parsers.so in cext, parsers.py in pure (test-debian-packages)...
r34401 * ./usr/lib/python2.7/dist-packages/mercurial/cext/parsers*.so (glob)
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 mercurial-common should have py but no .so or pyc
Kyle Lippincott
tests: expect parsers.so in cext, parsers.py in pure (test-debian-packages)...
r34401 $ dpkg --contents mercurial-common_*.deb | egrep '(localrepo|parsers.*so)'
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 * ./usr/lib/python2.7/dist-packages/mercurial/localrepo.py (glob)
Kyle Lippincott
deb: install zsh completions to /usr/share/zsh/vendor-completions...
r34406 zsh completions should be in the common package
$ dpkg --contents mercurial-common_*.deb | egrep 'zsh.*[^/]$'
* ./usr/share/zsh/vendor-completions/_hg (glob)
Kyle Lippincott
deb: build and install chg...
r34407 chg should be installed alongside hg, in the 'mercurial' package
$ dpkg --contents mercurial_*.deb | egrep 'chg$'
* ./usr/bin/chg (glob)
chg should come with a man page
$ dpkg --contents mercurial_*.deb | egrep 'man.*chg'
* ./usr/share/man/man1/chg.1.gz (glob)