view tests/test-bad-pull @ 2734:07026da25ed8

hbisect.py: don't rely on __del__ to write the current state. This is yet another page of the "Thou shalt not do too much inside __del__ methods" book, in the "demandload and __del__ don't go well together" chapter. The bisect extension is broken in 0.9.1: $ hg bisect init $ hg bisect bad Fatal Python error: Interpreter not initialized (version mismatch?) Aborted (yes, I tripled checked my instalation to make sure the problem is not there) It's been broken since revision fe1689273f84 moved the import of the binascii module into a demandload. (In details: the first time that "hg bisect bad" (or good) is called, there are still no revisions saved in .hg/bisect/*, so bisect.__init__ doesn't call hg.bin on anything. So, when we reach __del__, the binascii module still hasn't been imported and we get that "nice" message above.)
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Fri, 28 Jul 2006 21:20:41 -0300
parents d22d730c96ed
children 7012c889e8f2
line wrap: on
line source

#!/bin/sh

hg clone http://localhost:20059/ copy
echo $?
ls copy 2>/dev/null || echo copy: No such file or directory

cat > dumb.py <<EOF
import BaseHTTPServer, SimpleHTTPServer, signal

def run(server_class=BaseHTTPServer.HTTPServer,
        handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
    server_address = ('localhost', 20059)
    httpd = server_class(server_address, handler_class)
    httpd.serve_forever()

signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
run()
EOF

python dumb.py 2>/dev/null &
echo $! >> $DAEMON_PIDS

http_proxy= hg clone http://localhost:20059/foo copy2 2>&1 | \
    sed -e 's/404.*/404/' -e 's/Date:.*/Date:/'
echo $?

kill $!