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.