diff options
Diffstat (limited to 'app/test/test_common.c')
-rw-r--r-- | app/test/test_common.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/app/test/test_common.c b/app/test/test_common.c index 8effa2f9..afd2b99f 100644 --- a/app/test/test_common.c +++ b/app/test/test_common.c @@ -159,12 +159,44 @@ test_align(void) } static int +test_fls(void) +{ + struct fls_test_vector { + uint32_t arg; + int rc; + }; + int expected, rc; + uint32_t i, arg; + + const struct fls_test_vector test[] = { + {0x0, 0}, + {0x1, 1}, + {0x4000, 15}, + {0x80000000, 32}, + }; + + for (i = 0; i < RTE_DIM(test); i++) { + arg = test[i].arg; + rc = rte_fls_u32(arg); + expected = test[i].rc; + if (rc != expected) { + printf("Wrong rte_fls_u32(0x%x) rc=%d, expected=%d\n", + arg, rc, expected); + return TEST_FAILED; + } + } + + return 0; +} + +static int test_common(void) { int ret = 0; ret |= test_align(); ret |= test_macros(0); ret |= test_misc(); + ret |= test_fls(); return ret; } |