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.
This commit is contained in:
Joey Hess 2014-02-03 12:03:10 -04:00
parent ecd9b6731e
commit 1c997fd08c
4 changed files with 9 additions and 10 deletions

11
Test.hs
View file

@ -781,6 +781,7 @@ test_conflict_resolution_movein_bug env = withtmpclonerepo env False $ \r1 -> do
forM_ [r1, r2] $ \r -> indir env r $ do forM_ [r1, r2] $ \r -> indir env r $ do
{- Get all files, see check below. -} {- Get all files, see check below. -}
git_annex env "get" [] @? "get failed" git_annex env "get" [] @? "get failed"
disconnectOrigin
pair env r1 r2 pair env r1 r2
forM_ [r1, r2] $ \r -> indir env r $ do forM_ [r1, r2] $ \r -> indir env r $ do
{- Set up a conflict. -} {- Set up a conflict. -}
@ -815,10 +816,12 @@ test_mixed_conflict_resolution env = do
check_mixed_conflict inr1 = withtmpclonerepo env False $ \r1 -> check_mixed_conflict inr1 = withtmpclonerepo env False $ \r1 ->
withtmpclonerepo env False $ \r2 -> do withtmpclonerepo env False $ \r2 -> do
indir env r1 $ do indir env r1 $ do
disconnectOrigin
writeFile conflictor "conflictor" writeFile conflictor "conflictor"
git_annex env "add" [conflictor] @? "add conflicter failed" git_annex env "add" [conflictor] @? "add conflicter failed"
git_annex env "sync" [] @? "sync failed in r1" git_annex env "sync" [] @? "sync failed in r1"
indir env r2 $ do indir env r2 $ do
disconnectOrigin
createDirectory conflictor createDirectory conflictor
writeFile (conflictor </> "subfile") "subfile" writeFile (conflictor </> "subfile") "subfile"
git_annex env "add" [conflictor] @? "add conflicter failed" git_annex env "add" [conflictor] @? "add conflicter failed"
@ -838,16 +841,13 @@ test_mixed_conflict_resolution env = do
<$> getDirectoryContents d) <$> getDirectoryContents d)
@? (d ++ "conflictor file missing") @? (d ++ "conflictor file missing")
{- Set up repos as remotes of each other; {- Set up repos as remotes of each other. -}
- remove origin since we're going to sync
- some changes to a file. -}
pair :: TestEnv -> FilePath -> FilePath -> Assertion pair :: TestEnv -> FilePath -> FilePath -> Assertion
pair env r1 r2 = forM_ [r1, r2] $ \r -> indir env r $ do pair env r1 r2 = forM_ [r1, r2] $ \r -> indir env r $ do
when (r /= r1) $ when (r /= r1) $
boolSystem "git" [Params "remote add r1", File ("../../" ++ r1)] @? "remote add" boolSystem "git" [Params "remote add r1", File ("../../" ++ r1)] @? "remote add"
when (r /= r2) $ when (r /= r2) $
boolSystem "git" [Params "remote add r2", File ("../../" ++ r2)] @? "remote add" boolSystem "git" [Params "remote add r2", File ("../../" ++ r2)] @? "remote add"
boolSystem "git" [Params "remote rm origin"] @? "remote rm"
test_map :: TestEnv -> Assertion test_map :: TestEnv -> Assertion
test_map env = intmpclonerepo env $ do test_map env = intmpclonerepo env $ do
@ -1117,6 +1117,9 @@ withtmpclonerepo env bare a = do
dir <- tmprepodir dir <- tmprepodir
bracket (clonerepo env mainrepodir dir bare) cleanup a 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 :: TestEnv -> (FilePath -> Assertion) -> Assertion
withgitrepo env = bracket (setuprepo env mainrepodir) return withgitrepo env = bracket (setuprepo env mainrepodir) return

1
debian/changelog vendored
View file

@ -22,6 +22,7 @@ git-annex (5.20140128) UNRELEASED; urgency=medium
* Windows: Avoid using unix-compat's rename, which refuses to rename * Windows: Avoid using unix-compat's rename, which refuses to rename
directories. directories.
* Windows: Fix deletion of repositories by test suite and webapp. * 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 -- Joey Hess <joeyh@debian.org> Tue, 28 Jan 2014 13:57:19 -0400

View file

@ -19,6 +19,4 @@ windows 7, NTFS = 2 FAILs
see attachment for full log of git annex test output 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!) > Reproduced and [[fixed|done]]. --[[Joey]]
> and have put some analysis in [[todo/windows_support]] about them.
> --[[Joey]]

View file

@ -12,9 +12,6 @@ now! --[[Joey]]
is much slower than on systems supporting connection caching. is much slower than on systems supporting connection caching.
* The test suite does not 100% pass, although it seems to be getting * The test suite does not 100% pass, although it seems to be getting
quite close! Current known failures: 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. * 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 This is odd because the test suite goes to some lengths to
get env vars set to prevent this problem. get env vars set to prevent this problem.