aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test/tst/org/eclipse/jgit
diff options
context:
space:
mode:
authorJonathan Tan <jonathantanmy@google.com>2018-02-22 10:24:19 -0800
committerJonathan Nieder <jrn@google.com>2018-04-20 12:21:23 -0700
commit75b07036928f4ef73e9a217bd7c898457e9c7120 (patch)
treefbb5a8233c118933db24d75f01c9b5482e9b92e6 /org.eclipse.jgit.test/tst/org/eclipse/jgit
parent4faec31c0a9ff92efdac10d1bd5db1a929ce74a2 (diff)
downloadjgit-75b07036928f4ef73e9a217bd7c898457e9c7120.tar.gz
jgit-75b07036928f4ef73e9a217bd7c898457e9c7120.zip
PacketLineIn, PacketLineOut: Add support for delim-pkt
Most pkt-lines (data-pkts) have the form pkt-len pkt-payload where pkt-len is a string of 4 hexadecimal digits representing the size in bytes of the pkt-line. Since this size includes the size of the pkt-len, no data-pkt has a length less than 4. A pkt-line with a length field less than 4 can thus be used for other purposes. In Git protocol v1, the only such pkt-line was flush-pkt = "0000" which was used to mark the end of a stream. Protocol v2 (see Documentation/technical/protocol-v2.txt in git.git) introduces a second special pkt-line type: delim-pkt = "0001" used to mark the end of a section within a stream, for example to separate capabilities from the content of a command. [jn: split out from a larger patch that made use of this support] Change-Id: I10e7824fa24ed74c4f45624bd490bba978cf5c34 Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Jonathan Nieder <jrn@google.com>
Diffstat (limited to 'org.eclipse.jgit.test/tst/org/eclipse/jgit')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PacketLineInTest.java18
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PacketLineOutTest.java6
2 files changed, 13 insertions, 11 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PacketLineInTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PacketLineInTest.java
index 13fc68d8c8..982bae8394 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PacketLineInTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PacketLineInTest.java
@@ -116,17 +116,6 @@ public class PacketLineInTest {
}
@Test
- public void testReadString_Len0001() {
- init("0001");
- try {
- in.readString();
- fail("incorrectly accepted invalid packet header");
- } catch (IOException e) {
- assertEquals("Invalid packet line header: 0001", e.getMessage());
- }
- }
-
- @Test
public void testReadString_Len0002() {
init("0002");
try {
@@ -164,6 +153,13 @@ public class PacketLineInTest {
assertEOF();
}
+ @Test
+ public void testReadString_Delim() throws IOException {
+ init("0001");
+ assertSame(PacketLineIn.DELIM, in.readString());
+ assertEOF();
+ }
+
// readStringNoLF
@Test
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PacketLineOutTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PacketLineOutTest.java
index eca54756b1..dd9a0d3bb5 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PacketLineOutTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PacketLineOutTest.java
@@ -113,6 +113,12 @@ public class PacketLineOutTest {
assertEquals(1, flushCnt[0]);
}
+ @Test
+ public void testWriteDelim() throws IOException {
+ out.writeDelim();
+ assertBuffer("0001");
+ }
+
// writePacket
@Test