##// END OF EJS Templates
tests: make test-serve works on system that allow user to bind low port...
tests: make test-serve works on system that allow user to bind low port It is possible to encounter linux system configured in a way that allow port < 1024 to be bound by any users. So we update a test to focus more on the actual test: "resolving `daytime` to an actual port number. The new auto-scaling CI runner provided by clever cloud is doing so. This is the initial motivation for this change, but it seems useful anyway. Differential Revision: https://phab.mercurial-scm.org/D11228

File last commit:

r48573:a8deb9dc stable
r48573:a8deb9dc stable
Show More
test-serve.t
119 lines | 3.0 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: replace exit 80 with #require
r22046 #require serve
Patrick Mezard
tests: convert test-serve to new format
r13540
$ 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\//'
Gregory Szorc
tests: remove pid file by default...
r37865 > if [ -f hg.pid ]; then
> killdaemons.py hg.pid
> fi
Patrick Mezard
tests: convert test-serve to new format
r13540 > echo % errors
> cat errors.log
> }
$ hg init test
$ cd test
$ echo '[web]' > .hg/hgrc
$ echo 'accesslog = access.log' >> .hg/hgrc
$ echo "port = $HGPORT1" >> .hg/hgrc
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
Mads Kiilerich
tests: fix incorrect markup of continued lines of sh commands
r16487 > echo 'access log created - .hg/hgrc respected'
> fi
Patrick Mezard
tests: convert test-serve to new format
r13540 access log created - .hg/hgrc respected
errors
$ cat errors.log
With -v
$ hgserve
Matt Harbison
test-serve: make the 'listening at *' lines optional...
r31769 listening at http://localhost/ (bound to *$LOCALIP*:HGPORT1) (glob) (?)
Patrick Mezard
tests: convert test-serve to new format
r13540 % errors
With -v and -p HGPORT2
$ hgserve -p "$HGPORT2"
Matt Harbison
test-serve: make the 'listening at *' lines optional...
r31769 listening at http://localhost/ (bound to *$LOCALIP*:HGPORT2) (glob) (?)
Patrick Mezard
tests: convert test-serve to new format
r13540 % errors
tests: make test-serve works on system that allow user to bind low port...
r48573 With -v and -p daytime
Patrick Mezard
tests: convert test-serve to new format
r13540
tests: make test-serve works on system that allow user to bind low port...
r48573 # On some system this will fails because port < 1024 are not bindable by normal
# users.
#
# On some others the kernel is configured to allow any user to bind them and
# this will work fine
#if no-windows
Patrick Mezard
tests: convert test-serve to new format
r13540 $ KILLQUIETLY=Y
$ hgserve -p daytime
tests: make test-serve works on system that allow user to bind low port...
r48573 abort: cannot start server at 'localhost:13': Permission denied (?)
abort: child process failed to start (?)
listening at http://localhost/ (bound to $LOCALIP:13) (?)
Patrick Mezard
tests: convert test-serve to new format
r13540 % errors
$ KILLQUIETLY=N
Matt Mackall
tests: skip tests that require not having root (issue4089)...
r20008 #endif
Patrick Mezard
tests: convert test-serve to new format
r13540
With --prefix foo
$ hgserve --prefix foo
Matt Harbison
test-serve: make the 'listening at *' lines optional...
r31769 listening at http://localhost/foo/ (bound to *$LOCALIP*:HGPORT1) (glob) (?)
Patrick Mezard
tests: convert test-serve to new format
r13540 % errors
With --prefix /foo
$ hgserve --prefix /foo
Matt Harbison
test-serve: make the 'listening at *' lines optional...
r31769 listening at http://localhost/foo/ (bound to *$LOCALIP*:HGPORT1) (glob) (?)
Patrick Mezard
tests: convert test-serve to new format
r13540 % errors
With --prefix foo/
$ hgserve --prefix foo/
Matt Harbison
test-serve: make the 'listening at *' lines optional...
r31769 listening at http://localhost/foo/ (bound to *$LOCALIP*:HGPORT1) (glob) (?)
Patrick Mezard
tests: convert test-serve to new format
r13540 % errors
With --prefix /foo/
$ hgserve --prefix /foo/
Matt Harbison
test-serve: make the 'listening at *' lines optional...
r31769 listening at http://localhost/foo/ (bound to *$LOCALIP*:HGPORT1) (glob) (?)
Patrick Mezard
tests: convert test-serve to new format
r13540 % errors
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS
Matt Harbison
server: ensure the incoming request falls under the prefix value...
r37288
With out of bounds accesses
$ rm access.log
$ hg serve -a localhost -p $HGPORT -d --prefix some/dir \
> --pid-file=hg.pid -E errors.log
$ cat hg.pid >> "$DAEMON_PIDS"
$ hg id http://localhost:$HGPORT/some/dir7
abort: HTTP Error 404: Not Found
Martin von Zweigbergk
errors: set detailed exit code to 100 for some remote errors...
r46443 [100]
Matt Harbison
server: ensure the incoming request falls under the prefix value...
r37288 $ hg id http://localhost:$HGPORT/some
abort: HTTP Error 404: Not Found
Martin von Zweigbergk
errors: set detailed exit code to 100 for some remote errors...
r46443 [100]
Matt Harbison
server: ensure the incoming request falls under the prefix value...
r37288
$ cat access.log errors.log
$LOCALIP - - [$LOGDATE$] "GET /some/dir7?cmd=capabilities HTTP/1.1" 404 - (glob)
$LOCALIP - - [$LOGDATE$] "GET /some?cmd=capabilities HTTP/1.1" 404 - (glob)
Manuel Jacob
py3: fix crash when server address is 0.0.0.0 (issue6362)...
r45578 $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS
issue6362: Previously, this crashed on Python 3
Matt Harbison
tests: stablize test-serve.t on Windows...
r45627 $ hg serve -a 0.0.0.0 -d --pid-file=hg.pid
listening at http://*:$HGPORT1/ (bound to *:$HGPORT1) (glob) (?)
$ cat hg.pid > "$DAEMON_PIDS"
$ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS
Manuel Jacob
py3: fix crash when server address is 0.0.0.0 (issue6362)...
r45578
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..