[dpdk-dev] [PATCH v1 01/10] app/test: introduce resources for tests

Jan Viktorin viktorin at rehivetech.com
Fri May 6 18:20:42 CEST 2016


On Fri, 06 May 2016 16:01:08 +0200
Thomas Monjalon <thomas.monjalon at 6wind.com> wrote:

> 2016-05-06 12:48, Jan Viktorin:
> > --- /dev/null
> > +++ b/app/test/resource.h
> > @@ -0,0 +1,61 @@
> > +/*-
> > + *   BSD LICENSE  
> [...]
> > + */  
> 
> Please include a multi-line comment here to explain what is a resource
> and why it is needed.

Will fix.

> 
> > +
> > +#ifndef _RESOURCE_H_
> > +#define _RESOURCE_H_
> > +  
> |...]
> |> +
> > +TAILQ_HEAD(resource_list, resource);
> > +extern struct resource_list resource_list;  
> 
> Why extern?

Will fix.

> 
> > +
> > +struct resource {
> > +	const char *name;
> > +	const char *beg;  
> 
> begin?
> Bruce is removing some megabytes from lpm tests, so we have
> some room for field names ;)

I love 3-chars identifiers... ;)

I will rework this, thanks.

> 
> > +	const char *end;
> > +	TAILQ_ENTRY(resource) next;
> > +};
> > +
> > +static inline size_t resource_size(const struct resource *r)  
> 
> Why inline? It could be in .c

OK.

> 
> > +{
> > +	return r->end - r->beg;
> > +}
> > +
> > +const struct resource *resource_find(const char *name);
> > +
> > +void __resource_register(struct resource *r);  
> 
> A comment is needed to explain the role of this function.
> Why a double underscore?

A non-API function. It shouldn't be called by user. Nothing more.

> 
> > +#define REGISTER_RESOURCE(_n, _b, _e) \  
> 
> I'm not a big fan of the underscores.

+1

> 
> > +static struct resource linkres_ ##_n = {       \
> > +	.name = RTE_STR(_n),     \
> > +	.beg = _b,               \
> > +	.end = _e,               \
> > +};                               \
> > +__REGISTER_RESOURCE(linkres_ ##_n)  
> 
> Please avoid nested macros.

I don't understand this. I am avoiding code duplication. Is it wrong?

> 
> > +#define __REGISTER_RESOURCE(name)     \
> > +static void __attribute__((constructor,used)) resinitfn_ ##name(void); \  
> 
> Why declaring the function just before its implementation?

Wrote in a hurry to work out-of-the box. Will fix...

> 
> > +static void __attribute__((constructor,used)) resinitfn_ ##name(void) \
> > +{                                   \
> > +	__resource_register(&name); \
> > +}  
> 



-- 
   Jan Viktorin                  E-mail: Viktorin at RehiveTech.com
   System Architect              Web:    www.RehiveTech.com
   RehiveTech
   Brno, Czech Republic


More information about the dev mailing list