Tree


.gitignorecommits | blame
Makefilecommits | blame
READMEcommits | blame
check_test_repo.shcommits | blame
common.shcommits | blame
email_notification.shcommits | blame
http-server*commits | blame
http_notification.shcommits | blame
prepare_test_repo.shcommits | blame
repo_read.shcommits | blame
repo_read_access_denied.shcommits | blame
repo_write.shcommits | blame
repo_write_empty.shcommits | blame
repo_write_protected.shcommits | blame
request_bad.shcommits | blame

README

Running server regression tests requires some manual system preparation.

Two dedicated user accounts must be created. Password login
for these users should be disabled.

 $ doas useradd -m got
 $ doas useradd -m gotdev

The above user names correspond to defaults used by the test suite.
If needed, the defaults can be overridden on by passing values for the
following variables to make(1): GOTD_USER, GOTD_DEVUSER, GOTD_GROUP

An SSH key must be added to ~gotdev/.ssh/authorized_keys, such that the
following command succeeds non-interactively:

 $ ssh gotdev@127.0.0.1

The login shell of the gotdev user should be set to gotsh(1).
It is recommended to run the test suite using a locally built gotsh binary,
rather than /usr/local/bin/gotsh (which might be using messages in an
out-of-date format on the gotd socket).
For this to work, $HOME/bin/gotsh must be added to /etc/shells first.

 $ doas usermod -s $HOME/bin/gotsh gotdev

If adding this file to /etc/shells is a problem, a locally built gotsh
binary can be made available in the command search path of the gotdev
user under the names git-receive-pack and git-upload-pack. When made
available in a non-standard PATH directory such as ~gotdev/bin, the
gotdev user's PATH must be set appropriately in sshd_config (see below).

By default, tests will run the gotd binary found in ~/bin.
If sources were unpacked from a Got release tarball then tests will run
/usr/local/bin/gotd by default instead.

The test suite creates the corresponding gotd socket in ~gotdev/gotd.sock.
To make this work, the GOTD_UNIX_SOCKET variable must be set by sshd
when the gotdev user logs in. The following should be added to the file
/etc/ssh/sshd_config:

 Match User gotdev
    SetEnv GOTD_UNIX_SOCKET=/home/gotdev/gotd.sock
    # The following line is not needed when gotsh is used as login shell:
    SetEnv PATH=/home/gotdev/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
    DisableForwarding yes
    PermitTTY no

sshd must be restarted for configuration changes to take effect:

 $ doas rcctl restart sshd

The server test suite can now be run from the top-level directory:

 $ doas pkg_add git  # if not already done
 $ doas make server-regress

The suite must be started as root in order to be able to start and stop gotd.
The test suite switches to non-root users as appropriate.

The test suite uses netcat on port 2525 to test SMTP notifications.
If this port is already in use then affected tests might fail.
If needed the port can be overriden on the make command line:

 $ doas make server-regress GOTD_TEST_SMTP_PORT=12345