qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] tests/unit: Slightly expand FIFO8 tests
@ 2024-09-06 13:29 Philippe Mathieu-Daudé
  2024-09-06 13:29 ` [PATCH v2 1/3] tests/unit: Strengthen " Philippe Mathieu-Daudé
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-06 13:29 UTC (permalink / raw)
  To: qemu-devel
  Cc: Mark Cave-Ayland, Octavian Purdila, Philippe Mathieu-Daudé

Since v1:
- Correctly place patch hunks in corresponding patch

Mostly add documentation while reviewing them.

Based-on: <20240828122258.928947-1-mark.cave-ayland@ilande.co.uk>

Philippe Mathieu-Daudé (3):
  tests/unit: Strengthen FIFO8 tests
  tests/unit: Expand test_fifo8_peek_buf_wrap() coverage
  tests/unit: Comment FIFO8 tests

 tests/unit/test-fifo.c | 209 +++++++++++++++++++++++++++++++++++++++--
 1 file changed, 201 insertions(+), 8 deletions(-)

-- 
2.45.2



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2 1/3] tests/unit: Strengthen FIFO8 tests
  2024-09-06 13:29 [PATCH v2 0/3] tests/unit: Slightly expand FIFO8 tests Philippe Mathieu-Daudé
@ 2024-09-06 13:29 ` Philippe Mathieu-Daudé
  2024-09-06 21:01   ` Mark Cave-Ayland
  2024-09-06 13:29 ` [PATCH v2 2/3] tests/unit: Expand test_fifo8_peek_buf_wrap() coverage Philippe Mathieu-Daudé
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-06 13:29 UTC (permalink / raw)
  To: qemu-devel
  Cc: Mark Cave-Ayland, Octavian Purdila, Philippe Mathieu-Daudé

Replace reused bytes { 0x1, 0x2, 0x3, 0x4 } by { 0x9, 0xa, 0xb, 0xc }
to be sure a different value is overwritten.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 tests/unit/test-fifo.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/tests/unit/test-fifo.c b/tests/unit/test-fifo.c
index 1e54cde871..9b3a4940d0 100644
--- a/tests/unit/test-fifo.c
+++ b/tests/unit/test-fifo.c
@@ -22,7 +22,7 @@ static void test_fifo8_pop_bufptr_wrap(void)
 {
     Fifo8 fifo;
     uint8_t data_in1[] = { 0x1, 0x2, 0x3, 0x4 };
-    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x1, 0x2 };
+    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x9, 0xa };
     const uint8_t *buf;
     uint32_t count;
 
@@ -65,7 +65,7 @@ static void test_fifo8_peek_bufptr_wrap(void)
 {
     Fifo8 fifo;
     uint8_t data_in1[] = { 0x1, 0x2, 0x3, 0x4 };
-    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x1, 0x2 };
+    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x9, 0xa };
     const uint8_t *buf;
     uint32_t count;
 
@@ -112,7 +112,7 @@ static void test_fifo8_pop_buf_wrap(void)
 {
     Fifo8 fifo;
     uint8_t data_in1[] = { 0x1, 0x2, 0x3, 0x4 };
-    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x1, 0x2, 0x3, 0x4 };
+    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc };
     uint8_t data_out[4];
     int count;
 
@@ -126,8 +126,8 @@ static void test_fifo8_pop_buf_wrap(void)
     g_assert(count == 4);
     count = fifo8_pop_buf(&fifo, data_out, 4);
     g_assert(count == 4);
-    g_assert(data_out[0] == 0x1 && data_out[1] == 0x2 &&
-             data_out[2] == 0x3 && data_out[3] == 0x4);
+    g_assert(data_out[0] == 0x9 && data_out[1] == 0xa &&
+             data_out[2] == 0xb && data_out[3] == 0xc);
 
     g_assert(fifo8_num_used(&fifo) == 0);
     fifo8_destroy(&fifo);
@@ -157,7 +157,7 @@ static void test_fifo8_peek_buf_wrap(void)
 {
     Fifo8 fifo;
     uint8_t data_in1[] = { 0x1, 0x2, 0x3, 0x4 };
-    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x1, 0x2, 0x3, 0x4 };
+    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc };
     uint8_t data_out[4];
     int count;
 
