mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 08:18:15 +03:00
ab2b905e27
On AIX, ksh builtin printf does not understand \NNN. Some tests use this to generate test data, and so fail on AIX. Rework these tests to use python to generate the correct characters. This fixes the tests on AIX and should be more generally portable.
142 lines
3.3 KiB
Bash
Executable File
142 lines
3.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
"$TESTDIR/hghave" pygments || exit 80
|
|
|
|
cat <<EOF >> $HGRCPATH
|
|
[extensions]
|
|
hgext.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
|