summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-02-03 12:03:10 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-02-03 12:12:50 -0400
commitf5d0c8f0bf7f018479eb4da7e8c41598b7aacb7d (patch)
tree29bb0536642023b761f9c7188e2532749579e5f2
parentf0c652b2a9ebc29e734316b8f87770fc8960aae2 (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.hs11
-rw-r--r--debian/changelog1
-rw-r--r--doc/bugs/test_failures_on_window_for_5.20131118.mdwn4
-rw-r--r--doc/todo/windows_support.mdwn3
4 files changed, 9 insertions, 10 deletions
diff --git a/Test.hs b/Test.hs
index 09798abf1..581b36859 100644
--- a/Test.hs
+++ b/Test.hs
@@ -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.