[dts] [PATCH 2/2 v2] framework: make option -d to absolute path

Liu, Yong yong.liu at intel.com
Sun Feb 15 09:53:29 CET 2015


Michael, need small fix for pep8 check.

> -----Original Message-----
> From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of Michael Qiu
> Sent: Sunday, February 15, 2015 4:42 PM
> To: dts at dpdk.org
> Subject: [dts] [PATCH 2/2 v2] framework: make option -d to absolute path
> 
> Option -d is used for dpdk directory name, which is not suitable.
> 
> Meanwhile, dts need make dpdk location in DUT more flexable.
> 
> Specify the absolute path with -d option to solve the issue.
> 
> Signed-off-by: Michael Qiu <michael.qiu at intel.com>
> ---
>  framework/main.py           | 22 +++++++++++-----------
>  framework/project_dpdk.py   | 36 ++++++++++++++++++++++++++++++------
>  framework/ssh_connection.py |  2 +-
>  3 files changed, 42 insertions(+), 18 deletions(-)
> 
> diff --git a/framework/main.py b/framework/main.py
> index 0223f57..11b7513 100755
> --- a/framework/main.py
> +++ b/framework/main.py
> @@ -43,23 +43,23 @@ import dts
>  os.chdir("../")
> 
> 
> -def git_build_package(gitLabel, gitPkg, output):
> +def git_build_package(gitLabel, pkgName, depot="dep"):
>      """
>      generate package from git, if dpdk existed will pull latest code
>      """
>      gitURL = r"http://dpdk.org/git/dpdk"
>      gitPrefix = r"dpdk/"
> -    if os.path.exists("%s/%s" % (output, gitPrefix)) is True:
> -        ret = os.system("cd %s/%s && git pull --force" % (output,
> gitPrefix))
> +    if os.path.exists("%s/%s" % (depot, gitPrefix)) is True:
> +        ret = os.system("cd %s/%s && git pull --force" % (depot,
> gitPrefix))
>      else:
> -        print "git clone %s %s/%s" % (gitURL, output, gitPrefix)
> -        ret = os.system("git clone %s output/%s" % (gitURL, gitPrefix))
> +        print "git clone %s %s/%s" % (gitURL, depot, gitPrefix)
> +        ret = os.system("git clone %s %s/%s" % (gitURL, depot, gitPrefix))
>      if ret is not 0:
>          raise EnvironmentError
> 
> -    print "git archive --format=tar.gz --prefix=%s %s -o %s" % (gitPrefix,
> gitLabel, gitPkg)
> -    ret = os.system("cd %s/%s && git archive --format=tar.gz --
> prefix=%s/ %s -o ../../%s"
> -                    % (output, gitPrefix, gitPrefix, gitLabel, gitPkg))
> +    print "git archive --format=tar.gz --prefix=%s %s -o %s" % (gitPrefix,
> gitLabel, pkgName)
> +    ret = os.system("cd %s/%s && git archive --format=tar.gz --
> prefix=%s/ %s -o ../%s"
> +                    % (depot, gitPrefix, gitPrefix, gitLabel, pkgName))
>      if ret is not 0:
>          raise EnvironmentError
> 
> @@ -79,7 +79,7 @@ parser.add_argument('--patch',
>                      help='apply a patch to the package under test')
> 
>  parser.add_argument('--snapshot',
> -                    default='dpdk.tar.gz',
> +                    default='dep/dpdk.tar.gz',
>                      help='snapshot .tgz file to use as input')
> 
>  parser.add_argument('--output',
> @@ -110,7 +110,7 @@ parser.add_argument('-t', '--test-cases',
>                      help='executes only the followings test cases')
> 
>  parser.add_argument('-d', '--dir',
> -                    default='dpdk',
> +                    default='~/dpdk',
>                      help='Output directory where dpdk package is
> extracted')
> 
>  parser.add_argument('-v', '--verbose',
> @@ -123,7 +123,7 @@ args = parser.parse_args()
>  # prepare DPDK source test package, DTS will exited when failed.
>  if args.git is not None:
>      try:
> -        git_build_package(args.git, args.snapshot, args.output)
> +        git_build_package(args.git, os.path.split(args.snapshot)[1])
>      except Exception:
>          print "FAILED TO PREPARE DPDK PACKAGE!!!"
>          sys.exit()
> diff --git a/framework/project_dpdk.py b/framework/project_dpdk.py
> index 8448a61..18a8853 100644
> --- a/framework/project_dpdk.py
> +++ b/framework/project_dpdk.py
> @@ -198,10 +198,22 @@ class DPDKdut(Dut):
>          if not self.skip_setup:
>              assert (os.path.isfile(pkgName) is True), "Invalid package"
> 
> -            self.session.copy_file_to(pkgName)
> +            p_dir, _ = os.path.split(self.base_dir)
> +            # ToDo: make this configurable
> +            dst_dir = "/tmp/"
> +
> +            out = self.send_expect("ll %s && cd %s" % (dst_dir, p_dir),
> +                                   "#", verify = True)
> +            if out == -1:
> +                raise ValueError("Directiry %s or %s does not exist,"
> +                                 "please check params -d"
> +                                  % (p_dir, dst_dir))
Found pep8 E127 continuation line over-indented for visual indent.
Should remove space before %.

> +            self.session.copy_file_to(pkgName, dst_dir)
> +
> +            # put patches to p_dir/patches/
>              if (patch is not None):
>                  for p in patch:
> -                    self.session.copy_file_to('../' + p)
> +                    self.session.copy_file_to('dep/' + p, dst_dir)
> 
>              self.kill_all()
> 
> @@ -216,13 +228,25 @@ class DPDKdut(Dut):
>              self.send_expect("rm -rf %s" % self.base_dir, "#")
> 
>              # unpack dpdk
> -            out = self.send_expect("tar zxf " + pkgName.split('/')[-1],
> "# ", 20)
> -            assert "Error" not in out
> +            out = self.send_expect("tar zxf %s%s -C %s" %
> +                                   (dst_dir, pkgName.split('/')[-1],
> p_dir),
> +                                   "# ", 20, verify = True)
Pep8 require not space in between parameter key and value. 

> +            if out == -1:
> +                raise ValueError("Extract dpdk package to %s failure,"
> +                                 "please check params -d"
> +                                  % (p_dir))
> +
Found pep8 E127 continuation line over-indented for visual indent.
Should remove space before %.

> +            # check dpdk dir name is expect
> +            out = self.send_expect("ls %s" % self.base_dir,
> +                                   "# ", 20, verify = True)
Pep8 require not space in between parameter key and value.

> +            if out == -1:
> +                raise ValueError("dpdk dir %s mismatch, please check
> params -d"
> +                                  % self.base_dir)
> 
Found pep8 E127 continuation line over-indented for visual indent.
Should remove space before %.

>              if (patch is not None):
>                  for p in patch:
> -                    out = self.send_expect("patch -d %s -p1 < ../%s" %
> -                                           (self.base_dir, p), "# ")
> +                    out = self.send_expect("patch -d %s -p1 < %s" %
> +                                           (self.base_dir, dst_dir + p),
> "# ")
>                      assert "****" not in out
> 
>          self.dut_prerequisites()
> diff --git a/framework/ssh_connection.py b/framework/ssh_connection.py
> index f3debc1..d1075b5 100644
> --- a/framework/ssh_connection.py
> +++ b/framework/ssh_connection.py
> @@ -51,7 +51,7 @@ class SSHConnection(object):
> 
>      def send_expect(self, cmds, expected, timeout=15, verify=False):
>          self.logger.info(cmds)
> -        out = self.session.send_expect(cmds, expected, timeout,
> verify=False)
> +        out = self.session.send_expect(cmds, expected, timeout, verify)
>          self.logger.debug(out)
>          return out
> 
> --
> 1.9.3



More information about the dts mailing list