From f445274634d38dc81125195ccab6b23e9fa28f23 Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 14 May 2020 11:59:51 +0700 Subject: [PATCH] add unit test for fifo write_n and read_n --- test/test/test_fifo.c | 58 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/test/test/test_fifo.c b/test/test/test_fifo.c index 2cb8ada91..1be839268 100644 --- a/test/test/test_fifo.c +++ b/test/test/test_fifo.c @@ -54,6 +54,64 @@ void test_normal(void) } } +void test_read_n(void) +{ + // prepare data + uint8_t data[20]; + for(int i=0; i 5 + rd_count = tu_fifo_read_n(&ff, rd, 5); + TEST_ASSERT_EQUAL( 5, rd_count ); + TEST_ASSERT_EQUAL_MEMORY( data, rd, rd_count ); // 0 -> 4 + + // case 2: Read index + count > depth + // write 10, 11, 12 + tu_fifo_write(&ff, data+10); + tu_fifo_write(&ff, data+11); + tu_fifo_write(&ff, data+12); + + rd_count = tu_fifo_read_n(&ff, rd, 7); + TEST_ASSERT_EQUAL( 7, rd_count ); + + TEST_ASSERT_EQUAL_MEMORY( data+5, rd, rd_count ); // 5 -> 11 + + // Should only read until empty + TEST_ASSERT_EQUAL( 1, tu_fifo_read_n(&ff, rd, 100) ); +} + +void test_write_n(void) +{ + // prepare data + uint8_t data[20]; + for(int i=0; i 4 + + // case 2: wr + count > depth + tu_fifo_write_n(&ff, data+8, 6); // wr = 3, count = 9 + + for(rd_count=0; rd_count<7; rd_count++) tu_fifo_read(&ff, rd+rd_count); // wr = 3, count = 2 + + TEST_ASSERT_EQUAL_MEMORY( data+5, rd, rd_count); // 5 -> 11 + + TEST_ASSERT_EQUAL(2, tu_fifo_count(&ff)); +} + void test_peek(void) { uint8_t temp;