From 9d2f661602049e0edbdac4fdcb2adb6b1f71b5de Mon Sep 17 00:00:00 2001
From: Florian Zschocke <florian.zschocke@cycos.com>
Date: Mon, 26 Aug 2013 06:39:57 -0400
Subject: [PATCH] Adjust unit tests for Windows.

---
 src/test/java/com/gitblit/tests/JGitUtilsTest.java |   18 +++--
 src/test/java/com/gitblit/tests/JnaUtilsTest.java  |  106 ++++++++++++++++++++---------------
 2 files changed, 71 insertions(+), 53 deletions(-)

diff --git a/src/test/java/com/gitblit/tests/JGitUtilsTest.java b/src/test/java/com/gitblit/tests/JGitUtilsTest.java
index 6f86b9f..f18c05f 100644
--- a/src/test/java/com/gitblit/tests/JGitUtilsTest.java
+++ b/src/test/java/com/gitblit/tests/JGitUtilsTest.java
@@ -161,16 +161,20 @@
 			assertFalse(JGitUtils.hasCommits(repository));
 			assertNull(JGitUtils.getFirstCommit(repository, null));
 
+			assertEquals("1", repository.getConfig().getString("core", null, "sharedRepository"));
+
 			assertTrue(folder.exists());
-			int mode = JnaUtils.getFilemode(folder);
-			assertEquals(JnaUtils.S_ISGID, mode & JnaUtils.S_ISGID);
-			assertEquals(JnaUtils.S_IRWXG, mode & JnaUtils.S_IRWXG);
+			if (! JnaUtils.isWindows()) {
+				int mode = JnaUtils.getFilemode(folder);
+				assertEquals(JnaUtils.S_ISGID, mode & JnaUtils.S_ISGID);
+				assertEquals(JnaUtils.S_IRWXG, mode & JnaUtils.S_IRWXG);
 
-			mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/HEAD");
-			assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, mode & JnaUtils.S_IRWXG);
+				mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/HEAD");
+				assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, mode & JnaUtils.S_IRWXG);
 
-			mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/config");
-			assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, mode & JnaUtils.S_IRWXG);
+				mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/config");
+				assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, mode & JnaUtils.S_IRWXG);
+			}
 
 			repository.close();
 			RepositoryCache.close(repository);
