123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package org.eclipse.jgit.internal.storage.pack;
-
- import static org.eclipse.jgit.storage.pack.PackConfig.DEFAULT_BITMAP_DISTANT_COMMIT_SPAN;
- import static org.eclipse.jgit.storage.pack.PackConfig.DEFAULT_BITMAP_RECENT_COMMIT_COUNT;
- import static org.eclipse.jgit.storage.pack.PackConfig.DEFAULT_BITMAP_RECENT_COMMIT_SPAN;
- import static org.junit.Assert.assertEquals;
-
- import java.io.IOException;
- import java.util.Collection;
- import java.util.Collections;
- import java.util.List;
- import java.util.Set;
-
- import org.eclipse.jgit.errors.IncorrectObjectTypeException;
- import org.eclipse.jgit.errors.MissingObjectException;
- import org.eclipse.jgit.internal.storage.file.PackBitmapIndexBuilder;
- import org.eclipse.jgit.lib.AbbreviatedObjectId;
- import org.eclipse.jgit.lib.AnyObjectId;
- import org.eclipse.jgit.lib.ObjectId;
- import org.eclipse.jgit.lib.ObjectLoader;
- import org.eclipse.jgit.lib.ObjectReader;
- import org.eclipse.jgit.storage.pack.PackConfig;
- import org.junit.Test;
-
- /** Tests for the {@link PackWriterBitmapPreparer}. */
- public class PackWriterBitmapPreparerTest {
- private static class StubObjectReader extends ObjectReader {
- @Override
- public ObjectReader newReader() {
- return null;
- }
-
- @Override
- public Collection<ObjectId> resolve(AbbreviatedObjectId id)
- throws IOException {
- return null;
- }
-
- @Override
- public ObjectLoader open(AnyObjectId objectId, int typeHint)
- throws MissingObjectException, IncorrectObjectTypeException,
- IOException {
- return null;
- }
-
- @Override
- public Set<ObjectId> getShallowCommits() throws IOException {
- return null;
- }
-
- @Override
- public void close() {
- // stub
- }
- }
-
- @Test
- public void testNextSelectionDistanceForActiveBranch() throws Exception {
- PackWriterBitmapPreparer preparer = newPeparer(
- DEFAULT_BITMAP_RECENT_COMMIT_COUNT, // 20000
- DEFAULT_BITMAP_RECENT_COMMIT_SPAN, // 100
- DEFAULT_BITMAP_DISTANT_COMMIT_SPAN); // 5000
- int[][] distancesAndSpans = { { 0, 100 }, { 100, 100 }, { 10000, 100 },
- { 20000, 100 }, { 20100, 100 }, { 20102, 102 }, { 20200, 200 },
- { 22200, 2200 }, { 24999, 4999 }, { 25000, 5000 },
- { 50000, 5000 }, { 1000000, 5000 }, };
-
- for (int[] pair : distancesAndSpans) {
- assertEquals(pair[1], preparer.nextSpan(pair[0]));
- }
- }
-
- @Test
- public void testNextSelectionDistanceWithFewerRecentCommits()
- throws Exception {
- PackWriterBitmapPreparer preparer = newPeparer(1000,
- DEFAULT_BITMAP_RECENT_COMMIT_SPAN, // 100
- DEFAULT_BITMAP_DISTANT_COMMIT_SPAN); // 5000
- int[][] distancesAndSpans = { { 0, 100 }, { 100, 100 }, { 1000, 100 },
- { 1100, 100 }, { 1111, 111 }, { 2000, 1000 }, { 5999, 4999 },
- { 6000, 5000 }, { 10000, 5000 }, { 50000, 5000 },
- { 1000000, 5000 } };
-
- for (int[] pair : distancesAndSpans) {
- assertEquals(pair[1], preparer.nextSpan(pair[0]));
- }
- }
-
- @Test
- public void testNextSelectionDistanceWithSmallerRecentSpan()
- throws Exception {
- PackWriterBitmapPreparer preparer = newPeparer(
- DEFAULT_BITMAP_RECENT_COMMIT_COUNT, // 20000
- 10, // recent span
- DEFAULT_BITMAP_DISTANT_COMMIT_SPAN); // 5000
- int[][] distancesAndSpans = { { 0, 10 }, { 100, 10 }, { 10000, 10 },
- { 20000, 10 }, { 20010, 10 }, { 20012, 12 }, { 20050, 50 },
- { 20200, 200 }, { 22200, 2200 }, { 24999, 4999 },
- { 25000, 5000 }, { 50000, 5000 }, { 1000000, 5000 } };
-
- for (int[] pair : distancesAndSpans) {
- assertEquals(pair[1], preparer.nextSpan(pair[0]));
- }
- }
-
- @Test
- public void testNextSelectionDistanceWithSmallerDistantSpan()
- throws Exception {
- PackWriterBitmapPreparer preparer = newPeparer(
- DEFAULT_BITMAP_RECENT_COMMIT_COUNT, // 20000
- DEFAULT_BITMAP_RECENT_COMMIT_SPAN, // 100
- 1000);
- int[][] distancesAndSpans = { { 0, 100 }, { 100, 100 }, { 10000, 100 },
- { 20000, 100 }, { 20100, 100 }, { 20102, 102 }, { 20200, 200 },
- { 20999, 999 }, { 21000, 1000 }, { 22000, 1000 },
- { 25000, 1000 }, { 50000, 1000 }, { 1000000, 1000 } };
-
- for (int[] pair : distancesAndSpans) {
- assertEquals(pair[1], preparer.nextSpan(pair[0]));
- }
- }
-
- private PackWriterBitmapPreparer newPeparer(int recentCount, int recentSpan,
- int distantSpan) throws IOException {
- List<ObjectToPack> objects = Collections.emptyList();
- Set<ObjectId> wants = Collections.emptySet();
- PackConfig config = new PackConfig();
- config.setBitmapRecentCommitCount(recentCount);
- config.setBitmapRecentCommitSpan(recentSpan);
- config.setBitmapDistantCommitSpan(distantSpan);
- PackBitmapIndexBuilder indexBuilder = new PackBitmapIndexBuilder(
- objects);
- return new PackWriterBitmapPreparer(new StubObjectReader(),
- indexBuilder, null, wants, config);
- }
- }
|