* [PATCH 0/3] tests/unit: Slightly expand FIFO8 tests
@ 2024-09-06 13:12 Philippe Mathieu-Daudé
2024-09-06 13:12 ` [PATCH 1/3] tests/unit: Strengthen " Philippe Mathieu-Daudé
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-06 13:12 UTC (permalink / raw)
To: qemu-devel
Cc: Mark Cave-Ayland, Octavian Purdila, Philippe Mathieu-Daudé
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] 6+ messages in thread
* [PATCH 1/3] tests/unit: Strengthen FIFO8 tests
2024-09-06 13:12 [PATCH 0/3] tests/unit: Slightly expand FIFO8 tests Philippe Mathieu-Daudé
@ 2024-09-06 13:12 ` Philippe Mathieu-Daudé
2024-09-06 13:29 ` Philippe Mathieu-Daudé
2024-09-06 13:12 ` [PATCH 2/3] tests/unit: Expand test_fifo8_peek_buf_wrap() coverage Philippe Mathieu-Daudé
2024-09-06 13:12 ` [PATCH 3/3] tests/unit: Comment FIFO8 tests Philippe Mathieu-Daudé
2 siblings, 1 reply; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-06 13:12 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..60436a7600 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;
@@ -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,8 +157,8 @@ 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_out[4];
+ uint8_t data_in2[] = { 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc };
+ uint8_t data_out[8];
int count;
fifo8_create(&fifo, 8);
--
2.45.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] tests/unit: Expand test_fifo8_peek_buf_wrap() coverage
2024-09-06 13:12 [PATCH 0/3] tests/unit: Slightly expand FIFO8 tests Philippe Mathieu-Daudé
2024-09-06 13:12 ` [PATCH 1/3] tests/unit: Strengthen " Philippe Mathieu-Daudé
@ 2024-09-06 13:12 ` Philippe Mathieu-Daudé
2024-09-06 13:12 ` [PATCH 3/3] tests/unit: Comment FIFO8 tests Philippe Mathieu-Daudé
2 siblings, 0 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-06 13:12 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 | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/tests/unit/test-fifo.c b/tests/unit/test-fifo.c
index 60436a7600..4706bf8708 100644
--- a/tests/unit/test-fifo.c
+++ b/tests/unit/test-fifo.c
@@ -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] 6+ messages in thread
* [PATCH 3/3] tests/unit: Comment FIFO8 tests
2024-09-06 13:12 [PATCH 0/3] tests/unit: Slightly expand FIFO8 tests Philippe Mathieu-Daudé
2024-09-06 13:12 ` [PATCH 1/3] tests/unit: Strengthen " Philippe Mathieu-Daudé
2024-09-06 13:12 ` [PATCH 2/3] tests/unit: Expand test_fifo8_peek_buf_wrap() coverage Philippe Mathieu-Daudé
@ 2024-09-06 13:12 ` Philippe Mathieu-Daudé
2024-09-06 13:16 ` Philippe Mathieu-Daudé
2 siblings, 1 reply; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-06 13:12 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 | 190 ++++++++++++++++++++++++++++++++++++++++-
1 file changed, 188 insertions(+), 2 deletions(-)
diff --git a/tests/unit/test-fifo.c b/tests/unit/test-fifo.c
index 4706bf8708..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);
@@ -65,23 +100,50 @@ 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;
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] 6+ messages in thread
* Re: [PATCH 3/3] tests/unit: Comment FIFO8 tests
2024-09-06 13:12 ` [PATCH 3/3] tests/unit: Comment FIFO8 tests Philippe Mathieu-Daudé
@ 2024-09-06 13:16 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-06 13:16 UTC (permalink / raw)
To: qemu-devel; +Cc: Mark Cave-Ayland, Octavian Purdila
On 6/9/24 15:12, 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 | 190 ++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 188 insertions(+), 2 deletions(-)
> @@ -65,23 +100,50 @@ 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 };
Oops, this hunk is part of patch 1. Will squash locally.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/3] tests/unit: Strengthen FIFO8 tests
2024-09-06 13:12 ` [PATCH 1/3] tests/unit: Strengthen " Philippe Mathieu-Daudé
@ 2024-09-06 13:29 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-09-06 13:29 UTC (permalink / raw)
To: qemu-devel; +Cc: Mark Cave-Ayland, Octavian Purdila
On 6/9/24 15:12, 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(-)
> @@ -157,8 +157,8 @@ 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];
> + uint8_t data_out[8];
Since this part belongs to the next patch, I'll respin a v2.
> int count;
>
> fifo8_create(&fifo, 8);
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-09-06 13:31 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-06 13:12 [PATCH 0/3] tests/unit: Slightly expand FIFO8 tests Philippe Mathieu-Daudé
2024-09-06 13:12 ` [PATCH 1/3] tests/unit: Strengthen " Philippe Mathieu-Daudé
2024-09-06 13:29 ` Philippe Mathieu-Daudé
2024-09-06 13:12 ` [PATCH 2/3] tests/unit: Expand test_fifo8_peek_buf_wrap() coverage Philippe Mathieu-Daudé
2024-09-06 13:12 ` [PATCH 3/3] tests/unit: Comment FIFO8 tests Philippe Mathieu-Daudé
2024-09-06 13:16 ` 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).