[dts] [PATCH] framework: optimize dpdk package preparation process

Yong Liu yong.liu at intel.com
Fri Feb 13 04:03:43 CET 2015


If output/dpdk existed, only need pull latest code. If output/dpdk
not existed, will clone from dpdk.org. When failure happened, DTS
will exit.

Signed-off-by: Marvinliu <yong.liu at intel.com>
---
 framework/dts.py  |  3 ---
 framework/main.py | 25 ++++++++++++++-----------
 2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/framework/dts.py b/framework/dts.py
index 871380b..3c73596 100644
--- a/framework/dts.py
+++ b/framework/dts.py
@@ -399,9 +399,6 @@ def run_all(config_file, pkgName, git, patch, skip_setup,
     global stats
     global log_handler
 
-    # change operation directory
-    os.chdir("../")
-
     # prepare the output folder
     if not os.path.exists(output_dir):
         os.mkdir(output_dir)
diff --git a/framework/main.py b/framework/main.py
index 3b2f484..0223f57 100755
--- a/framework/main.py
+++ b/framework/main.py
@@ -39,28 +39,30 @@ import sys
 import argparse
 import dts
 
+# change operation directory
+os.chdir("../")
+
 
 def git_build_package(gitLabel, gitPkg, output):
     """
-    generate package from git
-    run bash shell
+    generate package from git, if dpdk existed will pull latest code
     """
     gitURL = r"http://dpdk.org/git/dpdk"
     gitPrefix = r"dpdk/"
-    print "git clone %s %s/%s" % (gitURL, output, gitPrefix)
-    ret = os.system("git clone %s output/%s" % (gitURL, gitPrefix))
+    if os.path.exists("%s/%s" % (output, gitPrefix)) is True:
+        ret = os.system("cd %s/%s && git pull --force" % (output, gitPrefix))
+    else:
+        print "git clone %s %s/%s" % (gitURL, output, gitPrefix)
+        ret = os.system("git clone %s output/%s" % (gitURL, 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 output/%s && git archive --format=tar.gz --prefix=%s %s -o %s" % (gitPrefix, gitPrefix, gitLabel, gitPkg))
+    ret = os.system("cd %s/%s && git archive --format=tar.gz --prefix=%s/ %s -o ../../%s"
+                    % (output, gitPrefix, gitPrefix, gitLabel, gitPkg))
     if ret is not 0:
         raise EnvironmentError
 
-#
-# Main program begins here
-#
-
-
 # Read cmd-line args
 parser = argparse.ArgumentParser(description='DPDK test framework.')
 
@@ -118,7 +120,7 @@ parser.add_argument('-v', '--verbose',
 args = parser.parse_args()
 
 
-# prepare DPDK source test package
+# 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)
@@ -126,6 +128,7 @@ if args.git is not None:
         print "FAILED TO PREPARE DPDK PACKAGE!!!"
         sys.exit()
 
+# Main program begins here
 dts.run_all(args.config_file, args.snapshot, args.git,
             args.patch, args.skip_setup, args.read_cache,
             args.project, args.suite_dir, args.test_cases,
-- 
1.9.3



More information about the dts mailing list