chunkbuffer2_test.c 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #include <misc/debug.h>
  2. #include <structure/ChunkBuffer2.h>
  3. int main ()
  4. {
  5. struct ChunkBuffer2_block blocks[16];
  6. ChunkBuffer2 buf;
  7. ChunkBuffer2_Init(&buf, blocks, 16, 4 * sizeof(struct ChunkBuffer2_block));
  8. ASSERT_FORCE(buf.input_dest == (uint8_t *)&blocks[1])
  9. ASSERT_FORCE(buf.input_avail == 15 * sizeof(struct ChunkBuffer2_block))
  10. ASSERT_FORCE(buf.output_dest == NULL)
  11. ASSERT_FORCE(buf.output_avail == -1)
  12. ChunkBuffer2_SubmitPacket(&buf, sizeof(struct ChunkBuffer2_block));
  13. ASSERT_FORCE(buf.input_dest == (uint8_t *)&blocks[3])
  14. ASSERT_FORCE(buf.input_avail == 13 * sizeof(struct ChunkBuffer2_block))
  15. ASSERT_FORCE(buf.output_dest == (uint8_t *)&blocks[1])
  16. ASSERT_FORCE(buf.output_avail == 1 * sizeof(struct ChunkBuffer2_block))
  17. ChunkBuffer2_SubmitPacket(&buf, 8 * sizeof(struct ChunkBuffer2_block));
  18. ASSERT_FORCE(buf.input_dest == (uint8_t *)&blocks[12])
  19. ASSERT_FORCE(buf.input_avail == 4 * sizeof(struct ChunkBuffer2_block))
  20. ASSERT_FORCE(buf.output_dest == (uint8_t *)&blocks[1])
  21. ASSERT_FORCE(buf.output_avail == 1 * sizeof(struct ChunkBuffer2_block))
  22. ChunkBuffer2_SubmitPacket(&buf, 4 * sizeof(struct ChunkBuffer2_block));
  23. ASSERT_FORCE(buf.input_dest == NULL)
  24. ASSERT_FORCE(buf.input_avail == -1)
  25. ASSERT_FORCE(buf.output_dest == (uint8_t *)&blocks[1])
  26. ASSERT_FORCE(buf.output_avail == 1 * sizeof(struct ChunkBuffer2_block))
  27. ChunkBuffer2_ConsumePacket(&buf);
  28. ASSERT_FORCE(buf.input_dest == (uint8_t *)&blocks[1])
  29. ASSERT_FORCE(buf.input_avail == 1 * sizeof(struct ChunkBuffer2_block))
  30. ASSERT_FORCE(buf.output_dest == (uint8_t *)&blocks[3])
  31. ASSERT_FORCE(buf.output_avail == 8 * sizeof(struct ChunkBuffer2_block))
  32. ChunkBuffer2_ConsumePacket(&buf);
  33. ASSERT_FORCE(buf.input_dest == (uint8_t *)&blocks[1])
  34. ASSERT_FORCE(buf.input_avail == 10 * sizeof(struct ChunkBuffer2_block))
  35. ASSERT_FORCE(buf.output_dest == (uint8_t *)&blocks[12])
  36. ASSERT_FORCE(buf.output_avail == 4 * sizeof(struct ChunkBuffer2_block))
  37. ChunkBuffer2_SubmitPacket(&buf, 9 * sizeof(struct ChunkBuffer2_block));
  38. ASSERT_FORCE(buf.input_dest == (uint8_t *)&blocks[11])
  39. ASSERT_FORCE(buf.input_avail == 0 * sizeof(struct ChunkBuffer2_block))
  40. ASSERT_FORCE(buf.output_dest == (uint8_t *)&blocks[12])
  41. ASSERT_FORCE(buf.output_avail == 4 * sizeof(struct ChunkBuffer2_block))
  42. ChunkBuffer2_ConsumePacket(&buf);
  43. ASSERT_FORCE(buf.input_dest == (uint8_t *)&blocks[11])
  44. ASSERT_FORCE(buf.input_avail == 5 * sizeof(struct ChunkBuffer2_block))
  45. ASSERT_FORCE(buf.output_dest == (uint8_t *)&blocks[1])
  46. ASSERT_FORCE(buf.output_avail == 9 * sizeof(struct ChunkBuffer2_block))
  47. ChunkBuffer2_SubmitPacket(&buf, 1 * sizeof(struct ChunkBuffer2_block));
  48. ASSERT_FORCE(buf.input_dest == NULL)
  49. ASSERT_FORCE(buf.input_avail == -1)
  50. ASSERT_FORCE(buf.output_dest == (uint8_t *)&blocks[1])
  51. ASSERT_FORCE(buf.output_avail == 9 * sizeof(struct ChunkBuffer2_block))
  52. ChunkBuffer2_ConsumePacket(&buf);
  53. ASSERT_FORCE(buf.input_dest == (uint8_t *)&blocks[1])
  54. ASSERT_FORCE(buf.input_avail == 9 * sizeof(struct ChunkBuffer2_block))
  55. ASSERT_FORCE(buf.output_dest == (uint8_t *)&blocks[11])
  56. ASSERT_FORCE(buf.output_avail == 1 * sizeof(struct ChunkBuffer2_block))
  57. ChunkBuffer2_ConsumePacket(&buf);
  58. ASSERT_FORCE(buf.input_dest == (uint8_t *)&blocks[1])
  59. ASSERT_FORCE(buf.input_avail == 15 * sizeof(struct ChunkBuffer2_block))
  60. ASSERT_FORCE(buf.output_dest == NULL)
  61. ASSERT_FORCE(buf.output_avail == -1)
  62. return 0;
  63. }