   memset(buf, 0, sizeof(buf));
   ASSERT(pb.read(buf, sizeof(buf)) == (int) strlen(b));
   ASSERT(memcmp(buf, b, strlen(b)) == 0);
+  iob.empty();
   //
   // Use a string in program memory.
   static const char b_P[] __PROGMEM = "testing";

  ASSERT(v == (int32_t) 0x80000000);

  // Test a length delimited string
  ASSERT(pb.write(1, s, strlen(s) + 1) == (int) strlen(s) + 3);
  ASSERT(pb.read(tag, type) == 1);
  ASSERT(tag == 1 && type == ProtocolBuffer::LENGTH_DELIMITED);

  trace << buf << endl;

  // Test a floating point number
  float32_t f = -1.53729e-3;
  ASSERT(pb.write(1, f) == (sizeof(f) + 1));
  ASSERT(pb.read(tag, type) == 1);
  ASSERT(tag == 1 && type == ProtocolBuffer::FIXED32);
