view tests/test-command-template @ 2569:2264b2b077a1

run-tests.py: make tests use same python interpreter as test harness. this is wanted because some tests run python interpreter directly. must use same python interpreter in tests as in main harness or problems will happen because of e.g. different python abi if run-tests.py run with python 2.5 but system python is 2.4. fix is to see if system python is used and is named python. if no, put symlink called python at front of shell search path.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Thu, 06 Jul 2006 10:09:24 -0700
parents d59fc0d4558f
children a6d0cd63068c
line wrap: on
line source

#!/bin/sh

hg init a
cd a
echo a > a
hg add a
echo line 1 > b
echo line 2 >> b
hg commit -l b -d '1000000 0' -u 'User Name <user@hostname>'
hg add b
echo other 1 > c
echo other 2 >> c
echo >> c
echo other 3 >> c
hg commit -l c -d '1100000 0' -u 'A. N. Other <other@place>'
hg add c
hg commit -m 'no person' -d '1200000 0' -u 'other@place'
echo c >> c
hg commit -m 'no user, no domain' -d '1300000 0' -u 'person'

# make sure user/global hgrc does not affect tests
echo '[ui]' > .hg/hgrc
echo 'logtemplate =' >> .hg/hgrc
echo 'style =' >> .hg/hgrc

echo '# default style is like normal output'
hg log > log.out
hg log --style default > style.out
diff log.out style.out
hg log -v > log.out
hg log -v --style default > style.out
diff log.out style.out
hg log --debug > log.out
hg log --debug --style default > style.out
diff log.out style.out

echo '# compact style works'
hg log --style compact
hg log -v --style compact
hg log --debug --style compact

echo '# error if style not readable'
touch q
chmod 0 q
hg log --style ./q

echo '# error if no style'
hg log --style notexist

echo '# error if style missing key'
echo 'q = q' > t
hg log --style ./t

echo '# error if include fails'
echo 'changeset = q' >> t
hg log --style ./t

echo '# include works'
rm -f q
echo '{rev}' > q
hg log --style ./t

echo '# ui.style works'
echo '[ui]' > .hg/hgrc
echo 'style = t' >> .hg/hgrc
hg log

echo "# keys work"
for key in author branches date desc file_adds file_dels files \
        manifest node parents rev tags; do
    for mode in '' --verbose --debug; do
        hg log $mode --template "$key$mode: {$key}\n"
    done
done

echo '# filters work'
hg log --template '{author|domain}\n'
hg log --template '{author|person}\n'
hg log --template '{author|user}\n'
hg log --template '{date|age}\n' > /dev/null || exit 1
hg log --template '{date|date}\n'
hg log --template '{date|isodate}\n'
hg log --template '{date|rfc822date}\n'
hg log --template '{desc|firstline}\n'
hg log --template '{node|short}\n'

echo '# error on syntax'
echo 'x = "f' >> t
hg log

echo '# done'