From e7d3092dd149ce455eaa934cc63104b6273302f5 Mon Sep 17 00:00:00 2001 From: Jan Breuer <jan.breuer@jaybee.cz> Date: 周一, 22 2月 2016 08:19:09 +0800 Subject: [PATCH] Add all possible units from IEEE488.2 to address some points of #26 --- libscpi/test/test_fifo.c | 82 ++++++++++++++++++++++++++++++++++------ 1 files changed, 69 insertions(+), 13 deletions(-) diff --git a/libscpi/test/test_fifo.c b/libscpi/test/test_fifo.c index 4b9847b..40c65c5 100644 --- a/libscpi/test/test_fifo.c +++ b/libscpi/test/test_fifo.c @@ -25,60 +25,116 @@ static void testFifo() { scpi_fifo_t fifo; - fifo_init(&fifo); + int16_t fifo_data[4]; + fifo_init(&fifo, fifo_data, 4); int16_t value; - - fifo.size = 4; #define TEST_FIFO_COUNT(n) \ do { \ fifo_count(&fifo, &value); \ CU_ASSERT_EQUAL(value, n); \ } while(0) \ - + TEST_FIFO_COUNT(0); + CU_ASSERT_TRUE(fifo_is_empty(&fifo)); + CU_ASSERT_FALSE(fifo_is_full(&fifo)); + CU_ASSERT_TRUE(fifo_add(&fifo, 1)); TEST_FIFO_COUNT(1); + CU_ASSERT_FALSE(fifo_is_empty(&fifo)); + CU_ASSERT_FALSE(fifo_is_full(&fifo)); + CU_ASSERT_TRUE(fifo_add(&fifo, 2)); TEST_FIFO_COUNT(2); + CU_ASSERT_FALSE(fifo_is_empty(&fifo)); + CU_ASSERT_FALSE(fifo_is_full(&fifo)); + CU_ASSERT_TRUE(fifo_add(&fifo, 3)); TEST_FIFO_COUNT(3); + CU_ASSERT_FALSE(fifo_is_empty(&fifo)); + CU_ASSERT_FALSE(fifo_is_full(&fifo)); + CU_ASSERT_TRUE(fifo_add(&fifo, 4)); TEST_FIFO_COUNT(4); - CU_ASSERT_TRUE(fifo_add(&fifo, 1)); - TEST_FIFO_COUNT(4); + CU_ASSERT_FALSE(fifo_is_empty(&fifo)); + CU_ASSERT_TRUE(fifo_is_full(&fifo)); CU_ASSERT_EQUAL(fifo.data[0], 1); CU_ASSERT_EQUAL(fifo.data[1], 2); CU_ASSERT_EQUAL(fifo.data[2], 3); CU_ASSERT_EQUAL(fifo.data[3], 4); + + CU_ASSERT_FALSE(fifo_add(&fifo, 5)); + TEST_FIFO_COUNT(4); + CU_ASSERT_FALSE(fifo_is_empty(&fifo)); + CU_ASSERT_TRUE(fifo_is_full(&fifo)); + + CU_ASSERT_EQUAL(fifo.data[0], 1); + CU_ASSERT_EQUAL(fifo.data[1], 2); + CU_ASSERT_EQUAL(fifo.data[2], 3); + CU_ASSERT_EQUAL(fifo.data[3], 4); + + CU_ASSERT_TRUE(fifo_remove_last(&fifo, &value)); + CU_ASSERT_EQUAL(value, 4); + TEST_FIFO_COUNT(3); + CU_ASSERT_FALSE(fifo_is_empty(&fifo)); + CU_ASSERT_FALSE(fifo_is_full(&fifo)); + + CU_ASSERT_TRUE(fifo_add(&fifo, 6)); + TEST_FIFO_COUNT(4); + CU_ASSERT_FALSE(fifo_is_empty(&fifo)); + CU_ASSERT_TRUE(fifo_is_full(&fifo)); + + CU_ASSERT_EQUAL(fifo.data[0], 1); + CU_ASSERT_EQUAL(fifo.data[1], 2); + CU_ASSERT_EQUAL(fifo.data[2], 3); + CU_ASSERT_EQUAL(fifo.data[3], 6); + + CU_ASSERT_TRUE(fifo_remove(&fifo, &value)); + CU_ASSERT_EQUAL(value, 1); + TEST_FIFO_COUNT(3); + CU_ASSERT_FALSE(fifo_is_empty(&fifo)); + CU_ASSERT_FALSE(fifo_is_full(&fifo)); + + CU_ASSERT_TRUE(fifo_add(&fifo, 7)); + TEST_FIFO_COUNT(4); + CU_ASSERT_TRUE(fifo_remove(&fifo, &value)); CU_ASSERT_EQUAL(value, 2); TEST_FIFO_COUNT(3); - CU_ASSERT_TRUE(fifo_add(&fifo, 5)); + CU_ASSERT_TRUE(fifo_remove(&fifo, &value)); + CU_ASSERT_EQUAL(value, 3); + TEST_FIFO_COUNT(2); + + CU_ASSERT_TRUE(fifo_add(&fifo, 10)); + TEST_FIFO_COUNT(3); + + CU_ASSERT_TRUE(fifo_add(&fifo, 11)); TEST_FIFO_COUNT(4); CU_ASSERT_TRUE(fifo_remove(&fifo, &value)); - CU_ASSERT_EQUAL(value, 3); + CU_ASSERT_EQUAL(value, 6); TEST_FIFO_COUNT(3); CU_ASSERT_TRUE(fifo_remove(&fifo, &value)); - CU_ASSERT_EQUAL(value, 4); + CU_ASSERT_EQUAL(value, 7); TEST_FIFO_COUNT(2); - CU_ASSERT_TRUE(fifo_remove(&fifo, &value)); - CU_ASSERT_EQUAL(value, 1); + CU_ASSERT_TRUE(fifo_remove_last(&fifo, &value)); + CU_ASSERT_EQUAL(value, 11); TEST_FIFO_COUNT(1); CU_ASSERT_TRUE(fifo_remove(&fifo, &value)); - CU_ASSERT_EQUAL(value, 5); + CU_ASSERT_EQUAL(value, 10); TEST_FIFO_COUNT(0); - + CU_ASSERT_FALSE(fifo_remove(&fifo, &value)); TEST_FIFO_COUNT(0); + + CU_ASSERT_FALSE(fifo_remove_last(&fifo, NULL)); } int main() { -- Gitblit v1.9.1