##// END OF EJS Templates
Do not use osutil.c with python 2.4 and Windows (issue1364)...
Do not use osutil.c with python 2.4 and Windows (issue1364) Windows python 2.4 os.stat() reports times including DST offset, while osutil.c reports the correct value, which makes status() systematically compare files content. This bug is fixed in python 2.5. Using osutil.py instead of osutil.c is 4x times slower on large repositories but current code is completely unusable. Given few people are likely to use python 2.4 on Windows this solution was considered a good trade-off compared to more invasive solutions trying to address the offset issue.

File last commit:

r10257:a9c0d606 merge default
r10521:bde1bb25 stable
Show More
test-highlight
141 lines | 3.2 KiB | text/plain | TextLexer
#!/bin/sh
"$TESTDIR/hghave" pygments || exit 80
cat <<EOF >> $HGRCPATH
[extensions]
highlight =
[web]
pygments_style = friendly
EOF
hg init test
cd test
# create random Python file to exercise Pygments
cat <<EOF > primes.py
#!/usr/bin/env python
"""Fun with generators. Corresponding Haskell implementation:
primes = 2 : sieve [3, 5..]
where sieve (p:ns) = p : sieve [n | n <- ns, mod n p /= 0]
"""
from itertools import dropwhile, ifilter, islice, count, chain
def primes():
"""Generate all primes."""
def sieve(ns):
p = ns.next()
# It is important to yield *here* in order to stop the
# infinite recursion.
yield p
ns = ifilter(lambda n: n % p != 0, ns)
for n in sieve(ns):
yield n
odds = ifilter(lambda i: i % 2 == 1, count())
return chain([2], sieve(dropwhile(lambda n: n < 3, odds)))
if __name__ == "__main__":
import sys
try:
n = int(sys.argv[1])
except (ValueError, IndexError):
n = 10
p = primes()
print "The first %d primes: %s" % (n, list(islice(p, n)))
EOF
hg ci -Ama
echo % hg serve
hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log
cat hg.pid >> $DAEMON_PIDS
echo % hgweb filerevision, html
("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/primes.py') \
| sed "s/class=\"k\"/class=\"kn\"/g" | sed "s/class=\"mf\"/class=\"mi\"/g"
echo % hgweb fileannotate, html
("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/primes.py') \
| sed "s/class=\"k\"/class=\"kn\"/g" | sed "s/class=\"mi\"/class=\"mf\"/g"
echo % hgweb fileannotate, raw
("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/primes.py?style=raw') \
| sed "s/test@//" > a
echo "200 Script output follows" > b
echo "" >> b
echo "" >> b
hg annotate "primes.py" >> b
echo "" >> b
echo "" >> b
echo "" >> b
echo "" >> b
diff -u b a
echo
echo % hgweb filerevision, raw
("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/primes.py?style=raw') \
> a
echo "200 Script output follows" > b
echo "" >> b
hg cat primes.py >> b
diff -u b a
echo
echo % hgweb highlightcss friendly
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/highlightcss' > out
head -n 4 out
rm out
echo % errors encountered
cat errors.log
"$TESTDIR/killdaemons.py"
# Change the pygments style
cat > .hg/hgrc <<EOF
[web]
pygments_style = fruity
EOF
echo % hg serve again
hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log
cat hg.pid >> $DAEMON_PIDS
echo % hgweb highlightcss fruity
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/highlightcss' > out
head -n 4 out
rm out
echo % errors encountered
cat errors.log
cd ..
hg init eucjp
cd eucjp
python -c 'print("\265\376")' >> eucjp.txt # Japanese kanji "Kyo"
hg ci -Ama
hgserveget () {
"$TESTDIR/killdaemons.py"
echo % HGENCODING="$1" hg serve
HGENCODING="$1" hg serve -p $HGPORT -d -n test --pid-file=hg.pid -E errors.log
cat hg.pid >> $DAEMON_PIDS
echo % hgweb filerevision, html
"$TESTDIR/get-with-headers.py" localhost:$HGPORT "/file/tip/$2" \
| grep '<div class="parity0 source">' | $TESTDIR/printrepr.py
echo % errors encountered
cat errors.log
}
hgserveget euc-jp eucjp.txt
hgserveget utf-8 eucjp.txt
hgserveget us-ascii eucjp.txt