-- 
2.45.2



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 2/3] tests/unit: Expand test_fifo8_peek_buf_wrap() coverage
  2024-09-06 13:29 [PATCH v2 0/3] tests/unit: Slightly expand FIFO8 tests Philippe Mathieu-Daudé
  2024-09-06 13:29 ` [PATCH v2 1/3] tests/unit: Strengthen " Philippe Mathieu-Daudé
@ 2024-09-06 13:29 ` Philippe Mathieu-Daudé
  2024-09-06 21:02   ` Mark Cave-Ayland
  2024-09-06 13:29 ` [PATCH v2 3/3] tests/unit: Comment FIFO8 tests Philippe Mathieu-Daudé
  2024-09-06 21:11 ` [PATCH v2 0/3] tests/unit: Slightly expand " Mark Cave-Ayland
  3 siblings, 1 reply; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-06 13:29 UTC (permalink / raw)
  To: qemu-devel
  Cc: Mark Cave-Ayland, Octavian Purdila, Philippe Mathieu-Daudé

Test fifo8_peek_buf() can fill a buffer with wrapped data.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 tests/unit/test-fifo.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tests/unit/test-fifo.c b/tests/unit/test-fifo.c
index 9b3a4940d0..fada526b6c 100644
--- a/tests/unit/test-fifo.c
+++ b/tests/unit/test-fifo.c
@@ -158,7 +158,7 @@ static void test_fifo8_peek_buf_wrap(void)
     Fifo8 fifo;
     uint8_t data_in1[] = { 0x1, 0x2, 0x3, 0x4 };
     uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc };
-    uint8_t data_out[4];
+    uint8_t data_out[8];
     int count;
 
     fifo8_create(&fifo, 8);
@@ -174,6 +174,13 @@ static void test_fifo8_peek_buf_wrap(void)
     g_assert(data_out[0] == 0x5 && data_out[1] == 0x6 &&
              data_out[2] == 0x7 && data_out[3] == 0x8);
 
+    count = fifo8_peek_buf(&fifo, data_out, 8);
+    g_assert(count == 8);
+    g_assert(data_out[0] == 0x5 && data_out[1] == 0x6 &&
+             data_out[2] == 0x7 && data_out[3] == 0x8);
+    g_assert(data_out[4] == 0x9 && data_out[5] == 0xa &&
+             data_out[6] == 0xb && data_out[7] == 0xc);
+
     g_assert(fifo8_num_used(&fifo) == 8);
     fifo8_destroy(&fifo);
 }
-- 
2.45.2



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 3/3] tests/unit: Comment FIFO8 tests
  2024-09-06 13:29 [PATCH v2 0/3] tests/unit: Slightly expand FIFO8 tests Philippe Mathieu-Daudé
  2024-09-06 13:29 ` [PATCH v2 1/3] tests/unit: Strengthen " Philippe Mathieu-Daudé
  2024-09-06 13:29 ` [PATCH v2 2/3] tests/unit: Expand test_fifo8_peek_buf_wrap() coverage Philippe Mathieu-Daudé
@ 2024-09-06 13:29 ` Philippe Mathieu-Daudé
  2024-09-06 21:10   ` Mark Cave-Ayland
  2024-09-06 21:11 ` [PATCH v2 0/3] tests/unit: Slightly expand " Mark Cave-Ayland
  3 siblings, 1 reply; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-06 13:29 UTC (permalink / raw)
  To: qemu-devel
  Cc: Mark Cave-Ayland, Octavian Purdila, Philippe Mathieu-Daudé

Add comments describing how the FIFO evolves during each test.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 tests/unit/test-fifo.c | 188 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 187 insertions(+), 1 deletion(-)

diff --git a/tests/unit/test-fifo.c b/tests/unit/test-fifo.c
index fada526b6c..14153c41fa 100644
--- a/tests/unit/test-fifo.c
+++ b/tests/unit/test-fifo.c
@@ -27,14 +27,36 @@ static void test_fifo8_pop_bufptr_wrap(void)
     uint32_t count;
 
     fifo8_create(&fifo, 8);
+    /*
+     *  head --v-- tail             used = 0
+     * FIFO: [ . . . . . . . . ]
+     */
 
     fifo8_push_all(&fifo, data_in1, sizeof(data_in1));
+    /*
+     *  head --v      ]-- tail      used = 4
+     * FIFO: [ 1 2 3 4 . . . . ]
+     */
     buf = fifo8_pop_bufptr(&fifo, 2, &count);
+    /*
+     *      head --v  ]-- tail      used = 2
+     * FIFO: [ 1 2 3 4 . . . . ]
+     *  buf  --^                    count = 2
+     */
     g_assert(count == 2);
     g_assert(buf[0] == 0x1 && buf[1] == 0x2);
 
     fifo8_push_all(&fifo, data_in2, sizeof(data_in2));
+    /*
+     *     tail --]v-- head         used = 8
+     * FIFO: [ 9 a 3 4 5 6 7 8 ]
+     */
     buf = fifo8_pop_bufptr(&fifo, 8, &count);
+    /*
+     *  head --v  ]-- tail          used = 2
+     * FIFO: [ 9 a 3 4 5 6 7 8 ]
+     *  buf      --^                count = 6
+     */
     g_assert(count == 6);
     g_assert(buf[0] == 0x3 && buf[1] == 0x4 && buf[2] == 0x5 &&
              buf[3] == 0x6 && buf[4] == 0x7 && buf[5] == 0x8);
@@ -51,9 +73,22 @@ static void test_fifo8_pop_bufptr(void)
     uint32_t count;
 
     fifo8_create(&fifo, 8);
+    /*
+     *  head --v-- tail             used = 0
+     * FIFO: [ . . . . . . . . ]
+     */
 
     fifo8_push_all(&fifo, data_in, sizeof(data_in));
+    /*
+     *  head --v      ]-- tail      used = 4
+     * FIFO: [ 1 2 3 4 . . . . ]
+     */
     buf = fifo8_pop_bufptr(&fifo, 2, &count);
+    /*
+     *      head --v  ]-- tail      used = 2
+     * FIFO: [ 1 2 3 4 . . . . ]
+     *  buf  --^                    count = 2
+     */
     g_assert(count == 2);
     g_assert(buf[0] == 0x1 && buf[1] == 0x2);
 
@@ -70,18 +105,45 @@ static void test_fifo8_peek_bufptr_wrap(void)
     uint32_t count;
 
     fifo8_create(&fifo, 8);
+    /*
+     *  head --v-- tail             used = 0
+     * FIFO: { . . . . . . . . }
+     */
 
     fifo8_push_all(&fifo, data_in1, sizeof(data_in1));
+    /*
+     *  head --v      ]-- tail      used = 4
+     * FIFO: { 1 2 3 4 . . . . }
+     */
     buf = fifo8_peek_bufptr(&fifo, 2, &count);
