On 06/14, Stefan Beller wrote: > On Wed, Jun 13, 2018 at 2:39 PM Brandon Williams <bmwill@xxxxxxxxxx> wrote: > > > > 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 <bmwill@xxxxxxxxxx> > > --- > > 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. > > > + > > + 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