[dts] [PATCH 0/4] compile dpdk different config with different test suite by dts framework befor run test suite

Liu, Yong yong.liu at intel.com
Sat Apr 1 10:54:22 CEST 2017


Huilong, thanks for your comments.

> -----Original Message-----
> From: Xu, HuilongX
> Sent: Saturday, April 01, 2017 4:32 PM
> To: Liu, Yong <yong.liu at intel.com>; dts at dpdk.org
> Subject: RE: [dts] [PATCH 0/4] compile dpdk different config with
> different test suite by dts framework befor run test suite
> 
> 
> See my comments
> 
> > -----Original Message-----
> > From: Liu, Yong
> > Sent: Saturday, April 01, 2017 4:21 PM
> > To: Xu, HuilongX; dts at dpdk.org
> > Cc: Xu, HuilongX
> > Subject: RE: [dts] [PATCH 0/4] compile dpdk different config with
> different
> > test suite by dts framework befor run test suite
> >
> > Thanks huilong. The overall idea look good for me. Just some comments as
> > below:
> >
> > 1. Configuration dependency should be based on test case not suite.
> > Configuration requirements maybe changed even in one suite.
> If config dependency test case, must get all case name, but if case name
> same, maybe have issue.

That can be solved like reformat cases names to make sure name different from each other.
Or compile configuration format changed to "suite+case".

> 
> > 2. No need to compile all compile sessions. If cases not in execution
> list, we
> > can skip it. It will save more time :)
> The config is global, if test suite not in exection.cfg, the compile
> session will skip.

Thanks, we need to skip useless build.

> 
>  3. Assume that suite can remove all dpdk
> > build related code, cause of framework can make case not aware of
> > configuration dependencies.
> Maybe can savel compile switch in target result, but it only for check.
> Because, when we development a case.
> We should know compile switch config and compile.cfg is static and global.
> So not need know dependencies.
> >

Configuration dependencies have been tracked by compile.cfg. Compilation and link action can be handled in framework.
Test case code can ignore or discard DPDK configuration difference.

Logic will be like:

Compile config: tracking all configuration dependencies

DTS init:
	Load compile config
	Load execution config

	Build dpdk with default configuration
	If execution cases need in compile configuration
		Build dpdk with modified configuration file
		Build app with modified configuration file
		Move built target to other folder
		Move built binary to other folder

DTS run test Case: 
	If case need special configuration 
      	Link compile session target for this case to default target
		Link app for this case to default folder
		Run test case
		After case finished, remove that link and restore default target back

	If case not need special configuration
		Just run the case(original dpdk recompile code should also work here)

> > Thanks,
> > Marvin
> >
> > > -----Original Message-----
> > > From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of xu,huilong
> > > Sent: Saturday, April 01, 2017 3:42 PM
> > > To: dts at dpdk.org
> > > Cc: Xu, HuilongX <huilongx.xu at intel.com>
> > > Subject: [dts] [PATCH 0/4] compile dpdk different config with
> > > different test suite by dts framework befor run test suite
> > >
> > > we should compile dpdk many times for different test suite.
> > > if we exec a test suite must update dpdk compile suite or change dpdk
> > > code, we must cpmpile dpdk two times at least.
> > > So this change for read exec test_suite list and compile dpdk befor
> > > run test suite.
> > >
> > > update list:
> > >  1. conf/common_base
> > >     this is dpdk all compile switch from dpdk source code. it for
> > > check compile.cfg switch vaild.
> > >  2. conf/compile.cfg
> > >     compile config template, detaile config please see comments in
> > > file  3. framework/config.py
> > >     parse compile.cfg, detaile info please see comments in commit  4.
> > > framework/project_dpdk.py
> > >     a)define interface for test suit:
> > >       reset_compile_target()
> > >     b) read compile conf and get test suite list, then update compile
> > > switch and compile dpdk  5. framework/dts.py
> > >     set test suite list
> > >  6. tests/TestSuite_coremask.py and
> tests/TestSuite_queue_start_stop.py
> > >     example for use compile config.
> > > Now old interface for compile dpdk is vaild, so other case will also
> > > run pass.
> > >
> > > xu,huilong (4):
> > >   add dpdk all compile switch
> > >   add compile config file template and parse compile config class
> > >   read compile switch config and compile dpdk before test
> > >   add example for test suite
> > >
> > >  conf/common_base                    | 632
> > > ++++++++++++++++++++++++++++++++++++
> > >  conf/compile.cfg                    |  30 ++
> > >  framework/config.py                 |  21 +-
> > >  framework/dts.py                    |   2 +-
> > >  framework/project_dpdk.py           | 103 +++++-
> > >  tests/TestSuite_coremask.py         |  12 +-
> > >  tests/TestSuite_queue_start_stop.py |  28 +-
> > >  7 files changed, 789 insertions(+), 39 deletions(-)  create mode
> > > 100644 conf/common_base  create mode 100644 conf/compile.cfg
> > >
> > > --
> > > 1.9.3



More information about the dts mailing list