+    /*
+     *  head --v      ]-- tail      used = 4
+     * FIFO: { 1 2 3 4 . . . . }
+     *  buf: [ 1 2 ]                count = 2
+     */
     g_assert(count == 2);
     g_assert(buf[0] == 0x1 && buf[1] == 0x2);
 
     buf = fifo8_pop_bufptr(&fifo, 2, &count);
+    /*
+     *     head  --v  ]-- tail      used = 2
+     * FIFO: { 1 2 3 4 . . . . }
+     *  buf: [ 1 2 ]                count = 2
+     */
     g_assert(count == 2);
     g_assert(buf[0] == 0x1 && buf[1] == 0x2);
     fifo8_push_all(&fifo, data_in2, sizeof(data_in2));
+    /*
+     *  tail   ---]v-- head         used = 8
+     * FIFO: { 9 a 3 4 5 6 7 8 }
+     */
 
     buf = fifo8_peek_bufptr(&fifo, 8, &count);
+    /*
+     *     tail --]v-- head         used = 8
+     * FIFO: { 9 a 3 4 5 6 7 8 }
+     *  buf:     [ 3 4 5 6 7 8 ]    count = 6
+     */
     g_assert(count == 6);
     g_assert(buf[0] == 0x3 && buf[1] == 0x4 && buf[2] == 0x5 &&
              buf[3] == 0x6 && buf[4] == 0x7 && buf[5] == 0x8);
@@ -98,9 +160,22 @@ static void test_fifo8_peek_bufptr(void)
     uint32_t count;
 
     fifo8_create(&fifo, 8);
+    /*
+     *  head --v-- tail             used = 0
+     * FIFO: { . . . . . . . . }
+     */
 
     fifo8_push_all(&fifo, data_in, sizeof(data_in));
+    /*
+     *  head --v      ]-- tail      used = 4
+     * FIFO: { 1 2 3 4 . . . . }
+     */
     buf = fifo8_peek_bufptr(&fifo, 2, &count);
+    /*
+     *  head --v      ]-- tail      used = 4
+     * FIFO: { 1 2 3 4 . . . . }
+     *  buf: [ 1 2 ]                count = 2
+     */
     g_assert(count == 2);
     g_assert(buf[0] == 0x1 && buf[1] == 0x2);
 
@@ -117,14 +192,38 @@ static void test_fifo8_pop_buf_wrap(void)
     int count;
 
     fifo8_create(&fifo, 8);
+    /*
+     *  head --v-- tail             used = 0
+     * FIFO: { . . . . . . . . }
+     */
 
     fifo8_push_all(&fifo, data_in1, sizeof(data_in1));
+    /*
+     *  head --v      ]-- tail      used = 4
+     * FIFO: { 1 2 3 4 . . . . }
+     */
     fifo8_pop_buf(&fifo, NULL, 4);
+    /*
+     *         tail --]v-- head     used = 0
+     * FIFO: [ 1 2 3 4 . . . . ]
+     */
 
     fifo8_push_all(&fifo, data_in2, sizeof(data_in2));
+    /*
+     *         tail --]v-- head     used = 8
+     * FIFO: { 9 a b c 5 6 7 8 }
+     */
     count = fifo8_pop_buf(&fifo, NULL, 4);
+    /*
+     * head  --v      ]-- tail      used = 4
+     * FIFO: { 9 a b c 5 6 7 8 }
+     */
     g_assert(count == 4);
     count = fifo8_pop_buf(&fifo, data_out, 4);
+    /*
+     *         tail --]v-- head     used = 0
+     * FIFO: { 9 a b c 5 6 7 8 }
+     */
     g_assert(count == 4);
     g_assert(data_out[0] == 0x9 && data_out[1] == 0xa &&
              data_out[2] == 0xb && data_out[3] == 0xc);
@@ -141,9 +240,21 @@ static void test_fifo8_pop_buf(void)
     int count;
 
     fifo8_create(&fifo, 8);
+    /*
+     *  head --v-- tail             used = 0
+     * FIFO: { . . . . . . . . }
+     */
 
     fifo8_push_all(&fifo, data_in, sizeof(data_in));
+    /*
+     *  head --v      ]-- tail      used = 4
+     * FIFO: { 1 2 3 4 . . . . }
+     */
     count = fifo8_pop_buf(&fifo, NULL, 4);
