aboutsummaryrefslogtreecommitdiff
path: root/Command/Test.hs
blob: 5180f96edb5cfef91fc140b25d88156fbef3d0fe (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
{- git-annex command
 -
 - Copyright 2013-2015 Joey Hess <id@joeyh.name>
 -
 - Licensed under the GNU GPL version 3 or higher.
 -}

module Command.Test where

import Command
import Types.Test

cmd :: Parser TestOptions -> Maybe TestRunner -> Command
cmd optparser runner = noRepo (startIO runner <$$> const optparser) $
	dontCheck repoExists $
		command "test" SectionTesting
			"run built-in test suite"
			paramNothing (seek runner <$$> const optparser)

seek :: Maybe TestRunner -> TestOptions -> CommandSeek
seek runner o = commandAction $ start runner o

start :: Maybe TestRunner -> TestOptions -> CommandStart
start runner o = do
	liftIO $ startIO runner o
	stop

startIO :: Maybe TestRunner -> TestOptions -> IO ()
startIO Nothing _ = warningIO "git-annex was built without its test suite; not testing"
startIO (Just runner) o = runner o