[dts] [PATCH v1] Enhance Test App building and installation

Chen, Zhaoyan zhaoyan.chen at intel.com
Wed Mar 8 07:00:11 CET 2017


- Refactor Test App building and installation to a new function
- Add Test App building and installation in retry step
  (which build dpdk without -j option), so that fix sometime
  retry building successfully, but test app miss

---
 framework/project_dpdk.py | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/framework/project_dpdk.py b/framework/project_dpdk.py
index 3b91dd6..a0cb4c2 100644
--- a/framework/project_dpdk.py
+++ b/framework/project_dpdk.py
@@ -185,19 +185,17 @@ class DPDKdut(Dut):
         out = self.send_expect("make -j install T=%s %s" % (target, extra_options), "# ", build_time)
         #should not check test app compile status, because if test compile fail,
         #all unit test can't exec, but others case will exec sucessfull 
-        self.send_expect("make -j -C test/", "# ", build_time)
-        app_list = ['./test/test/test', './test/test-acl/testacl', './test/test-pipeline/testpipeline', './test/cmdline_test/cmdline_test']
-        for app in app_list:
-            self.send_expect('cp  %s ./%s/app' % (app, target), "# ", 30)
-          
+        self.build_install_dpdk_test_app(target, build_time)
 
         if("Error" in out or "No rule to make" in out):
             self.logger.error("ERROR - try without '-j'")
             # if Error try to execute make without -j option
             out = self.send_expect("make install T=%s %s" % (target, extra_options), "# ", 120)
+            self.build_install_dpdk_test_app(target, build_time)
 
         assert ("Error" not in out), "Compilation error..."
         assert ("No rule to make" not in out), "No rule to make error..."
+
     def build_install_dpdk_freebsd(self, target, extra_options):
         """
         Build DPDK source code on Freebsd with specified target.
@@ -214,21 +212,28 @@ class DPDKdut(Dut):
                                "#", build_time)
         #should not check test app compile status, because if test compile fail,
         #all unit test can't exec, but others case will exec sucessfull 
-        self.send_expect("make -j -C test/ CC=gcc48", "# ", build_time)
-        
-        app_list = ['./test/test/test', './test/test-acl/testacl', './test/test-pipeline/testpipeline', './test/cmdline_test/cmdline_test']
-        for app in app_list:
-            self.send_expect('cp -f %s ./%s/app' % (app, target), "# ", 30)
+        self.build_install_dpdk_test_app(target, build_time, os_type="freebsd")
 
         if("Error" in out or "No rule to make" in out):
             self.logger.error("ERROR - try without '-j'")
             # if Error try to execute make without -j option
             out = self.send_expect("make install T=%s CC=gcc48" % target,
                                    "#", build_time)
+            self.build_install_dpdk_test_app(target, build_time, os_type="freebsd")
 
         assert ("Error" not in out), "Compilation error..."
         assert ("No rule to make" not in out), "No rule to make error..."
 
+    def build_install_dpdk_test_app(self, target, build_time, os_type="linux"):
+        cmd_build_test = "make -j -C test/"
+        if os_type == "freebsd":
+            cmd_build_test = "make -j -C test/ CC=gcc48"
+
+        self.send_expect(cmd_build_test, "# ", build_time)
+        app_list = ['./test/test/test', './test/test-acl/testacl', './test/test-pipeline/testpipeline', './test/cmdline_test/cmdline_test']
+        for app in app_list:
+            self.send_expect('cp -f %s ./%s/app' % (app, target), "# ", 30)
+         
     def prepare_package(self):
         if not self.skip_setup:
             assert (os.path.isfile(self.package) is True), "Invalid package"
-- 
1.9.3



More information about the dts mailing list