From 9d2f661602049e0edbdac4fdcb2adb6b1f71b5de Mon Sep 17 00:00:00 2001 From: Florian Zschocke Date: Tue, 20 Aug 2013 19:42:17 +0200 Subject: [PATCH] Adjust unit tests for Windows. --- .../java/com/gitblit/tests/JGitUtilsTest.java | 18 +-- .../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 6f86b9f7..f18c05f8 100644 --- a/src/test/java/com/gitblit/tests/JGitUtilsTest.java +++ b/src/test/java/com/gitblit/tests/JGitUtilsTest.java @@ -161,16 +161,20 @@ public class JGitUtilsTest { 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 574686ba..2430b6ea 100644 --- a/src/test/java/com/gitblit/tests/JnaUtilsTest.java +++ b/src/test/java/com/gitblit/tests/JnaUtilsTest.java @@ -37,64 +37,78 @@ public class JnaUtilsTest { @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()); + } } } -- 2.39.5