diff options
author | David Pursehouse <david.pursehouse@gmail.com> | 2019-01-20 17:17:50 +0900 |
---|---|---|
committer | David Pursehouse <david.pursehouse@gmail.com> | 2019-01-20 17:28:10 +0900 |
commit | 6efe3612a7aa72cf6e860522cdc2b8e5a673d61f (patch) | |
tree | a3fb39e1b26b4f8d5eaa37de6f388538498e14ca /org.eclipse.jgit.test | |
parent | a2455e9e4081e3fcbc91dc0000ff50f46e4668db (diff) | |
download | jgit-6efe3612a7aa72cf6e860522cdc2b8e5a673d61f.tar.gz jgit-6efe3612a7aa72cf6e860522cdc2b8e5a673d61f.zip |
ReceivePackAdvertiseRefsHookTest: Open TestRepository in try-with-resource
Change-Id: I7ab1de3516ac542821275add908ee70c427d781b
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
Diffstat (limited to 'org.eclipse.jgit.test')
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ReceivePackAdvertiseRefsHookTest.java | 483 |
1 files changed, 251 insertions, 232 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ReceivePackAdvertiseRefsHookTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ReceivePackAdvertiseRefsHookTest.java index fa8856d336..50c8a29543 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ReceivePackAdvertiseRefsHookTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ReceivePackAdvertiseRefsHookTest.java @@ -110,24 +110,26 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas // Fill dst with a some common history. // - TestRepository<Repository> d = new TestRepository<>(dst); - a = d.blob("a"); - A = d.commit(d.tree(d.file("a", a))); - B = d.commit().parent(A).create(); - d.update(R_MASTER, B); + try (TestRepository<Repository> d = new TestRepository<>(dst)) { + a = d.blob("a"); + A = d.commit(d.tree(d.file("a", a))); + B = d.commit().parent(A).create(); + d.update(R_MASTER, B); + + // Clone from dst into src + // + try (Transport t = Transport.open(src, uriOf(dst))) { + t.fetch(PM, + Collections.singleton(new RefSpec("+refs/*:refs/*"))); + assertEquals(B, src.resolve(R_MASTER)); + } - // Clone from dst into src - // - try (Transport t = Transport.open(src, uriOf(dst))) { - t.fetch(PM, Collections.singleton(new RefSpec("+refs/*:refs/*"))); - assertEquals(B, src.resolve(R_MASTER)); + // Now put private stuff into dst. + // + b = d.blob("b"); + P = d.commit(d.tree(d.file("b", b)), A); + d.update(R_PRIVATE, P); } - - // Now put private stuff into dst. - // - b = d.blob("b"); - P = d.commit(d.tree(d.file("b", b)), A); - d.update(R_PRIVATE, P); } @Test @@ -241,31 +243,33 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas // Now use b but in a different commit than what is hidden. // - TestRepository<Repository> s = new TestRepository<>(src); - RevCommit N = s.commit().parent(B).add("q", b).create(); - s.update(R_MASTER, N); + try (TestRepository<Repository> s = new TestRepository<>(src)) { + RevCommit N = s.commit().parent(B).add("q", b).create(); + s.update(R_MASTER, N); + + // Push this new content to the remote, doing strict validation. + // + PushResult r; + RemoteRefUpdate u = new RemoteRefUpdate( // + src, // + R_MASTER, // src name + R_MASTER, // dst name + false, // do not force update + null, // local tracking branch + null // expected id + ); + try (TransportLocal t = newTransportLocalWithStrictValidation()) { + t.setPushThin(true); + r = t.push(PM, Collections.singleton(u)); + dst.close(); + } - // Push this new content to the remote, doing strict validation. - // - PushResult r; - RemoteRefUpdate u = new RemoteRefUpdate( // - src, // - R_MASTER, // src name - R_MASTER, // dst name - false, // do not force update - null, // local tracking branch - null // expected id - ); - try (TransportLocal t = newTransportLocalWithStrictValidation()) { - t.setPushThin(true); - r = t.push(PM, Collections.singleton(u)); - dst.close(); + assertNotNull("have result", r); + assertNull("private not advertised", r.getAdvertisedRef(R_PRIVATE)); + assertSame("master updated", RemoteRefUpdate.Status.OK, + u.getStatus()); + assertEquals(N, dst.resolve(R_MASTER)); } - - assertNotNull("have result", r); - assertNull("private not advertised", r.getAdvertisedRef(R_PRIVATE)); - assertSame("master updated", RemoteRefUpdate.Status.OK, u.getStatus()); - assertEquals(N, dst.resolve(R_MASTER)); } @Test @@ -318,154 +322,165 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas @Test public void testUsingHiddenDeltaBaseFails() throws Exception { byte[] delta = { 0x1, 0x1, 0x1, 'c' }; - TestRepository<Repository> s = new TestRepository<>(src); - RevCommit N = s.commit().parent(B).add("q", - s.blob(BinaryDelta.apply(dst.open(b).getCachedBytes(), delta))) - .create(); - - final TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024); - packHeader(pack, 3); - copy(pack, src.open(N)); - copy(pack, src.open(s.parseBody(N).getTree())); - pack.write((Constants.OBJ_REF_DELTA) << 4 | 4); - b.copyRawTo(pack); - deflate(pack, delta); - digest(pack); - - final TemporaryBuffer.Heap inBuf = new TemporaryBuffer.Heap(1024); - final PacketLineOut inPckLine = new PacketLineOut(inBuf); - inPckLine.writeString(ObjectId.zeroId().name() + ' ' + N.name() + ' ' - + "refs/heads/s" + '\0' - + BasePackPushConnection.CAPABILITY_REPORT_STATUS); - inPckLine.end(); - pack.writeTo(inBuf, PM); + try (TestRepository<Repository> s = new TestRepository<>(src)) { + RevCommit N = s.commit().parent(B) + .add("q", + s.blob(BinaryDelta.apply( + dst.open(b).getCachedBytes(), delta))) + .create(); + + final TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024); + packHeader(pack, 3); + copy(pack, src.open(N)); + copy(pack, src.open(s.parseBody(N).getTree())); + pack.write((Constants.OBJ_REF_DELTA) << 4 | 4); + b.copyRawTo(pack); + deflate(pack, delta); + digest(pack); + + final TemporaryBuffer.Heap inBuf = new TemporaryBuffer.Heap(1024); + final PacketLineOut inPckLine = new PacketLineOut(inBuf); + inPckLine.writeString(ObjectId.zeroId().name() + ' ' + N.name() + + ' ' + "refs/heads/s" + '\0' + + BasePackPushConnection.CAPABILITY_REPORT_STATUS); + inPckLine.end(); + pack.writeTo(inBuf, PM); + + final TemporaryBuffer.Heap outBuf = new TemporaryBuffer.Heap(1024); + final ReceivePack rp = new ReceivePack(dst); + rp.setCheckReceivedObjects(true); + rp.setCheckReferencedObjectsAreReachable(true); + rp.setAdvertiseRefsHook(new HidePrivateHook()); + try { + receive(rp, inBuf, outBuf); + fail("Expected UnpackException"); + } catch (UnpackException failed) { + Throwable err = failed.getCause(); + assertTrue(err instanceof MissingObjectException); + MissingObjectException moe = (MissingObjectException) err; + assertEquals(b, moe.getObjectId()); + } - final TemporaryBuffer.Heap outBuf = new TemporaryBuffer.Heap(1024); - final ReceivePack rp = new ReceivePack(dst); - rp.setCheckReceivedObjects(true); - rp.setCheckReferencedObjectsAreReachable(true); - rp.setAdvertiseRefsHook(new HidePrivateHook()); - try { - receive(rp, inBuf, outBuf); - fail("Expected UnpackException"); - } catch (UnpackException failed) { - Throwable err = failed.getCause(); - assertTrue(err instanceof MissingObjectException); - MissingObjectException moe = (MissingObjectException) err; - assertEquals(b, moe.getObjectId()); + final PacketLineIn r = asPacketLineIn(outBuf); + String master = r.readString(); + int nul = master.indexOf('\0'); + assertTrue("has capability list", nul > 0); + assertEquals(B.name() + ' ' + R_MASTER, master.substring(0, nul)); + assertSame(PacketLineIn.END, r.readString()); + + assertEquals("unpack error Missing blob " + b.name(), + r.readString()); + assertEquals("ng refs/heads/s n/a (unpacker error)", + r.readString()); + assertSame(PacketLineIn.END, r.readString()); } - - final PacketLineIn r = asPacketLineIn(outBuf); - String master = r.readString(); - int nul = master.indexOf('\0'); - assertTrue("has capability list", nul > 0); - assertEquals(B.name() + ' ' + R_MASTER, master.substring(0, nul)); - assertSame(PacketLineIn.END, r.readString()); - - assertEquals("unpack error Missing blob " + b.name(), r.readString()); - assertEquals("ng refs/heads/s n/a (unpacker error)", r.readString()); - assertSame(PacketLineIn.END, r.readString()); } @Test public void testUsingHiddenCommonBlobFails() throws Exception { // Try to use the 'b' blob that is hidden. // - TestRepository<Repository> s = new TestRepository<>(src); - RevCommit N = s.commit().parent(B).add("q", s.blob("b")).create(); - - // But don't include it in the pack. - // - final TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024); - packHeader(pack, 2); - copy(pack, src.open(N)); - copy(pack,src.open(s.parseBody(N).getTree())); - digest(pack); - - final TemporaryBuffer.Heap inBuf = new TemporaryBuffer.Heap(1024); - final PacketLineOut inPckLine = new PacketLineOut(inBuf); - inPckLine.writeString(ObjectId.zeroId().name() + ' ' + N.name() + ' ' - + "refs/heads/s" + '\0' - + BasePackPushConnection.CAPABILITY_REPORT_STATUS); - inPckLine.end(); - pack.writeTo(inBuf, PM); + try (TestRepository<Repository> s = new TestRepository<>(src)) { + RevCommit N = s.commit().parent(B).add("q", s.blob("b")).create(); + + // But don't include it in the pack. + // + final TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024); + packHeader(pack, 2); + copy(pack, src.open(N)); + copy(pack, src.open(s.parseBody(N).getTree())); + digest(pack); + + final TemporaryBuffer.Heap inBuf = new TemporaryBuffer.Heap(1024); + final PacketLineOut inPckLine = new PacketLineOut(inBuf); + inPckLine.writeString(ObjectId.zeroId().name() + ' ' + N.name() + + ' ' + "refs/heads/s" + '\0' + + BasePackPushConnection.CAPABILITY_REPORT_STATUS); + inPckLine.end(); + pack.writeTo(inBuf, PM); + + final TemporaryBuffer.Heap outBuf = new TemporaryBuffer.Heap(1024); + final ReceivePack rp = new ReceivePack(dst); + rp.setCheckReceivedObjects(true); + rp.setCheckReferencedObjectsAreReachable(true); + rp.setAdvertiseRefsHook(new HidePrivateHook()); + try { + receive(rp, inBuf, outBuf); + fail("Expected UnpackException"); + } catch (UnpackException failed) { + Throwable err = failed.getCause(); + assertTrue(err instanceof MissingObjectException); + MissingObjectException moe = (MissingObjectException) err; + assertEquals(b, moe.getObjectId()); + } - final TemporaryBuffer.Heap outBuf = new TemporaryBuffer.Heap(1024); - final ReceivePack rp = new ReceivePack(dst); - rp.setCheckReceivedObjects(true); - rp.setCheckReferencedObjectsAreReachable(true); - rp.setAdvertiseRefsHook(new HidePrivateHook()); - try { - receive(rp, inBuf, outBuf); - fail("Expected UnpackException"); - } catch (UnpackException failed) { - Throwable err = failed.getCause(); - assertTrue(err instanceof MissingObjectException); - MissingObjectException moe = (MissingObjectException) err; - assertEquals(b, moe.getObjectId()); + final PacketLineIn r = asPacketLineIn(outBuf); + String master = r.readString(); + int nul = master.indexOf('\0'); + assertTrue("has capability list", nul > 0); + assertEquals(B.name() + ' ' + R_MASTER, master.substring(0, nul)); + assertSame(PacketLineIn.END, r.readString()); + + assertEquals("unpack error Missing blob " + b.name(), + r.readString()); + assertEquals("ng refs/heads/s n/a (unpacker error)", + r.readString()); + assertSame(PacketLineIn.END, r.readString()); } - - final PacketLineIn r = asPacketLineIn(outBuf); - String master = r.readString(); - int nul = master.indexOf('\0'); - assertTrue("has capability list", nul > 0); - assertEquals(B.name() + ' ' + R_MASTER, master.substring(0, nul)); - assertSame(PacketLineIn.END, r.readString()); - - assertEquals("unpack error Missing blob " + b.name(), r.readString()); - assertEquals("ng refs/heads/s n/a (unpacker error)", r.readString()); - assertSame(PacketLineIn.END, r.readString()); } @Test public void testUsingUnknownBlobFails() throws Exception { // Try to use the 'n' blob that is not on the server. // - TestRepository<Repository> s = new TestRepository<>(src); - RevBlob n = s.blob("n"); - RevCommit N = s.commit().parent(B).add("q", n).create(); - - // But don't include it in the pack. - // - final TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024); - packHeader(pack, 2); - copy(pack, src.open(N)); - copy(pack,src.open(s.parseBody(N).getTree())); - digest(pack); - - final TemporaryBuffer.Heap inBuf = new TemporaryBuffer.Heap(1024); - final PacketLineOut inPckLine = new PacketLineOut(inBuf); - inPckLine.writeString(ObjectId.zeroId().name() + ' ' + N.name() + ' ' - + "refs/heads/s" + '\0' - + BasePackPushConnection.CAPABILITY_REPORT_STATUS); - inPckLine.end(); - pack.writeTo(inBuf, PM); + try (TestRepository<Repository> s = new TestRepository<>(src)) { + RevBlob n = s.blob("n"); + RevCommit N = s.commit().parent(B).add("q", n).create(); + + // But don't include it in the pack. + // + final TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024); + packHeader(pack, 2); + copy(pack, src.open(N)); + copy(pack, src.open(s.parseBody(N).getTree())); + digest(pack); + + final TemporaryBuffer.Heap inBuf = new TemporaryBuffer.Heap(1024); + final PacketLineOut inPckLine = new PacketLineOut(inBuf); + inPckLine.writeString(ObjectId.zeroId().name() + ' ' + N.name() + + ' ' + "refs/heads/s" + '\0' + + BasePackPushConnection.CAPABILITY_REPORT_STATUS); + inPckLine.end(); + pack.writeTo(inBuf, PM); + + final TemporaryBuffer.Heap outBuf = new TemporaryBuffer.Heap(1024); + final ReceivePack rp = new ReceivePack(dst); + rp.setCheckReceivedObjects(true); + rp.setCheckReferencedObjectsAreReachable(true); + rp.setAdvertiseRefsHook(new HidePrivateHook()); + try { + receive(rp, inBuf, outBuf); + fail("Expected UnpackException"); + } catch (UnpackException failed) { + Throwable err = failed.getCause(); + assertTrue(err instanceof MissingObjectException); + MissingObjectException moe = (MissingObjectException) err; + assertEquals(n, moe.getObjectId()); + } - final TemporaryBuffer.Heap outBuf = new TemporaryBuffer.Heap(1024); - final ReceivePack rp = new ReceivePack(dst); - rp.setCheckReceivedObjects(true); - rp.setCheckReferencedObjectsAreReachable(true); - rp.setAdvertiseRefsHook(new HidePrivateHook()); - try { - receive(rp, inBuf, outBuf); - fail("Expected UnpackException"); - } catch (UnpackException failed) { - Throwable err = failed.getCause(); - assertTrue(err instanceof MissingObjectException); - MissingObjectException moe = (MissingObjectException) err; - assertEquals(n, moe.getObjectId()); + final PacketLineIn r = asPacketLineIn(outBuf); + String master = r.readString(); + int nul = master.indexOf('\0'); + assertTrue("has capability list", nul > 0); + assertEquals(B.name() + ' ' + R_MASTER, master.substring(0, nul)); + assertSame(PacketLineIn.END, r.readString()); + + assertEquals("unpack error Missing blob " + n.name(), + r.readString()); + assertEquals("ng refs/heads/s n/a (unpacker error)", + r.readString()); + assertSame(PacketLineIn.END, r.readString()); } - - final PacketLineIn r = asPacketLineIn(outBuf); - String master = r.readString(); - int nul = master.indexOf('\0'); - assertTrue("has capability list", nul > 0); - assertEquals(B.name() + ' ' + R_MASTER, master.substring(0, nul)); - assertSame(PacketLineIn.END, r.readString()); - - assertEquals("unpack error Missing blob " + n.name(), r.readString()); - assertEquals("ng refs/heads/s n/a (unpacker error)", r.readString()); - assertSame(PacketLineIn.END, r.readString()); } @Test @@ -509,75 +524,79 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas .append(" url = -upayload.sh\n") .toString(); - TestRepository<Repository> s = new TestRepository<>(src); - RevBlob blob = s.blob(fakeGitmodules); - RevCommit N = s.commit().parent(B) - .add(".gitmodules", blob).create(); - RevTree t = s.parseBody(N).getTree(); - - final TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024); - packHeader(pack, 3); - copy(pack, src.open(N)); - copy(pack, src.open(t)); - copy(pack, src.open(blob)); - digest(pack); - - final TemporaryBuffer.Heap inBuf = new TemporaryBuffer.Heap(1024); - final PacketLineOut inPckLine = new PacketLineOut(inBuf); - inPckLine.writeString(ObjectId.zeroId().name() + ' ' + N.name() + ' ' - + "refs/heads/s" + '\0' - + BasePackPushConnection.CAPABILITY_REPORT_STATUS); - inPckLine.end(); - pack.writeTo(inBuf, PM); - return inBuf; + try (TestRepository<Repository> s = new TestRepository<>(src)) { + RevBlob blob = s.blob(fakeGitmodules); + RevCommit N = s.commit().parent(B).add(".gitmodules", blob) + .create(); + RevTree t = s.parseBody(N).getTree(); + + final TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024); + packHeader(pack, 3); + copy(pack, src.open(N)); + copy(pack, src.open(t)); + copy(pack, src.open(blob)); + digest(pack); + + final TemporaryBuffer.Heap inBuf = new TemporaryBuffer.Heap(1024); + final PacketLineOut inPckLine = new PacketLineOut(inBuf); + inPckLine.writeString(ObjectId.zeroId().name() + ' ' + N.name() + + ' ' + "refs/heads/s" + '\0' + + BasePackPushConnection.CAPABILITY_REPORT_STATUS); + inPckLine.end(); + pack.writeTo(inBuf, PM); + return inBuf; + } } @Test public void testUsingUnknownTreeFails() throws Exception { - TestRepository<Repository> s = new TestRepository<>(src); - RevCommit N = s.commit().parent(B).add("q", s.blob("a")).create(); - RevTree t = s.parseBody(N).getTree(); - - // Don't include the tree in the pack. - // - final TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024); - packHeader(pack, 1); - copy(pack, src.open(N)); - digest(pack); - - final TemporaryBuffer.Heap inBuf = new TemporaryBuffer.Heap(1024); - final PacketLineOut inPckLine = new PacketLineOut(inBuf); - inPckLine.writeString(ObjectId.zeroId().name() + ' ' + N.name() + ' ' - + "refs/heads/s" + '\0' - + BasePackPushConnection.CAPABILITY_REPORT_STATUS); - inPckLine.end(); - pack.writeTo(inBuf, PM); + try (TestRepository<Repository> s = new TestRepository<>(src)) { + RevCommit N = s.commit().parent(B).add("q", s.blob("a")).create(); + RevTree t = s.parseBody(N).getTree(); + + // Don't include the tree in the pack. + // + final TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024); + packHeader(pack, 1); + copy(pack, src.open(N)); + digest(pack); + + final TemporaryBuffer.Heap inBuf = new TemporaryBuffer.Heap(1024); + final PacketLineOut inPckLine = new PacketLineOut(inBuf); + inPckLine.writeString(ObjectId.zeroId().name() + ' ' + N.name() + + ' ' + "refs/heads/s" + '\0' + + BasePackPushConnection.CAPABILITY_REPORT_STATUS); + inPckLine.end(); + pack.writeTo(inBuf, PM); + + final TemporaryBuffer.Heap outBuf = new TemporaryBuffer.Heap(1024); + final ReceivePack rp = new ReceivePack(dst); + rp.setCheckReceivedObjects(true); + rp.setCheckReferencedObjectsAreReachable(true); + rp.setAdvertiseRefsHook(new HidePrivateHook()); + try { + receive(rp, inBuf, outBuf); + fail("Expected UnpackException"); + } catch (UnpackException failed) { + Throwable err = failed.getCause(); + assertTrue(err instanceof MissingObjectException); + MissingObjectException moe = (MissingObjectException) err; + assertEquals(t, moe.getObjectId()); + } - final TemporaryBuffer.Heap outBuf = new TemporaryBuffer.Heap(1024); - final ReceivePack rp = new ReceivePack(dst); - rp.setCheckReceivedObjects(true); - rp.setCheckReferencedObjectsAreReachable(true); - rp.setAdvertiseRefsHook(new HidePrivateHook()); - try { - receive(rp, inBuf, outBuf); - fail("Expected UnpackException"); - } catch (UnpackException failed) { - Throwable err = failed.getCause(); - assertTrue(err instanceof MissingObjectException); - MissingObjectException moe = (MissingObjectException) err; - assertEquals(t, moe.getObjectId()); + final PacketLineIn r = asPacketLineIn(outBuf); + String master = r.readString(); + int nul = master.indexOf('\0'); + assertTrue("has capability list", nul > 0); + assertEquals(B.name() + ' ' + R_MASTER, master.substring(0, nul)); + assertSame(PacketLineIn.END, r.readString()); + + assertEquals("unpack error Missing tree " + t.name(), + r.readString()); + assertEquals("ng refs/heads/s n/a (unpacker error)", + r.readString()); + assertSame(PacketLineIn.END, r.readString()); } - - final PacketLineIn r = asPacketLineIn(outBuf); - String master = r.readString(); - int nul = master.indexOf('\0'); - assertTrue("has capability list", nul > 0); - assertEquals(B.name() + ' ' + R_MASTER, master.substring(0, nul)); - assertSame(PacketLineIn.END, r.readString()); - - assertEquals("unpack error Missing tree " + t.name(), r.readString()); - assertEquals("ng refs/heads/s n/a (unpacker error)", r.readString()); - assertSame(PacketLineIn.END, r.readString()); } private static void packHeader(TemporaryBuffer.Heap tinyPack, int cnt) |