[v3,3/3] test/bitcount: add bitcount tests
Checks
Commit Message
basic unit test of following functions
rte_clz32
rte_clz64
rte_ctz32
rte_ctz64
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
app/test/meson.build | 2 ++
app/test/test_bitcount.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 73 insertions(+)
create mode 100644 app/test/test_bitcount.c
Comments
06/01/2023 23:01, Tyler Retzlaff:
> basic unit test of following functions
>
> rte_clz32
> rte_clz64
> rte_ctz32
> rte_ctz64
This can be squashed with implementation in previous patch.
> From: Tyler Retzlaff [mailto:roretzla@linux.microsoft.com]
> Sent: Friday, 6 January 2023 23.02
>
> basic unit test of following functions
>
> rte_clz32
> rte_clz64
> rte_ctz32
> rte_ctz64
>
> Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
> ---
Series-acked-by: Morten Brørup <mb@smartsharesystems.com>
On Sat, Jan 07, 2023 at 09:15:27AM +0100, Thomas Monjalon wrote:
> 06/01/2023 23:01, Tyler Retzlaff:
> > basic unit test of following functions
> >
> > rte_clz32
> > rte_clz64
> > rte_ctz32
> > rte_ctz64
>
> This can be squashed with implementation in previous patch.
>
>
if you mean squashed into the patch that moves the existing functions
sure it can be, but really the addtions are a self contained change
separate from the move of the existing functions.
ordinarily i'd rather see history order be as follows.
- here is a change that just moves code (no addtions no deletions).
- here is a change that adds new apis (no moves).
you sure you want the move and additions all combined into one change?
either way confirm what you want and if needed i'll combine and push a
v4.
thanks
On Mon, Jan 09, 2023 at 08:57:32AM -0800, Tyler Retzlaff wrote:
> On Sat, Jan 07, 2023 at 09:15:27AM +0100, Thomas Monjalon wrote:
> > 06/01/2023 23:01, Tyler Retzlaff:
> > > basic unit test of following functions
> > >
> > > rte_clz32
> > > rte_clz64
> > > rte_ctz32
> > > rte_ctz64
> >
> > This can be squashed with implementation in previous patch.
> >
> >
>
> if you mean squashed into the patch that moves the existing functions
> sure it can be, but really the addtions are a self contained change
> separate from the move of the existing functions.
>
> ordinarily i'd rather see history order be as follows.
>
> - here is a change that just moves code (no addtions no deletions).
> - here is a change that adds new apis (no moves).
>
> you sure you want the move and additions all combined into one change?
>
> either way confirm what you want and if needed i'll combine and push a
> v4.
>
ignore the above, i misread what you were asking for. i will submit a
new version with the unit tests squished in to the new function
additions.
> thanks
@@ -13,6 +13,7 @@ test_sources = files(
'test_alarm.c',
'test_atomic.c',
'test_barrier.c',
+ 'test_bitcount.c',
'test_bitops.c',
'test_bitmap.c',
'test_bpf.c',
@@ -160,6 +161,7 @@ test_deps += ['bus_pci', 'bus_vdev']
fast_tests = [
['acl_autotest', true, true],
['atomic_autotest', false, true],
+ ['bitcount_autotest', true, true],
['bitmap_autotest', true, true],
['bpf_autotest', true, true],
['bpf_convert_autotest', true, true],
new file mode 100644
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (C) 2022 Microsoft Corporation
+ */
+
+#include <string.h>
+
+#include <rte_bitops.h>
+#include <rte_debug.h>
+
+#include "test.h"
+
+RTE_LOG_REGISTER(bitcount_logtype_test, test.bitcount, INFO);
+
+static int
+test_clz32(void)
+{
+ uint32_t v = 1;
+ RTE_TEST_ASSERT(rte_clz32(v) == sizeof(v) * CHAR_BIT - 1,
+ "Unexpected count.");
+
+ return 0;
+}
+
+static int
+test_clz64(void)
+{
+ uint64_t v = 1;
+ RTE_TEST_ASSERT(rte_clz64(v) == sizeof(v) * CHAR_BIT - 1,
+ "Unexpected count.");
+
+ return 0;
+}
+
+static int
+test_ctz32(void)
+{
+ uint32_t v = 2;
+ RTE_TEST_ASSERT(rte_ctz32(v) == 1, "Unexpected count.");
+
+ return 0;
+}
+
+static int
+test_ctz64(void)
+{
+ uint64_t v = 2;
+ RTE_TEST_ASSERT(rte_ctz64(v) == 1, "Unexpected count.");
+
+ return 0;
+}
+
+static struct unit_test_suite bitcount_test_suite = {
+ .suite_name = "bitcount autotest",
+ .setup = NULL,
+ .teardown = NULL,
+ .unit_test_cases = {
+ TEST_CASE(test_clz32),
+ TEST_CASE(test_clz64),
+ TEST_CASE(test_ctz32),
+ TEST_CASE(test_ctz64),
+ TEST_CASES_END()
+ }
+};
+
+static int
+test_bitcount(void)
+{
+ return unit_test_suite_runner(&bitcount_test_suite);
+}
+
+REGISTER_TEST_COMMAND(bitcount_autotest, test_bitcount);