tests/test-profile.t
author Yuya Nishihara <yuya@tcha.org>
Thu, 12 Jan 2012 00:49:45 +0900
branchstable
changeset 15848 012b285cf643
parent 12478 bb665db49e32
child 16898 bb91c602d4ad
permissions -rw-r--r--
filectx: fix cmp() of file starting with '\1\n' If file data starts with '\1\n', it will be escaped in the revlog to create an empty metadata block, thus adding four bytes to the size in the revlog size index. There's no way to detect that this has happened in filelog.size() faster than decompressing each revision [1]. For filectx.cmp(), we have the size of the file in the working directory available. If it differs by exactly four bytes, it may be this case, so do a full comparison. [1]: http://markmail.org/message/5akdbmmqx7vq2fsg

test --time

  $ hg --time help -q help 2>&1 | grep Time > /dev/null
  $ hg init a
  $ cd a

test --profile

  $ if "$TESTDIR/hghave" -q lsprof; then
  >     hg --profile st 2>../out || echo --profile failed
  >     grep CallCount < ../out > /dev/null || echo wrong --profile
  > 
  >     hg --profile --config profiling.output=../out st 2>&1 \
  >         || echo --profile + output to file failed
  >     grep CallCount < ../out > /dev/null \
  >         || echo wrong --profile output when saving to a file
  > 
  >     hg --profile --config profiling.format=text st 2>&1 \
  >         | grep CallCount > /dev/null || echo --profile format=text failed
  > 
  >     echo "[profiling]" >> $HGRCPATH
  >     echo "format=kcachegrind" >> $HGRCPATH
  > 
  >     hg --profile st 2>../out || echo --profile format=kcachegrind failed
  >     grep 'events: Ticks' < ../out > /dev/null || echo --profile output is wrong
  > 
  >     hg --profile --config profiling.output=../out st 2>&1 \
  >         || echo --profile format=kcachegrind + output to file failed
  >     grep 'events: Ticks' < ../out > /dev/null \
  >         || echo --profile output is wrong
  > fi