+    /*
+     *         tail --]v-- head     used = 0
+     * FIFO: { 1 2 3 4 . . . . }
+     */
     g_assert(count == 4);
     count = fifo8_pop_buf(&fifo, data_out, 4);
     g_assert(data_out[0] == 0x5 && data_out[1] == 0x6 &&
@@ -162,19 +273,45 @@ static void test_fifo8_peek_buf_wrap(void)
     int count;
 
     fifo8_create(&fifo, 8);
+    /*
+     *  head --v-- tail             used = 0
+     * FIFO: { . . . . . . . . }
+     */
 
     fifo8_push_all(&fifo, data_in1, sizeof(data_in1));
+    /*
+     *  head --v      ]-- tail      used = 4
+     * FIFO: { 1 2 3 4 . . . . }
+     */
     fifo8_pop_buf(&fifo, NULL, 4);
+    /*
+     *         tail --]v-- head     used = 0
+     * FIFO: { 1 2 3 4 . . . . }
+     */
 
     fifo8_push_all(&fifo, data_in2, sizeof(data_in2));
+    /*
+     *         tail --]v-- head     used = 8
+     * FIFO: { 9 a b c 5 6 7 8 }
+     */
     count = fifo8_peek_buf(&fifo, NULL, 4);
     g_assert(count == 4);
     count = fifo8_peek_buf(&fifo, data_out, 4);
+    /*
+     *         tail --]v-- head     used = 8
+     * FIFO: { 9 a b c 5 6 7 8 }
+     *  buf:         [ 5 6 7 8 ]    count = 4
+     */
     g_assert(count == 4);
     g_assert(data_out[0] == 0x5 && data_out[1] == 0x6 &&
              data_out[2] == 0x7 && data_out[3] == 0x8);
 
     count = fifo8_peek_buf(&fifo, data_out, 8);
+    /*
+     *         tail --]v-- head     used = 8
+     * FIFO: { 9 a b c 5 6 7 8 }
+     *  buf:         [ 5 6 7 8 9 a b c ] count = 8
+     */
     g_assert(count == 8);
     g_assert(data_out[0] == 0x5 && data_out[1] == 0x6 &&
              data_out[2] == 0x7 && data_out[3] == 0x8);
@@ -193,14 +330,27 @@ static void test_fifo8_peek_buf(void)
     int count;
 
     fifo8_create(&fifo, 8);
+    /*
+     *  head --v-- tail             used = 0
+     * FIFO: { . . . . . . . . }
+     */
 
     fifo8_push_all(&fifo, data_in, sizeof(data_in));
+    /*
+     *  head --v      ]-- tail      used = 4
+     * FIFO: { 1 2 3 4 . . . . }
+     */
     count = fifo8_peek_buf(&fifo, NULL, 4);
     g_assert(count == 4);
+
     g_assert(data_out[0] == 0xff && data_out[1] == 0xff &&
              data_out[2] == 0xff && data_out[3] == 0xff);
-
     count = fifo8_peek_buf(&fifo, data_out, 4);
+    /*
+     *  head --v      ]-- tail      used = 4
+     * FIFO: { 1 2 3 4 . . . . }
+     *  buf: [ 1 2 3 4 ]            count = 4
+     */
     g_assert(count == 4);
     g_assert(data_out[0] == 0x1 && data_out[1] == 0x2 &&
              data_out[2] == 0x3 && data_out[3] == 0x4);
@@ -215,12 +365,28 @@ static void test_fifo8_peek(void)
     uint8_t c;
 
     fifo8_create(&fifo, 8);
+    /*
+     *  head --v-- tail             used = 0
+     * FIFO: { . . . . . . . . }
+     */
     fifo8_push(&fifo, 0x1);
+    /*
+     *  head --v]-- tail            used = 1
+     * FIFO: { 1 . . . . . . . }
+     */
     fifo8_push(&fifo, 0x2);
+    /*
+     *  head --v  ]-- tail          used = 2
+     * FIFO: { 1 2 . . . . . . }
+     */
 
     c = fifo8_peek(&fifo);
     g_assert(c == 0x1);
     fifo8_pop(&fifo);
+    /*
+     *    head --v]-- tail          used = 1
+     * FIFO: { 1 2 . . . . . . }
+     */
     c = fifo8_peek(&fifo);
     g_assert(c == 0x2);
 
@@ -234,12 +400,32 @@ static void test_fifo8_pushpop(void)
     uint8_t c;
 
     fifo8_create(&fifo, 8);
+    /*
+     *  head --v-- tail             used = 0
+     * FIFO: { . . . . . . . . }
+     */
     fifo8_push(&fifo, 0x1);
+    /*
+     *  head --v]-- tail            used = 1
+     * FIFO: { 1 . . . . . . . }
+     */
     fifo8_push(&fifo, 0x2);
+    /*
+     *  head --v  ]-- tail          used = 2
+     * FIFO: { 1 2 . . . . . . }
+     */
 
     c = fifo8_pop(&fifo);
+    /*
+     *    head --v]-- tail          used = 1
+     * FIFO: { 1 2 . . . . . . }
+     */
     g_assert(c == 0x1);
     c = fifo8_pop(&fifo);
+    /*
+     *     tail --]v-- head         used = 0
+     * FIFO: { 1 2 . . . . . . }
+     */
     g_assert(c == 0x2);
 
     g_assert(fifo8_num_used(&fifo) == 0);
-- 
2.45.2



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 1/3] tests/unit: Strengthen FIFO8 tests
  2024-09-06 13:29 ` [PATCH v2 1/3] tests/unit: Strengthen " Philippe Mathieu-Daudé
@ 2024-09-06 21:01   ` Mark Cave-Ayland
  0 siblings, 0 replies; 9+ messages in thread
From: Mark Cave-Ayland @ 2024-09-06 21:01 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel; +Cc: Octavian Purdila

On 06/09/2024 14:29, Philippe Mathieu-Daudé wrote:

