* [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).