[dpdk-dev,v2,03/15] devargs: extend unittest
Checks
Commit Message
This is extending the existing unittest to also cover corner cases of
rte_eal_devargs_parse().
Signed-off-by: Jan Blunck <jblunck@infradead.org>
---
test/test/test_devargs.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
Comments
On 7/14/2017 10:12 PM, Jan Blunck wrote:
> This is extending the existing unittest to also cover corner cases of
> rte_eal_devargs_parse().
>
> Signed-off-by: Jan Blunck <jblunck@infradead.org>
> ---
> test/test/test_devargs.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/test/test/test_devargs.c b/test/test/test_devargs.c
> index 02fec8b1f..178c3b243 100644
> --- a/test/test/test_devargs.c
> +++ b/test/test/test_devargs.c
> @@ -58,6 +58,7 @@ test_devargs(void)
> {
> struct rte_devargs_list save_devargs_list;
> struct rte_devargs *devargs;
> + struct rte_devargs devargs_stack;
>
> /* save the real devargs_list, it is restored at the end of the test */
> save_devargs_list = devargs_list;
> @@ -121,6 +122,25 @@ test_devargs(void)
> if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, "000f:0:0") == 0)
> goto fail;
>
> + if (rte_eal_devargs_parse("", &devargs_stack) == 0) {
> + printf("Error in rte_eal_devargs_parse()\n");
> + goto fail;
> + }
> +
> + if (rte_eal_devargs_parse("08:00.1,foo=bar", &devargs_stack) != 0) {
> + printf("Error in rte_eal_devargs_parse(08:00.1,foo=bar)\n");
> + goto fail;
> + }
> + devargs = TAILQ_FIRST(&devargs_list);
> + if (devargs != NULL)
> + goto fail;
> + devargs = &devargs_stack;
> + if (strcmp(devargs->name, "08:00.1") != 0)
rte_eal_devargs_parse() does not insert into devargs_list, so this check
will fail.
rte_eal_devargs_add() both calls rte_eal_devargs_parse() and adds into
the list.
> + goto fail;
> + if (!devargs->args || strcmp(devargs->args, "foo=bar") != 0)
> + goto fail;
> +
> + free_devargs_list();
> devargs_list = save_devargs_list;
> return 0;
>
>
@@ -58,6 +58,7 @@ test_devargs(void)
{
struct rte_devargs_list save_devargs_list;
struct rte_devargs *devargs;
+ struct rte_devargs devargs_stack;
/* save the real devargs_list, it is restored at the end of the test */
save_devargs_list = devargs_list;
@@ -121,6 +122,25 @@ test_devargs(void)
if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, "000f:0:0") == 0)
goto fail;
+ if (rte_eal_devargs_parse("", &devargs_stack) == 0) {
+ printf("Error in rte_eal_devargs_parse()\n");
+ goto fail;
+ }
+
+ if (rte_eal_devargs_parse("08:00.1,foo=bar", &devargs_stack) != 0) {
+ printf("Error in rte_eal_devargs_parse(08:00.1,foo=bar)\n");
+ goto fail;
+ }
+ devargs = TAILQ_FIRST(&devargs_list);
+ if (devargs != NULL)
+ goto fail;
+ devargs = &devargs_stack;
+ if (strcmp(devargs->name, "08:00.1") != 0)
+ goto fail;
+ if (!devargs->args || strcmp(devargs->args, "foo=bar") != 0)
+ goto fail;
+
+ free_devargs_list();
devargs_list = save_devargs_list;
return 0;