Skip to content

Commit c7652f0

Browse files
author
Vladimir Kotal
committed
test relative path
1 parent 56378c9 commit c7652f0

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

opengrok-indexer/src/test/java/org/opengrok/indexer/history/GitRepositoryTest.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,11 @@
2525
package org.opengrok.indexer.history;
2626

2727
import java.io.File;
28+
import java.io.FileWriter;
2829
import java.io.IOException;
2930
import java.io.InputStream;
31+
import java.io.Writer;
32+
import java.nio.file.Path;
3033
import java.nio.file.Paths;
3134
import java.util.Arrays;
3235
import java.util.Collections;
@@ -38,6 +41,7 @@
3841
import java.util.stream.Collectors;
3942

4043
import org.eclipse.jgit.api.Git;
44+
import org.eclipse.jgit.lib.Constants;
4145
import org.eclipse.jgit.lib.ObjectId;
4246
import org.eclipse.jgit.lib.Ref;
4347
import org.eclipse.jgit.revwalk.RevCommit;
@@ -812,14 +816,25 @@ private String addSubmodule(String submoduleName) throws Exception {
812816

813817
@Test
814818
void testSubmodule() throws Exception {
815-
String submodulePath = addSubmodule("submodule");
819+
String submoduleOriginPath = addSubmodule("submodule");
820+
Path submodulePath = Paths.get(repository.getSourceRoot(), "git", "submodule");
816821

817-
Repository subRepo = RepositoryFactory.
818-
getRepository(Paths.get(repository.getSourceRoot(), "git", "submodule").toFile());
822+
Repository subRepo = RepositoryFactory.getRepository(submodulePath.toFile());
823+
assertNotNull(subRepo);
824+
assertNotNull(subRepo.getParent());
825+
assertTrue(subRepo.getParent().contains(submoduleOriginPath));
826+
827+
// Test relative path too. JGit always writes absolute path so overwrite the contents directly.
828+
File gitFile = Paths.get(submodulePath.toString(), Constants.DOT_GIT).toFile();
829+
assertTrue(gitFile.isFile());
830+
try (Writer writer = new FileWriter(gitFile)) {
831+
writer.write(Constants.GITDIR + ".." + File.separator + Constants.DOT_GIT +
832+
File.separator + Constants.MODULES + File.separator + "submodule");
833+
}
834+
subRepo = RepositoryFactory.getRepository(submodulePath.toFile());
819835
assertNotNull(subRepo);
820836
assertNotNull(subRepo.getParent());
821-
assertTrue(subRepo.getParent().contains(submodulePath));
822837

823-
// TODO: test relative path too
838+
// TODO: cleanup
824839
}
825840
}

0 commit comments

Comments
 (0)