diff options
author | Joey Hess <joey@kitenet.net> | 2014-02-03 12:03:10 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-02-03 12:12:50 -0400 |
commit | f5d0c8f0bf7f018479eb4da7e8c41598b7aacb7d (patch) | |
tree | 29bb0536642023b761f9c7188e2532749579e5f2 | |
parent | f0c652b2a9ebc29e734316b8f87770fc8960aae2 (diff) |
fix test suite to pass on windows
On windows, the sync of the second cloned repo to origin failed, because
synced/master was a non-fast-forward. This may be a bug of its own, but
it's not the issue that this test was intended to test, so disconnect
the repos from origin before syncing.
-rw-r--r-- | Test.hs | 11 | ||||
-rw-r--r-- | debian/changelog | 1 | ||||
-rw-r--r-- | doc/bugs/test_failures_on_window_for_5.20131118.mdwn | 4 | ||||
-rw-r--r-- | doc/todo/windows_support.mdwn | 3 |
4 files changed, 9 insertions, 10 deletions
@@ -781,6 +781,7 @@ test_conflict_resolution_movein_bug env = withtmpclonerepo env False $ \r1 -> do forM_ [r1, r2] $ \r -> indir env r $ do {- Get all files, see check below. -} git_annex env "get" [] @? "get failed" + disconnectOrigin pair env r1 r2 forM_ [r1, r2] $ \r -> indir env r $ do {- Set up a conflict. -} @@ -815,10 +816,12 @@ test_mixed_conflict_resolution env = do check_mixed_conflict inr1 = withtmpclonerepo env False $ \r1 -> withtmpclonerepo env False $ \r2 -> do indir env r1 $ do + disconnectOrigin writeFile conflictor "conflictor" git_annex env "add" [conflictor] @? "add conflicter failed" git_annex env "sync" [] @? "sync failed in r1" indir env r2 $ do + disconnectOrigin createDirectory conflictor writeFile (conflictor </> "subfile") "subfile" git_annex env "add" [conflictor] @? "add conflicter failed" @@ -838,16 +841,13 @@ test_mixed_conflict_resolution env = do <$> getDirectoryContents d) @? (d ++ "conflictor file missing") -{- Set up repos as remotes of each other; - - remove origin since we're going to sync - - some changes to a file. -} +{- Set up repos as remotes of each other. -} pair :: TestEnv -> FilePath -> FilePath -> Assertion pair env r1 r2 = forM_ [r1, r2] $ \r -> indir env r $ do when (r /= r1) $ boolSystem "git" [Params "remote add r1", File ("../../" ++ r1)] @? "remote add" when (r /= r2) $ boolSystem "git" [Params "remote add r2", File ("../../" ++ r2)] @? "remote add" - boolSystem "git" [Params "remote rm origin"] @? "remote rm" test_map :: TestEnv -> Assertion test_map env = intmpclonerepo env $ do @@ -1117,6 +1117,9 @@ withtmpclonerepo env bare a = do dir <- tmprepodir bracket (clonerepo env mainrepodir dir bare) cleanup a +disconnectOrigin :: Assertion +disconnectOrigin = boolSystem "git" [Params "remote rm origin"] @? "remote rm" + withgitrepo :: TestEnv -> (FilePath -> Assertion) -> Assertion withgitrepo env = bracket (setuprepo env mainrepodir) return diff --git a/debian/changelog b/debian/changelog index dc58bc87d..e6607fdde 100644 --- a/debian/changelog +++ b/debian/changelog @@ -22,6 +22,7 @@ git-annex (5.20140128) UNRELEASED; urgency=medium * Windows: Avoid using unix-compat's rename, which refuses to rename directories. * Windows: Fix deletion of repositories by test suite and webapp. + * Windows: Test suite 100% passes again. -- Joey Hess <joeyh@debian.org> Tue, 28 Jan 2014 13:57:19 -0400 diff --git a/doc/bugs/test_failures_on_window_for_5.20131118.mdwn b/doc/bugs/test_failures_on_window_for_5.20131118.mdwn index a90963d85..319eae4f1 100644 --- a/doc/bugs/test_failures_on_window_for_5.20131118.mdwn +++ b/doc/bugs/test_failures_on_window_for_5.20131118.mdwn @@ -19,6 +19,4 @@ windows 7, NTFS = 2 FAILs see attachment for full log of git annex test output -> I am seeing the same 2 failures now (I used to see a lot more!) -> and have put some analysis in [[todo/windows_support]] about them. -> --[[Joey]] +> Reproduced and [[fixed|done]]. --[[Joey]] diff --git a/doc/todo/windows_support.mdwn b/doc/todo/windows_support.mdwn index f6d08d25d..777c946a6 100644 --- a/doc/todo/windows_support.mdwn +++ b/doc/todo/windows_support.mdwn @@ -12,9 +12,6 @@ now! --[[Joey]] is much slower than on systems supporting connection caching. * The test suite does not 100% pass, although it seems to be getting quite close! Current known failures: - * "conflict_resolution (mixed directory and file)" test fails; - not because the conflict resolution fails, but the sync fails - pushing to synced/master with a non-fast-forward failure. * Some tests fail if git has not had the username and email configured. This is odd because the test suite goes to some lengths to get env vars set to prevent this problem. |