break dependency cycle by special casing running of test command
This commit is contained in:
parent
2b805b9589
commit
3a32454b13
3 changed files with 14 additions and 19 deletions
|
@ -7,27 +7,17 @@
|
||||||
|
|
||||||
module Command.Test where
|
module Command.Test where
|
||||||
|
|
||||||
import Common.Annex
|
|
||||||
import Command
|
import Command
|
||||||
import qualified Command.Init
|
|
||||||
import qualified Command.Add
|
|
||||||
import qualified Command.Drop
|
|
||||||
import qualified Command.Get
|
|
||||||
import qualified Command.Move
|
|
||||||
import qualified Command.Copy
|
|
||||||
import qualified Command.Sync
|
|
||||||
import qualified Command.Whereis
|
|
||||||
import qualified Command.Fsck
|
|
||||||
import qualified Test
|
|
||||||
|
|
||||||
def :: [Command]
|
def :: [Command]
|
||||||
def = [noCommit $ noRepo showHelp $ dontCheck repoExists $
|
def = [ dontCheck repoExists $
|
||||||
command "test" paramNothing seek "run built-in test suite"]
|
command "test" paramNothing seek "run built-in test suite"]
|
||||||
|
|
||||||
seek :: [CommandSeek]
|
seek :: [CommandSeek]
|
||||||
seek = [withWords start]
|
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. -}
|
||||||
start :: [String] -> CommandStart
|
start :: [String] -> CommandStart
|
||||||
start _ = do
|
start _ = error "Cannot specify any additional parameters when running test"
|
||||||
liftIO $ Test.main
|
|
||||||
stop
|
|
||||||
|
|
4
Test.hs
4
Test.hs
|
@ -941,8 +941,8 @@ unannexed = runchecks [checkregularfile, checkcontent, checkwritable]
|
||||||
|
|
||||||
prepare :: IO ()
|
prepare :: IO ()
|
||||||
prepare = do
|
prepare = do
|
||||||
whenM (doesDirectoryExist) tmpdir $
|
whenM (doesDirectoryExist tmpdir) $
|
||||||
error $ "The temporary directory " ++ tmpdir ++ "already exists; cannot run test suite."
|
error $ "The temporary directory " ++ tmpdir ++ " already exists; cannot run test suite."
|
||||||
|
|
||||||
-- While PATH is mostly avoided, the commit hook does run it,
|
-- While PATH is mostly avoided, the commit hook does run it,
|
||||||
-- and so does git_annex_output. Make sure that the just-built
|
-- and so does git_annex_output. Make sure that the just-built
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{- git-annex main program stub
|
{- git-annex main program stub
|
||||||
-
|
-
|
||||||
- Copyright 2010,2012 Joey Hess <joey@kitenet.net>
|
- Copyright 2010-2013 Joey Hess <joey@kitenet.net>
|
||||||
-
|
-
|
||||||
- Licensed under the GNU GPL version 3 or higher.
|
- Licensed under the GNU GPL version 3 or higher.
|
||||||
-}
|
-}
|
||||||
|
@ -10,6 +10,7 @@ import System.FilePath
|
||||||
|
|
||||||
import qualified GitAnnex
|
import qualified GitAnnex
|
||||||
import qualified GitAnnexShell
|
import qualified GitAnnexShell
|
||||||
|
import qualified Test
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = run =<< getProgName
|
main = run =<< getProgName
|
||||||
|
@ -18,4 +19,8 @@ main = run =<< getProgName
|
||||||
| isshell n = go GitAnnexShell.run
|
| isshell n = go GitAnnexShell.run
|
||||||
| otherwise = go GitAnnex.run
|
| otherwise = go GitAnnex.run
|
||||||
isshell n = takeFileName n == "git-annex-shell"
|
isshell n = takeFileName n == "git-annex-shell"
|
||||||
go a = a =<< getArgs
|
go a = do
|
||||||
|
ps <- getArgs
|
||||||
|
if ps == ["test"]
|
||||||
|
then Test.main
|
||||||
|
else a ps
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue