[JGIT PATCH] Fixed RefUpdateTest.tryRenameWhenLocked() family of tests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If file is left locked after the test, the cleanup does
not work on Windows since locked files cannot be deleted. 
The patch adds unlock for the aquired lock, so the cleanup 
now works.

Signed-off-by: Constantine Plotnikov <constantine.plotnikov@xxxxxxxxx>
---
This is a second time the problem occurs. Please release all locks
that are being acquired, otherwise the tests will fail on Windows.
 
 .../tst/org/spearce/jgit/lib/RefUpdateTest.java    |   51 +++++++++++---------
 1 files changed, 28 insertions(+), 23 deletions(-)

diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RefUpdateTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RefUpdateTest.java
index 83eb4ed..ec00fac 100644
--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RefUpdateTest.java
+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RefUpdateTest.java
@@ -463,29 +463,34 @@ assertTrue("internal check, we have a log", new File(db.getDirectory(),
 				"logs/" + fromName).exists());
 
 		// "someone" has branch X locked
-		assertTrue(new LockFile(new File(db.getDirectory(), toLock)).lock());
-
-		// Now this is our test
-		RefRename renameRef = db.renameRef(fromName, toName);
-		Result result = renameRef.rename();
-		assertEquals(Result.LOCK_FAILURE, result);
-
-		// Check that the involved refs are the same despite the failure
-		assertExists(false, toName);
-		if (!toLock.equals(toName))
-			assertExists(false, toName + ".lock");
-		assertExists(true, toLock + ".lock");
-		if (!toLock.equals(fromName))
-			assertExists(false, "logs/" + fromName + ".lock");
-		assertExists(false, "logs/" + toName + ".lock");
-		assertEquals(oldHeadId, db.resolve(Constants.HEAD));
-		assertEquals(oldfromId, db.resolve(fromName));
-		assertNull(db.resolve(toName));
-		assertEquals(oldFromLog.toString(), db.getReflogReader(fromName)
-				.getReverseEntries().toString());
-		if (oldHeadId != null)
-			assertEquals(oldHeadLog, db.getReflogReader(Constants.HEAD)
-					.getReverseEntries());
+		LockFile lockFile = new LockFile(new File(db.getDirectory(), toLock));
+		try {
+			assertTrue(lockFile.lock());
+
+			// Now this is our test
+			RefRename renameRef = db.renameRef(fromName, toName);
+			Result result = renameRef.rename();
+			assertEquals(Result.LOCK_FAILURE, result);
+	
+			// Check that the involved refs are the same despite the failure
+			assertExists(false, toName);
+			if (!toLock.equals(toName))
+				assertExists(false, toName + ".lock");
+			assertExists(true, toLock + ".lock");
+			if (!toLock.equals(fromName))
+				assertExists(false, "logs/" + fromName + ".lock");
+			assertExists(false, "logs/" + toName + ".lock");
+			assertEquals(oldHeadId, db.resolve(Constants.HEAD));
+			assertEquals(oldfromId, db.resolve(fromName));
+			assertNull(db.resolve(toName));
+			assertEquals(oldFromLog.toString(), db.getReflogReader(fromName)
+					.getReverseEntries().toString());
+			if (oldHeadId != null)
+				assertEquals(oldHeadLog, db.getReflogReader(Constants.HEAD)
+						.getReverseEntries());
+		} finally {
+			lockFile.unlock();
+		}
 	}
 
 	private void assertExists(boolean positive, String toName) {
-- 
1.6.1.2

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]