summaryrefslogtreecommitdiff
path: root/Command/Test.hs
blob: 47d72ee445820508c06de60d8abbf93c47fb48a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{- git-annex command
 -
 - Copyright 2013 Joey Hess <joey@kitenet.net>
 -
 - Licensed under the GNU GPL version 3 or higher.
 -}

module Command.Test where

import Common
import Command
import Messages

def :: [Command]
def = [ noRepo startIO $ dontCheck repoExists $
	command "test" paramNothing seek SectionPlumbing
		"run built-in test suite"]

seek :: CommandSeek
seek = withWords start

{- We don't actually run the test suite here because of a dependency loop.
 - The main program notices when the command is test and runs it; this
 - function is never run if that works.
 -
 - However, if git-annex is built without the test suite, just print a
 - warning, and do not exit nonzero. This is so git-annex test can be run
 - in debian/rules despite some architectures not being able to build the
 - test suite.
 -}
start :: [String] -> CommandStart
start ps = do
	liftIO $ startIO ps
	stop

startIO :: CmdParams -> IO ()
startIO [] = warningIO "git-annex was built without its test suite; not testing"
startIO _ = error "Cannot specify any additional parameters when running test"