From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 57B84B56D for ; Sun, 15 Feb 2015 09:41:40 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP; 15 Feb 2015 00:41:38 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,580,1418112000"; d="scan'208";a="652388550" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by orsmga001.jf.intel.com with ESMTP; 15 Feb 2015 00:41:38 -0800 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id t1F8fauA025302; Sun, 15 Feb 2015 16:41:36 +0800 Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1]) by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id t1F8fXRa011647; Sun, 15 Feb 2015 16:41:35 +0800 Received: (from dayuqiu@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id t1F8fW4U011643; Sun, 15 Feb 2015 16:41:32 +0800 From: Michael Qiu To: dts@dpdk.org Date: Sun, 15 Feb 2015 16:41:31 +0800 Message-Id: <1423989691-11612-1-git-send-email-michael.qiu@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1423982583-6086-1-git-send-email-michael.qiu@intel.com> References: <1423982583-6086-1-git-send-email-michael.qiu@intel.com> Subject: [dts] [PATCH 2/2 v2] framework: make option -d to absolute path X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Feb 2015 08:41:40 -0000 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 --- 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)) + 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) + if out == -1: + raise ValueError("Extract dpdk package to %s failure," + "please check params -d" + % (p_dir)) + + # check dpdk dir name is expect + out = self.send_expect("ls %s" % self.base_dir, + "# ", 20, verify = True) + if out == -1: + raise ValueError("dpdk dir %s mismatch, please check params -d" + % self.base_dir) 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