diff --git a/src/test/java/com/gitblit/tests/JnaUtilsTest.java b/src/test/java/com/gitblit/tests/JnaUtilsTest.java
index 574686b..2430b6e 100644
--- a/src/test/java/com/gitblit/tests/JnaUtilsTest.java
+++ b/src/test/java/com/gitblit/tests/JnaUtilsTest.java
@@ -37,64 +37,78 @@
 
 	@Test
 	public void testGetFilemode() throws IOException {
-		String repositoryName = "NewJnaTestRepository.git";
-		Repository repository = JGitUtils.createRepository(GitBlitSuite.REPOSITORIES, repositoryName);
-		File folder = FileKey.resolve(new File(GitBlitSuite.REPOSITORIES, repositoryName), FS.DETECTED);
-		assertTrue(folder.exists());
+		if (JnaUtils.isWindows()) {
+			try {
+				JnaUtils.getFilemode(GitBlitSuite.REPOSITORIES);
+			} catch(UnsupportedOperationException e) {}
+		}
+		else {
+			String repositoryName = "NewJnaTestRepository.git";
+			Repository repository = JGitUtils.createRepository(GitBlitSuite.REPOSITORIES, repositoryName);
+			File folder = FileKey.resolve(new File(GitBlitSuite.REPOSITORIES, repositoryName), FS.DETECTED);
+			assertTrue(folder.exists());
 
-		int mode = JnaUtils.getFilemode(folder);
-		assertTrue(mode > 0);
-		assertEquals(JnaUtils.S_IFDIR, (mode & JnaUtils.S_IFMT)); // directory
-		assertEquals(JnaUtils.S_IRUSR | JnaUtils.S_IWUSR | JnaUtils.S_IXUSR, (mode & JnaUtils.S_IRWXU)); // owner full access
+			int mode = JnaUtils.getFilemode(folder);
+			assertTrue(mode > 0);
+			assertEquals(JnaUtils.S_IFDIR, (mode & JnaUtils.S_IFMT)); // directory
+			assertEquals(JnaUtils.S_IRUSR | JnaUtils.S_IWUSR | JnaUtils.S_IXUSR, (mode & JnaUtils.S_IRWXU)); // owner full access
 
-		mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/config");
-		assertTrue(mode > 0);
-		assertEquals(JnaUtils.S_IFREG, (mode & JnaUtils.S_IFMT)); // directory
-		assertEquals(JnaUtils.S_IRUSR | JnaUtils.S_IWUSR, (mode & JnaUtils.S_IRWXU)); // owner full access
+			mode = JnaUtils.getFilemode(folder.getAbsolutePath() + "/config");
+			assertTrue(mode > 0);
+			assertEquals(JnaUtils.S_IFREG, (mode & JnaUtils.S_IFMT)); // directory
+			assertEquals(JnaUtils.S_IRUSR | JnaUtils.S_IWUSR, (mode & JnaUtils.S_IRWXU)); // owner full access
 
-		repository.close();
-		RepositoryCache.close(repository);
-		FileUtils.deleteDirectory(repository.getDirectory());
+			repository.close();
+			RepositoryCache.close(repository);
+			FileUtils.deleteDirectory(repository.getDirectory());
+			}
 	}
 
 
 	@Test
 	public void testSetFilemode() throws IOException {
-		String repositoryName = "NewJnaTestRepository.git";
-		Repository repository = JGitUtils.createRepository(GitBlitSuite.REPOSITORIES, repositoryName);
-		File folder = FileKey.resolve(new File(GitBlitSuite.REPOSITORIES, repositoryName), FS.DETECTED);
-		assertTrue(folder.exists());
+		if (JnaUtils.isWindows()) {
+			try {
+				JnaUtils.getFilemode(GitBlitSuite.REPOSITORIES);
+			} catch(UnsupportedOperationException e) {}
+		}
+		else {
+			String repositoryName = "NewJnaTestRepository.git";
+			Repository repository = JGitUtils.createRepository(GitBlitSuite.REPOSITORIES, repositoryName);
+			File folder = FileKey.resolve(new File(GitBlitSuite.REPOSITORIES, repositoryName), FS.DETECTED);
+			assertTrue(folder.exists());
 
-		File path = new File(folder, "refs");
-		int mode = JnaUtils.getFilemode(path);
-		assertTrue(mode > 0);
-		assertEquals(JnaUtils.S_IFDIR, (mode & JnaUtils.S_IFMT)); // directory
-		assertEquals(JnaUtils.S_IRUSR | JnaUtils.S_IWUSR | JnaUtils.S_IXUSR, (mode & JnaUtils.S_IRWXU)); // owner full access
+			File path = new File(folder, "refs");
+			int mode = JnaUtils.getFilemode(path);
+			assertTrue(mode > 0);
+			assertEquals(JnaUtils.S_IFDIR, (mode & JnaUtils.S_IFMT)); // directory
+			assertEquals(JnaUtils.S_IRUSR | JnaUtils.S_IWUSR | JnaUtils.S_IXUSR, (mode & JnaUtils.S_IRWXU)); // owner full access
 
-		mode |= JnaUtils.S_ISGID;
-		mode |= JnaUtils.S_IRWXG;
-		int ret = JnaUtils.setFilemode(path, mode);
-		assertEquals(0, ret);
-		mode = JnaUtils.getFilemode(path);
-		assertTrue(mode > 0);
-		assertEquals(JnaUtils.S_ISGID, (mode & JnaUtils.S_ISGID)); // set-gid-bit set
-		assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP | JnaUtils.S_IXGRP, (mode & JnaUtils.S_IRWXG)); // group full access
+			mode |= JnaUtils.S_ISGID;
+			mode |= JnaUtils.S_IRWXG;
+			int ret = JnaUtils.setFilemode(path, mode);
+			assertEquals(0, ret);
+			mode = JnaUtils.getFilemode(path);
+			assertTrue(mode > 0);
+			assertEquals(JnaUtils.S_ISGID, (mode & JnaUtils.S_ISGID)); // set-gid-bit set
+			assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP | JnaUtils.S_IXGRP, (mode & JnaUtils.S_IRWXG)); // group full access
 
-		path = new File(folder, "config");
-		mode = JnaUtils.getFilemode(path.getAbsolutePath());
-		assertTrue(mode > 0);
-		assertEquals(JnaUtils.S_IFREG, (mode & JnaUtils.S_IFMT)); // directory
-		assertEquals(JnaUtils.S_IRUSR | JnaUtils.S_IWUSR, (mode & JnaUtils.S_IRWXU)); // owner full access
+			path = new File(folder, "config");
+			mode = JnaUtils.getFilemode(path.getAbsolutePath());
+			assertTrue(mode > 0);
+			assertEquals(JnaUtils.S_IFREG, (mode & JnaUtils.S_IFMT)); // directory
+			assertEquals(JnaUtils.S_IRUSR | JnaUtils.S_IWUSR, (mode & JnaUtils.S_IRWXU)); // owner full access
 
-		mode |= (JnaUtils.S_IRGRP | JnaUtils.S_IWGRP);
-		ret = JnaUtils.setFilemode(path.getAbsolutePath(), mode);
-		assertEquals(0, ret);
-		mode = JnaUtils.getFilemode(path.getAbsolutePath());
-		assertTrue(mode > 0);
-		assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, (mode & JnaUtils.S_IRWXG)); // group full access
+			mode |= (JnaUtils.S_IRGRP | JnaUtils.S_IWGRP);
+			ret = JnaUtils.setFilemode(path.getAbsolutePath(), mode);
+			assertEquals(0, ret);
+			mode = JnaUtils.getFilemode(path.getAbsolutePath());
+			assertTrue(mode > 0);
+			assertEquals(JnaUtils.S_IRGRP | JnaUtils.S_IWGRP, (mode & JnaUtils.S_IRWXG)); // group full access
 
-		repository.close();
-		RepositoryCache.close(repository);
-		FileUtils.deleteDirectory(repository.getDirectory());
+			repository.close();
+			RepositoryCache.close(repository);
+			FileUtils.deleteDirectory(repository.getDirectory());
+		}
 	}
 }

--
Gitblit v1.9.1