[dpdk-dev,v2,03/15] devargs: extend unittest

Message ID 20170714211213.34436-4-jblunck@infradead.org (mailing list archive)
State Rejected, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Jan Blunck July 14, 2017, 9:12 p.m. UTC
  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

Ferruh Yigit Sept. 4, 2017, 4:05 p.m. UTC | #1
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;
>  
>
  

Patch

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)
+		goto fail;
+	if (!devargs->args || strcmp(devargs->args, "foo=bar") != 0)
+		goto fail;
+
+	free_devargs_list();
 	devargs_list = save_devargs_list;
 	return 0;