Add test CI.
@@ -292,3 +292,27 @@ void test_full(void)
// write info
}
+
+void test_rd_idx_wrap()
+{
+ tu_fifo_t ff10;
+ uint8_t buf[10];
+ uint8_t dst[10];
+
+ tu_fifo_config(&ff10, buf, 10, 1, 1);
+
+ uint16_t n;
+
+ ff10.wr_idx = 6;
+ ff10.rd_idx = 15;
+
+ n = tu_fifo_read_n(&ff10, dst, 4);
+ TEST_ASSERT_EQUAL(n, 4);
+ TEST_ASSERT_EQUAL(ff10.rd_idx, 0);
+ n = tu_fifo_read_n(&ff10, dst, 4);
+ TEST_ASSERT_EQUAL(n, 4);
+ TEST_ASSERT_EQUAL(ff10.rd_idx, 4);
+ n = tu_fifo_read_n(&ff10, dst, 4);
+ TEST_ASSERT_EQUAL(n, 2);
+ TEST_ASSERT_EQUAL(ff10.rd_idx, 6);
+}
\ No newline at end of file
