tests/test-gendoc.t
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Thu, 22 Sep 2016 21:51:57 +0900
changeset 29996 9766d88c2465
parent 28809 7a1ad08b9ff5
child 32940 75be14993fda
permissions -rw-r--r--
vfs: use checkambigatclosing in checkambig=True but atomictemp=False case In Mercurial source tree, opening a file in "a"/"a+" mode like below doesn't specify atomictemp=True for vfs, and this avoids file stat ambiguity check by atomictempfile. - writing changes out in revlog layer uses "a+" mode - truncation in repair.strip() uses "a" mode - truncation in transaction._playback() uses "a" mode If steps below occurs at "the same time in sec", all of mtime, ctime and size are same between (1) and (3). 1. append data to revlog-style file (and close transaction) 2. discard appended data by truncation (strip or rollback) 3. append same size but different data to revlog-style file again Therefore, cache validation doesn't work after (3) as expected. This patch uses checkambigatclosing in checkambig=True but atomictemp=False case, to check (and get rid of) file stat ambiguity at closing. This is a part of ExactCacheValidationPlan. https://www.mercurial-scm.org/wiki/ExactCacheValidationPlan

#require docutils
#require gettext

Test document extraction

  $ HGENCODING=UTF-8
  $ export HGENCODING
  $ { echo C; ls "$TESTDIR/../i18n"/*.po | sort; } | while read PO; do
  >     LOCALE=`basename "$PO" .po`
  >     echo "% extracting documentation from $LOCALE"
  >     LANGUAGE=$LOCALE python "$TESTDIR/../doc/gendoc.py" >> gendoc-$LOCALE.txt 2> /dev/null || exit
  > 
  >     if [ $LOCALE != C ]; then
  >         if [ ! -f $TESTDIR/test-gendoc-$LOCALE.t ]; then
  >             echo missing test-gendoc-$LOCALE.t
  >         fi
  >         cmp -s gendoc-C.txt gendoc-$LOCALE.txt && echo "** NOTHING TRANSLATED ($LOCALE) **"
  >     fi
  > done; true
  % extracting documentation from C
  % extracting documentation from da
  % extracting documentation from de
  % extracting documentation from el
  % extracting documentation from fr
  % extracting documentation from it
  % extracting documentation from ja
  % extracting documentation from pt_BR
  % extracting documentation from ro
  % extracting documentation from ru
  % extracting documentation from sv
  % extracting documentation from zh_CN
  % extracting documentation from zh_TW