Skip to content

Commit fc1f1e3

Browse files
committed
add test for Mercurial tag parsing
1 parent e264dd9 commit fc1f1e3

File tree

2 files changed

+38
-3
lines changed

2 files changed

+38
-3
lines changed

opengrok-indexer/src/main/java/org/opengrok/indexer/history/Repository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
*/
1919

2020
/*
21-
* Copyright (c) 2008, 2023, Oracle and/or its affiliates. All rights reserved.
21+
* Copyright (c) 2008, 2024, Oracle and/or its affiliates. All rights reserved.
2222
* Portions Copyright (c) 2017, 2020, Chris Fraire <[email protected]>.
2323
*/
2424
package org.opengrok.indexer.history;
@@ -283,7 +283,7 @@ boolean hasFileBasedTags() {
283283
return false;
284284
}
285285

286-
NavigableSet<TagEntry> getTagList() {
286+
@Nullable NavigableSet<TagEntry> getTagList() {
287287
return this.tagList;
288288
}
289289

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

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,27 @@
3131
import org.junit.jupiter.params.provider.MethodSource;
3232
import org.junit.jupiter.params.provider.ValueSource;
3333
import org.opengrok.indexer.condition.EnabledForRepository;
34+
import org.opengrok.indexer.configuration.CommandTimeoutType;
3435
import org.opengrok.indexer.configuration.RuntimeEnvironment;
3536
import org.opengrok.indexer.util.Executor;
37+
import org.opengrok.indexer.util.IOUtils;
3638
import org.opengrok.indexer.util.TestRepository;
3739

3840
import java.io.File;
3941
import java.io.IOException;
4042
import java.io.InputStream;
4143
import java.net.URISyntaxException;
44+
import java.nio.file.Files;
45+
import java.nio.file.Path;
4246
import java.nio.file.Paths;
4347
import java.util.ArrayList;
4448
import java.util.Arrays;
4549
import java.util.Collections;
50+
import java.util.Date;
4651
import java.util.List;
52+
import java.util.Objects;
53+
import java.util.Set;
54+
import java.util.TreeSet;
4755
import java.util.stream.Collectors;
4856
import java.util.stream.Stream;
4957

@@ -97,7 +105,7 @@ public class MercurialRepositoryTest {
97105
*/
98106
private void setUpTestRepository() throws IOException, URISyntaxException {
99107
repository = new TestRepository();
100-
repository.create(getClass().getResource("/repositories"));
108+
repository.create(Objects.requireNonNull(getClass().getResource("/repositories")));
101109
repositoryRoot = new File(repository.getSourceRoot(), "mercurial");
102110
}
103111

@@ -441,4 +449,31 @@ void testAnnotationPositive(Pair<String, List<String>> pair) throws Exception {
441449
List<String> revisions = new ArrayList<>(annotation.getRevisions());
442450
assertEquals(pair.getValue(), revisions);
443451
}
452+
453+
@Test
454+
void testBuildTagListEmpty() throws Exception {
455+
Path repositoryRootPath = Files.createDirectory(Path.of(RuntimeEnvironment.getInstance().getSourceRootPath(),
456+
"emptyTagsTest"));
457+
File repositoryRoot = repositoryRootPath.toFile();
458+
assertTrue(repositoryRoot.isDirectory());
459+
runHgCommand(repositoryRoot, "init");
460+
MercurialRepository hgRepo = (MercurialRepository) RepositoryFactory.getRepository(repositoryRoot);
461+
assertNotNull(hgRepo);
462+
hgRepo.buildTagList(new File(hgRepo.getDirectoryName()), CommandTimeoutType.INDEXER);
463+
assertEquals(0, hgRepo.getTagList().size());
464+
IOUtils.removeRecursive(repositoryRootPath);
465+
}
466+
467+
@Test
468+
void testBuildTagListInitial() throws Exception {
469+
MercurialRepository hgRepo = (MercurialRepository) RepositoryFactory.getRepository(repositoryRoot);
470+
assertNotNull(hgRepo);
471+
hgRepo.buildTagList(new File(hgRepo.getDirectoryName()), CommandTimeoutType.INDEXER);
472+
var tags = hgRepo.getTagList();
473+
assertEquals(1, tags.size());
474+
Set<TagEntry> expectedTags = new TreeSet<>();
475+
TagEntry tagEntry = new MercurialTagEntry(7, "start_of_novel");
476+
expectedTags.add(tagEntry);
477+
assertEquals(expectedTags, tags);
478+
}
444479
}

0 commit comments

Comments
 (0)