> Replace reused bytes { 0x1, 0x2, 0x3, 0x4 } by { 0x9, 0xa, 0xb, 0xc }
> to be sure a different value is overwritten.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   tests/unit/test-fifo.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/unit/test-fifo.c b/tests/unit/test-fifo.c
> index 1e54cde871..9b3a4940d0 100644
> --- a/tests/unit/test-fifo.c
> +++ b/tests/unit/test-fifo.c
> @@ -22,7 +22,7 @@ static void test_fifo8_pop_bufptr_wrap(void)
>   {
>       Fifo8 fifo;
>       uint8_t data_in1[] = { 0x1, 0x2, 0x3, 0x4 };
> -    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x1, 0x2 };
> +    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x9, 0xa };
>       const uint8_t *buf;
>       uint32_t count;
>   
> @@ -65,7 +65,7 @@ static void test_fifo8_peek_bufptr_wrap(void)
>   {
>       Fifo8 fifo;
>       uint8_t data_in1[] = { 0x1, 0x2, 0x3, 0x4 };
> -    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x1, 0x2 };
> +    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x9, 0xa };
>       const uint8_t *buf;
>       uint32_t count;
>   
> @@ -112,7 +112,7 @@ static void test_fifo8_pop_buf_wrap(void)
>   {
>       Fifo8 fifo;
>       uint8_t data_in1[] = { 0x1, 0x2, 0x3, 0x4 };
> -    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x1, 0x2, 0x3, 0x4 };
> +    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc };
>       uint8_t data_out[4];
>       int count;
>   
> @@ -126,8 +126,8 @@ static void test_fifo8_pop_buf_wrap(void)
>       g_assert(count == 4);
>       count = fifo8_pop_buf(&fifo, data_out, 4);
>       g_assert(count == 4);
> -    g_assert(data_out[0] == 0x1 && data_out[1] == 0x2 &&
> -             data_out[2] == 0x3 && data_out[3] == 0x4);
> +    g_assert(data_out[0] == 0x9 && data_out[1] == 0xa &&
> +             data_out[2] == 0xb && data_out[3] == 0xc);
>   
>       g_assert(fifo8_num_used(&fifo) == 0);
>       fifo8_destroy(&fifo);
> @@ -157,7 +157,7 @@ static void test_fifo8_peek_buf_wrap(void)
>   {
>       Fifo8 fifo;
>       uint8_t data_in1[] = { 0x1, 0x2, 0x3, 0x4 };
> -    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x1, 0x2, 0x3, 0x4 };
> +    uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc };
>       uint8_t data_out[4];
>       int count;

That's a fair point: otherwise it could be easier for a bug in the Fifo8 
implementation to slip through:

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/3] tests/unit: Expand test_fifo8_peek_buf_wrap() coverage
  2024-09-06 13:29 ` [PATCH v2 2/3] tests/unit: Expand test_fifo8_peek_buf_wrap() coverage Philippe Mathieu-Daudé
@ 2024-09-06 21:02   ` Mark Cave-Ayland
  0 siblings, 0 replies; 9+ messages in thread
From: Mark Cave-Ayland @ 2024-09-06 21:02 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel; +Cc: Octavian Purdila

On 06/09/2024 14:29, Philippe Mathieu-Daudé wrote:

> Test fifo8_peek_buf() can fill a buffer with wrapped data.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   tests/unit/test-fifo.c | 9 ++++++++-
>   1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/unit/test-fifo.c b/tests/unit/test-fifo.c
> index 9b3a4940d0..fada526b6c 100644
> --- a/tests/unit/test-fifo.c
> +++ b/tests/unit/test-fifo.c
> @@ -158,7 +158,7 @@ static void test_fifo8_peek_buf_wrap(void)
>       Fifo8 fifo;
>       uint8_t data_in1[] = { 0x1, 0x2, 0x3, 0x4 };
>       uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc };
> -    uint8_t data_out[4];
> +    uint8_t data_out[8];
>       int count;
>   
>       fifo8_create(&fifo, 8);
> @@ -174,6 +174,13 @@ static void test_fifo8_peek_buf_wrap(void)
>       g_assert(data_out[0] == 0x5 && data_out[1] == 0x6 &&
>                data_out[2] == 0x7 && data_out[3] == 0x8);
>   
> +    count = fifo8_peek_buf(&fifo, data_out, 8);
> +    g_assert(count == 8);
> +    g_assert(data_out[0] == 0x5 && data_out[1] == 0x6 &&
> +             data_out[2] == 0x7 && data_out[3] == 0x8);
> +    g_assert(data_out[4] == 0x9 && data_out[5] == 0xa &&
> +             data_out[6] == 0xb && data_out[7] == 0xc);
> +
>       g_assert(fifo8_num_used(&fifo) == 8);
>       fifo8_destroy(&fifo);
>   }

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 3/3] tests/unit: Comment FIFO8 tests
  2024-09-06 13:29 ` [PATCH v2 3/3] tests/unit: Comment FIFO8 tests Philippe Mathieu-Daudé
@ 2024-09-06 21:10   ` Mark Cave-Ayland
  0 siblings, 0 replies; 9+ messages in thread
From: Mark Cave-Ayland @ 2024-09-06 21:10 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel; +Cc: Octavian Purdila

On 06/09/2024 14:29, Philippe Mathieu-Daudé wrote:

