Thread (100 messages) flat view 100 messages, 7 authors, 2018-07-23

Re: [PATCH v2 1/8] test-pkt-line: add unpack-sideband subcommand

From: Brandon Williams <hidden>
Date: 2018-06-14 19:21:56

On 06/14, Stefan Beller wrote:
On Wed, Jun 13, 2018 at 2:39 PM Brandon Williams [off-list ref] wrote:
quoted
Add an 'unpack-sideband' subcommand to the test-pkt-line helper to
enable unpacking packet line data sent multiplexed using a sideband.

Signed-off-by: Brandon Williams <redacted>
---
 t/helper/test-pkt-line.c | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
diff --git a/t/helper/test-pkt-line.c b/t/helper/test-pkt-line.c
index 0f19e53c7..2a55ffff1 100644
--- a/t/helper/test-pkt-line.c
+++ b/t/helper/test-pkt-line.c
@@ -1,3 +1,4 @@
+#include "cache.h"
 #include "pkt-line.h"

 static void pack_line(const char *line)
@@ -48,6 +49,40 @@ static void unpack(void)
        }
 }

+static void unpack_sideband(void)
+{
+       struct packet_reader reader;
+       packet_reader_init(&reader, 0, NULL, 0,
+                          PACKET_READ_GENTLE_ON_EOF |
+                          PACKET_READ_CHOMP_NEWLINE);
+
+       while (packet_reader_read(&reader) != PACKET_READ_EOF) {
+               int band;
+               int fd;
+
+               switch (reader.status) {
+               case PACKET_READ_EOF:
+                       break;
+               case PACKET_READ_NORMAL:
+                       band = reader.line[0] & 0xff;
+                       if (band == 1)
+                               fd = 1;
+                       else
+                               fd = 2;
+
+                       write_or_die(fd, reader.line+1, reader.pktlen-1);
white space around + and - ?
Will fix.
quoted
+
+                       if (band == 3)
+                               die("sind-band error");
s/sind/side/ ?
Thanks for catching this.
What values for band are possible?
e.g. band==4 would also just write to fd=1;
but I suspect we don't want that, yet.

So maybe

    band = reader.line[0] & 0xff;
    if (band < 1 || band > 2)
        die("unexpected side band %d", band)
    fd = band;

instead?
Yeah that's must cleaner logic.

-- 
Brandon Williams
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help