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
{- 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

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
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

View file

@ -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]]

View file

@ -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.