nosync-quiet option added courtesy Robin Johnson (Gentoo project)
[gitolite-doc.git] / docs / testing.mkd
blobbfb6aa1a85e50ac5da07b003433e19184ac28a01
1 # testing gitolite
3 <font color="red">**WARNING: this will clobber [these files and
4 directories][clobber] in your `$HOME`.  Ideally, you should use a throwaway
5 userid**.</font>
7 ----
9 Running gitolite's test suite is really just a superset of [trying it out
10 safely][trying].
12 [trying]: install#trying-out-gitolite-safely
14 To run the full test suite, create a **throw-away userid**, log in to it, then
15 run these commands:
17     git config --global include.path ~/.gitconfig.local
18     git clone https://github.com/sitaramc/gitolite
19     cd gitolite
20     prove
22 You will get an error that forces you to read `t/README` and set an env var
23 before the test can proceed.  This is intentional; I've had people who don't
24 pay attention to the "data loss" warning, and then complain that it was not
25 prominent enough.  Forcing them to read a much smaller page appears to focus
26 their attention better!
28 The test suite should run fine on most recent Linuxes and Unixes.  Although
29 gitolite itself should work fine with any git after 1.6.6 or so, the test
30 suite generally requires a more recent git.
32 Make sure:
34   * `$HOME/bin` is in `$PATH`
35   * sshd allows incoming ssh to this userid, at least from localhost
37 Gitolite's test suite is mostly written using [tsh][] -- the "testing shell".
38 Take a look at some of the scripts and you will see what it looks like.  It
39 has a few quirks and nuances, but it's fine for what I need here.
41 [tsh]: https://github.com/sitaramc/tsh
43 The tests also use a somewhat convoluted system of environment variables in
44 order to run *entirely* as a local user, without going through ssh at all.
45 This lets a complete test suite run in about a lot less time than it would
46 otherwise take.
48 If you think that defeats the purpose of the testing, you haven't read
49 [this][auth] yet.
51 # appendix 1 -- the clobber list
53 When you [try out gitolite][trying] or run the test suite, the following files
54 and directories in your \$HOME are potentially clobbered.
56     .gitconfig
57     .gitolite/
58     .gitolite.rc
59     projects.list
60     repositories/
61     .ssh/
63 [auth]: concepts#authentication-and-authorisation
64 [clobber]: testing#appendix-1-the-clobber-list