test-highlight
141 lines
| 3.2 KiB
| text/plain
|
TextLexer
/ tests / test-highlight
Dirkjan Ochtman
|
r6355 | #!/bin/sh | ||
"$TESTDIR/hghave" pygments || exit 80 | ||||
cat <<EOF >> $HGRCPATH | ||||
[extensions] | ||||
Christian Ebert
|
r10125 | highlight = | ||
Isaac Jurado
|
r6485 | [web] | ||
pygments_style = friendly | ||||
Dirkjan Ochtman
|
r6355 | EOF | ||
hg init test | ||||
cd test | ||||
Martin Geisler
|
r8485 | # 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 | ||||
Christian Ebert
|
r7120 | |||
Dirkjan Ochtman
|
r6355 | 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 | ||||
Rocco Rutte
|
r6987 | echo % hgweb filerevision, html | ||
Martin Geisler
|
r8485 | ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/primes.py') \ | ||
Christian Ebert
|
r8083 | | sed "s/class=\"k\"/class=\"kn\"/g" | sed "s/class=\"mf\"/class=\"mi\"/g" | ||
Dirkjan Ochtman
|
r6355 | |||
Rocco Rutte
|
r6987 | echo % hgweb fileannotate, html | ||
Martin Geisler
|
r8485 | ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/primes.py') \ | ||
Christian Ebert
|
r8083 | | sed "s/class=\"k\"/class=\"kn\"/g" | sed "s/class=\"mi\"/class=\"mf\"/g" | ||
Dirkjan Ochtman
|
r6355 | |||
Rocco Rutte
|
r6987 | echo % hgweb fileannotate, raw | ||
Martin Geisler
|
r8485 | ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/primes.py?style=raw') \ | ||
Rocco Rutte
|
r6987 | | sed "s/test@//" > a | ||
echo "200 Script output follows" > b | ||||
echo "" >> b | ||||
echo "" >> b | ||||
Martin Geisler
|
r8485 | hg annotate "primes.py" >> b | ||
Rocco Rutte
|
r6987 | echo "" >> b | ||
echo "" >> b | ||||
echo "" >> b | ||||
echo "" >> b | ||||
diff -u b a | ||||
echo | ||||
echo % hgweb filerevision, raw | ||||
Martin Geisler
|
r8485 | ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/primes.py?style=raw') \ | ||
Rocco Rutte
|
r6987 | > a | ||
echo "200 Script output follows" > b | ||||
echo "" >> b | ||||
Martin Geisler
|
r8485 | hg cat primes.py >> b | ||
Rocco Rutte
|
r6987 | |||
diff -u b a | ||||
echo | ||||
Isaac Jurado
|
r6485 | echo % hgweb highlightcss friendly | ||
Brendan Cully
|
r6863 | "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/highlightcss' > out | ||
head -n 4 out | ||||
rm out | ||||
Isaac Jurado
|
r6485 | |||
echo % errors encountered | ||||
cat errors.log | ||||
Dirkjan Ochtman
|
r7623 | "$TESTDIR/killdaemons.py" | ||
Isaac Jurado
|
r6485 | |||
# 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 | ||||
Brendan Cully
|
r6863 | "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/highlightcss' > out | ||
head -n 4 out | ||||
rm out | ||||
Isaac Jurado
|
r6485 | |||
Dirkjan Ochtman
|
r6355 | echo % errors encountered | ||
cat errors.log | ||||
Yuya Nishihara
|
r9424 | |||
cd .. | ||||
hg init eucjp | ||||
cd eucjp | ||||
Jim Hague
|
r10253 | python -c 'print("\265\376")' >> eucjp.txt # Japanese kanji "Kyo" | ||
Yuya Nishihara
|
r9424 | |||
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 | ||||