1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /*
- * Copyright (C) 2008-2009, Google Inc. and others
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Distribution License v. 1.0 which is available at
- * https://www.eclipse.org/org/documents/edl-v10.php.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
- package org.eclipse.jgit.dircache;
-
- import static org.junit.Assert.assertEquals;
- import static org.junit.Assert.assertNotSame;
- import static org.junit.Assert.assertSame;
- import static org.junit.Assert.assertTrue;
-
- import java.io.IOException;
-
- import org.eclipse.jgit.errors.CorruptObjectException;
- import org.eclipse.jgit.junit.RepositoryTestCase;
- import org.eclipse.jgit.lib.FileMode;
- import org.junit.Test;
-
- public class DirCacheLargePathTest extends RepositoryTestCase {
- @Test
- public void testPath_4090() throws Exception {
- testLongPath(4090);
- }
-
- @Test
- public void testPath_4094() throws Exception {
- testLongPath(4094);
- }
-
- @Test
- public void testPath_4095() throws Exception {
- testLongPath(4095);
- }
-
- @Test
- public void testPath_4096() throws Exception {
- testLongPath(4096);
- }
-
- @Test
- public void testPath_16384() throws Exception {
- testLongPath(16384);
- }
-
- private void testLongPath(int len) throws CorruptObjectException,
- IOException {
- final String longPath = makeLongPath(len);
- final String shortPath = "~~~ shorter-path";
-
- final DirCacheEntry longEnt = new DirCacheEntry(longPath);
- final DirCacheEntry shortEnt = new DirCacheEntry(shortPath);
-
- longEnt.setFileMode(FileMode.REGULAR_FILE);
- shortEnt.setFileMode(FileMode.REGULAR_FILE);
-
- assertEquals(longPath, longEnt.getPathString());
- assertEquals(shortPath, shortEnt.getPathString());
-
- {
- final DirCache dc1 = db.lockDirCache();
- {
- final DirCacheBuilder b = dc1.builder();
- b.add(longEnt);
- b.add(shortEnt);
- assertTrue(b.commit());
- }
- assertEquals(2, dc1.getEntryCount());
- assertSame(longEnt, dc1.getEntry(0));
- assertSame(shortEnt, dc1.getEntry(1));
- }
- {
- final DirCache dc2 = db.readDirCache();
- assertEquals(2, dc2.getEntryCount());
-
- assertNotSame(longEnt, dc2.getEntry(0));
- assertEquals(longPath, dc2.getEntry(0).getPathString());
-
- assertNotSame(shortEnt, dc2.getEntry(1));
- assertEquals(shortPath, dc2.getEntry(1).getPathString());
- }
- }
-
- private static String makeLongPath(int len) {
- final StringBuilder r = new StringBuilder(len);
- for (int i = 0; i < len; i++)
- r.append('a' + (i % 26));
- return r.toString();
- }
- }
|