view tests/test-serve @ 12135:b6cc68ef2702

test-serve: ensure KILLQUIETLY is only used once 49463314c24f introduced a feature to the hgserve() function that suppresses errors from kill(1). It wrongly assumed that setting an environment variable when calling a function would make it local to the function. It ended up suppressing kill errors for every call thereafter. This patch sets KILLQUIETLY=N after use.
author Brodie Rao <brodie@bitheap.org>
date Mon, 30 Aug 2010 11:16:21 -0400
parents 49463314c24f
children ba8850911703
line wrap: on
line source

#!/bin/sh

hgserve()
{
    hg serve -a localhost -d --pid-file=hg.pid -E errors.log -v $@ \
        | sed -e "s/:$HGPORT1\\([^0-9]\\)/:HGPORT1\1/g" \
              -e "s/:$HGPORT2\\([^0-9]\\)/:HGPORT2\1/g" \
              -e 's/http:\/\/[^/]*\//http:\/\/localhost\//'
    cat hg.pid >> "$DAEMON_PIDS"
    echo % errors
    cat errors.log
    sleep 1
    if [ "$KILLQUIETLY" = "Y" ]; then
        kill `cat hg.pid` 2>/dev/null
    else
        kill `cat hg.pid`
    fi
    sleep 1
}

hg init test
cd test

echo '[web]' > .hg/hgrc
echo 'accesslog = access.log' >> .hg/hgrc
echo "port = $HGPORT1" >> .hg/hgrc

echo % Without -v
hg serve -a localhost -p $HGPORT -d --pid-file=hg.pid -E errors.log
cat hg.pid >> "$DAEMON_PIDS"
if [ -f access.log ]; then
    echo 'access log created - .hg/hgrc respected'
fi
echo % errors
cat errors.log

echo % With -v
hgserve

echo % With -v and -p HGPORT2
hgserve -p "$HGPORT2"

echo '% With -v and -p http (should fail)'
KILLQUIETLY=Y hgserve -p http; KILLQUIETLY=N

echo % With --prefix foo
hgserve --prefix foo

echo % With --prefix /foo
hgserve --prefix /foo

echo % With --prefix foo/
hgserve --prefix foo/

echo % With --prefix /foo/
hgserve --prefix /foo/