> Add comments describing how the FIFO evolves during each test.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   tests/unit/test-fifo.c | 188 ++++++++++++++++++++++++++++++++++++++++-
>   1 file changed, 187 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/unit/test-fifo.c b/tests/unit/test-fifo.c
> index fada526b6c..14153c41fa 100644
> --- a/tests/unit/test-fifo.c
> +++ b/tests/unit/test-fifo.c
> @@ -27,14 +27,36 @@ static void test_fifo8_pop_bufptr_wrap(void)
>       uint32_t count;
>   
>       fifo8_create(&fifo, 8);
> +    /*
> +     *  head --v-- tail             used = 0
> +     * FIFO: [ . . . . . . . . ]
> +     */
>   
>       fifo8_push_all(&fifo, data_in1, sizeof(data_in1));
> +    /*
> +     *  head --v      ]-- tail      used = 4
> +     * FIFO: [ 1 2 3 4 . . . . ]
> +     */
>       buf = fifo8_pop_bufptr(&fifo, 2, &count);
> +    /*
> +     *      head --v  ]-- tail      used = 2
> +     * FIFO: [ 1 2 3 4 . . . . ]
> +     *  buf  --^                    count = 2
> +     */
>       g_assert(count == 2);
>       g_assert(buf[0] == 0x1 && buf[1] == 0x2);
>   
>       fifo8_push_all(&fifo, data_in2, sizeof(data_in2));
> +    /*
> +     *     tail --]v-- head         used = 8
> +     * FIFO: [ 9 a 3 4 5 6 7 8 ]
> +     */
>       buf = fifo8_pop_bufptr(&fifo, 8, &count);
> +    /*
> +     *  head --v  ]-- tail          used = 2
> +     * FIFO: [ 9 a 3 4 5 6 7 8 ]
> +     *  buf      --^                count = 6
> +     */
>       g_assert(count == 6);
>       g_assert(buf[0] == 0x3 && buf[1] == 0x4 && buf[2] == 0x5 &&
>                buf[3] == 0x6 && buf[4] == 0x7 && buf[5] == 0x8);
> @@ -51,9 +73,22 @@ static void test_fifo8_pop_bufptr(void)
>       uint32_t count;
>   
>       fifo8_create(&fifo, 8);
> +    /*
> +     *  head --v-- tail             used = 0
> +     * FIFO: [ . . . . . . . . ]
> +     */
>   
>       fifo8_push_all(&fifo, data_in, sizeof(data_in));
> +    /*
> +     *  head --v      ]-- tail      used = 4
> +     * FIFO: [ 1 2 3 4 . . . . ]
> +     */
>       buf = fifo8_pop_bufptr(&fifo, 2, &count);
> +    /*
> +     *      head --v  ]-- tail      used = 2
> +     * FIFO: [ 1 2 3 4 . . . . ]
> +     *  buf  --^                    count = 2
> +     */
>       g_assert(count == 2);
>       g_assert(buf[0] == 0x1 && buf[1] == 0x2);
>   
> @@ -70,18 +105,45 @@ static void test_fifo8_peek_bufptr_wrap(void)
>       uint32_t count;
>   
>       fifo8_create(&fifo, 8);
> +    /*
> +     *  head --v-- tail             used = 0
> +     * FIFO: { . . . . . . . . }
> +     */
>   
>       fifo8_push_all(&fifo, data_in1, sizeof(data_in1));
> +    /*
> +     *  head --v      ]-- tail      used = 4
> +     * FIFO: { 1 2 3 4 . . . . }
> +     */
>       buf = fifo8_peek_bufptr(&fifo, 2, &count);
> +    /*
> +     *  head --v      ]-- tail      used = 4
> +     * FIFO: { 1 2 3 4 . . . . }
> +     *  buf: [ 1 2 ]                count = 2
> +     */
>       g_assert(count == 2);
>       g_assert(buf[0] == 0x1 && buf[1] == 0x2);
>   
>       buf = fifo8_pop_bufptr(&fifo, 2, &count);
> +    /*
> +     *     head  --v  ]-- tail      used = 2
> +     * FIFO: { 1 2 3 4 . . . . }
> +     *  buf: [ 1 2 ]                count = 2
> +     */
>       g_assert(count == 2);
>       g_assert(buf[0] == 0x1 && buf[1] == 0x2);
>       fifo8_push_all(&fifo, data_in2, sizeof(data_in2));
> +    /*
> +     *  tail   ---]v-- head         used = 8
> +     * FIFO: { 9 a 3 4 5 6 7 8 }
> +     */
>   
>       buf = fifo8_peek_bufptr(&fifo, 8, &count);
> +    /*
> +     *     tail --]v-- head         used = 8
> +     * FIFO: { 9 a 3 4 5 6 7 8 }
> +     *  buf:     [ 3 4 5 6 7 8 ]    count = 6
> +     */
>       g_assert(count == 6);
>       g_assert(buf[0] == 0x3 && buf[1] == 0x4 && buf[2] == 0x5 &&
>                buf[3] == 0x6 && buf[4] == 0x7 && buf[5] == 0x8);
> @@ -98,9 +160,22 @@ static void test_fifo8_peek_bufptr(void)
>       uint32_t count;
>   
>       fifo8_create(&fifo, 8);
> +    /*
> +     *  head --v-- tail             used = 0
> +     * FIFO: { . . . . . . . . }
> +     */
>   
>       fifo8_push_all(&fifo, data_in, sizeof(data_in));
> +    /*
> +     *  head --v      ]-- tail      used = 4
> +     * FIFO: { 1 2 3 4 . . . . }
> +     */
>       buf = fifo8_peek_bufptr(&fifo, 2, &count);
> +    /*
> +     *  head --v      ]-- tail      used = 4
> +     * FIFO: { 1 2 3 4 . . . . }
> +     *  buf: [ 1 2 ]                count = 2
> +     */
>       g_assert(count == 2);
>       g_assert(buf[0] == 0x1 && buf[1] == 0x2);
>   
> @@ -117,14 +192,38 @@ static void test_fifo8_pop_buf_wrap(void)
>       int count;
>   
>       fifo8_create(&fifo, 8);
> +    /*
> +     *  head --v-- tail             used = 0
> +     * FIFO: { . . . . . . . . }
> +     */
>   
>       fifo8_push_all(&fifo, data_in1, sizeof(data_in1));
> +    /*
> +     *  head --v      ]-- tail      used = 4
> +     * FIFO: { 1 2 3 4 . . . . }
> +     */
>       fifo8_pop_buf(&fifo, NULL, 4);
> +    /*
> +     *         tail --]v-- head     used = 0
> +     * FIFO: [ 1 2 3 4 . . . . ]
> +     */
>   
>       fifo8_push_all(&fifo, data_in2, sizeof(data_in2));
> +    /*
> +     *         tail --]v-- head     used = 8
> +     * FIFO: { 9 a b c 5 6 7 8 }
> +     */
>       count = fifo8_pop_buf(&fifo, NULL, 4);
> +    /*
> +     * head  --v      ]-- tail      used = 4
> +     * FIFO: { 9 a b c 5 6 7 8 }
> +     */
>       g_assert(count == 4);
>       count = fifo8_pop_buf(&fifo, data_out, 4);
> +    /*
> +     *         tail --]v-- head     used = 0
> +     * FIFO: { 9 a b c 5 6 7 8 }
> +     */
>       g_assert(count == 4);
>       g_assert(data_out[0] == 0x9 && data_out[1] == 0xa &&
>                data_out[2] == 0xb && data_out[3] == 0xc);
> @@ -141,9 +240,21 @@ static void test_fifo8_pop_buf(void)
>       int count;
>   
>       fifo8_create(&fifo, 8);
> +    /*
> +     *  head --v-- tail             used = 0
> +     * FIFO: { . . . . . . . . }
> +     */
>   
>       fifo8_push_all(&fifo, data_in, sizeof(data_in));
> +    /*
> +     *  head --v      ]-- tail      used = 4
> +     * FIFO: { 1 2 3 4 . . . . }
> +     */
>       count = fifo8_pop_buf(&fifo, NULL, 4);
> +    /*
> +     *         tail --]v-- head     used = 0
> +     * FIFO: { 1 2 3 4 . . . . }
> +     */
>       g_assert(count == 4);
>       count = fifo8_pop_buf(&fifo, data_out, 4);
>       g_assert(data_out[0] == 0x5 && data_out[1] == 0x6 &&
> @@ -162,19 +273,45 @@ static void test_fifo8_peek_buf_wrap(void)
>       int count;
>   
>       fifo8_create(&fifo, 8);
> +    /*
> +     *  head --v-- tail             used = 0
> +     * FIFO: { . . . . . . . . }
> +     */
>   
>       fifo8_push_all(&fifo, data_in1, sizeof(data_in1));
> +    /*
> +     *  head --v      ]-- tail      used = 4
> +     * FIFO: { 1 2 3 4 . . . . }
> +     */
>       fifo8_pop_buf(&fifo, NULL, 4);
> +    /*
> +     *         tail --]v-- head     used = 0
> +     * FIFO: { 1 2 3 4 . . . . }
> +     */
>   
>       fifo8_push_all(&fifo, data_in2, sizeof(data_in2));
> +    /*
> +     *         tail --]v-- head     used = 8
> +     * FIFO: { 9 a b c 5 6 7 8 }
> +     */
>       count = fifo8_peek_buf(&fifo, NULL, 4);
>       g_assert(count == 4);
>       count = fifo8_peek_buf(&fifo, data_out, 4);
> +    /*
> +     *         tail --]v-- head     used = 8
> +     * FIFO: { 9 a b c 5 6 7 8 }
> +     *  buf:         [ 5 6 7 8 ]    count = 4
> +     */
>       g_assert(count == 4);
>       g_assert(data_out[0] == 0x5 && data_out[1] == 0x6 &&
>                data_out[2] == 0x7 && data_out[3] == 0x8);
>   
>       count = fifo8_peek_buf(&fifo, data_out, 8);
> +    /*
> +     *         tail --]v-- head     used = 8
> +     * FIFO: { 9 a b c 5 6 7 8 }
> +     *  buf:         [ 5 6 7 8 9 a b c ] count = 8
> +     */
>       g_assert(count == 8);
>       g_assert(data_out[0] == 0x5 && data_out[1] == 0x6 &&
>                data_out[2] == 0x7 && data_out[3] == 0x8);
> @@ -193,14 +330,27 @@ static void test_fifo8_peek_buf(void)
>       int count;
>   
>       fifo8_create(&fifo, 8);
> +    /*
> +     *  head --v-- tail             used = 0
> +     * FIFO: { . . . . . . . . }
> +     */
>   
>       fifo8_push_all(&fifo, data_in, sizeof(data_in));
> +    /*
> +     *  head --v      ]-- tail      used = 4
> +     * FIFO: { 1 2 3 4 . . . . }
> +     */
>       count = fifo8_peek_buf(&fifo, NULL, 4);
>       g_assert(count == 4);
> +
>       g_assert(data_out[0] == 0xff && data_out[1] == 0xff &&
>                data_out[2] == 0xff && data_out[3] == 0xff);
> -
>       count = fifo8_peek_buf(&fifo, data_out, 4);
> +    /*
> +     *  head --v      ]-- tail      used = 4
> +     * FIFO: { 1 2 3 4 . . . . }
> +     *  buf: [ 1 2 3 4 ]            count = 4
> +     */
>       g_assert(count == 4);
>       g_assert(data_out[0] == 0x1 && data_out[1] == 0x2 &&
>                data_out[2] == 0x3 && data_out[3] == 0x4);
> @@ -215,12 +365,28 @@ static void test_fifo8_peek(void)
>       uint8_t c;
>   
>       fifo8_create(&fifo, 8);
> +    /*
> +     *  head --v-- tail             used = 0
> +     * FIFO: { . . . . . . . . }
> +     */
>       fifo8_push(&fifo, 0x1);
> +    /*
> +     *  head --v]-- tail            used = 1
> +     * FIFO: { 1 . . . . . . . }
> +     */
>       fifo8_push(&fifo, 0x2);
> +    /*
> +     *  head --v  ]-- tail          used = 2
> +     * FIFO: { 1 2 . . . . . . }
> +     */
>   
>       c = fifo8_peek(&fifo);
>       g_assert(c == 0x1);
>       fifo8_pop(&fifo);
> +    /*
> +     *    head --v]-- tail          used = 1
> +     * FIFO: { 1 2 . . . . . . }
> +     */
>       c = fifo8_peek(&fifo);
>       g_assert(c == 0x2);
>   
> @@ -234,12 +400,32 @@ static void test_fifo8_pushpop(void)
>       uint8_t c;
>   
>       fifo8_create(&fifo, 8);
> +    /*
> +     *  head --v-- tail             used = 0
> +     * FIFO: { . . . . . . . . }
> +     */
>       fifo8_push(&fifo, 0x1);
> +    /*
> +     *  head --v]-- tail            used = 1
> +     * FIFO: { 1 . . . . . . . }
> +     */
>       fifo8_push(&fifo, 0x2);
> +    /*
> +     *  head --v  ]-- tail          used = 2
> +     * FIFO: { 1 2 . . . . . . }
> +     */
>   
>       c = fifo8_pop(&fifo);
> +    /*
> +     *    head --v]-- tail          used = 1
> +     * FIFO: { 1 2 . . . . . . }
> +     */
>       g_assert(c == 0x1);
>       c = fifo8_pop(&fifo);
> +    /*
> +     *     tail --]v-- head         used = 0
> +     * FIFO: { 1 2 . . . . . . }
> +     */
>       g_assert(c == 0x2);
>   
>       g_assert(fifo8_num_used(&fifo) == 0);

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/3] tests/unit: Slightly expand FIFO8 tests
  2024-09-06 13:29 [PATCH v2 0/3] tests/unit: Slightly expand FIFO8 tests Philippe Mathieu-Daudé
                   ` (2 preceding siblings ...)
  2024-09-06 13:29 ` [PATCH v2 3/3] tests/unit: Comment FIFO8 tests Philippe Mathieu-Daudé
@ 2024-09-06 21:11 ` Mark Cave-Ayland
  2024-09-07  5:17   ` Philippe Mathieu-Daudé
  3 siblings, 1 reply; 9+ messages in thread
From: Mark Cave-Ayland @ 2024-09-06 21:11 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel; +Cc: Octavian Purdila

On 06/09/2024 14:29, Philippe Mathieu-Daudé wrote:

> Since v1:
> - Correctly place patch hunks in corresponding patch
> 
> Mostly add documentation while reviewing them.
> 
> Based-on: <20240828122258.928947-1-mark.cave-ayland@ilande.co.uk>
> 
> Philippe Mathieu-Daudé (3):
>    tests/unit: Strengthen FIFO8 tests
>    tests/unit: Expand test_fifo8_peek_buf_wrap() coverage
>    tests/unit: Comment FIFO8 tests
> 
>   tests/unit/test-fifo.c | 209 +++++++++++++++++++++++++++++++++++++++--
>   1 file changed, 201 insertions(+), 8 deletions(-)

This is great! Thanks for taking the time to review the Fifo8 patches in enough 
detail to be able to produce the ASCII art :)


ATB,

Mark.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/3] tests/unit: Slightly expand FIFO8 tests
  2024-09-06 21:11 ` [PATCH v2 0/3] tests/unit: Slightly expand " Mark Cave-Ayland
@ 2024-09-07  5:17   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-07  5:17 UTC (permalink / raw)
  To: Mark Cave-Ayland, qemu-devel; +Cc: Octavian Purdila

On 6/9/24 23:11, Mark Cave-Ayland wrote:

>> Philippe Mathieu-Daudé (3):
>>    tests/unit: Strengthen FIFO8 tests
>>    tests/unit: Expand test_fifo8_peek_buf_wrap() coverage
>>    tests/unit: Comment FIFO8 tests
>>
>>   tests/unit/test-fifo.c | 209 +++++++++++++++++++++++++++++++++++++++--
>>   1 file changed, 201 insertions(+), 8 deletions(-)
> 
> This is great! Thanks for taking the time to review the Fifo8 patches in 
> enough detail to be able to produce the ASCII art :)

Series queued, thanks!



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-09-07  5:18 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-06 13:29 [PATCH v2 0/3] tests/unit: Slightly expand FIFO8 tests Philippe Mathieu-Daudé
2024-09-06 13:29 ` [PATCH v2 1/3] tests/unit: Strengthen " Philippe Mathieu-Daudé
2024-09-06 21:01   ` Mark Cave-Ayland
2024-09-06 13:29 ` [PATCH v2 2/3] tests/unit: Expand test_fifo8_peek_buf_wrap() coverage Philippe Mathieu-Daudé
2024-09-06 21:02   ` Mark Cave-Ayland
2024-09-06 13:29 ` [PATCH v2 3/3] tests/unit: Comment FIFO8 tests Philippe Mathieu-Daudé
2024-09-06 21:10   ` Mark Cave-Ayland
2024-09-06 21:11 ` [PATCH v2 0/3] tests/unit: Slightly expand " Mark Cave-Ayland
2024-09-07  5:17   ` Philippe Mathieu-Daudé

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).