add option --testenvs for core test execution
authorliuct <liuchengtao1982@gmail.com>
Tue, 19 Aug 2014 17:58:10 +0000 (01:58 +0800)
committerliuct <liuchengtao1982@gmail.com>
Tue, 19 Aug 2014 17:58:10 +0000 (01:58 +0800)
VERSION
debian/changelog
debian/files
setup.py
testkit-lite
testkitlite/engines/default.py
testkitlite/util/session.py

diff --git a/VERSION b/VERSION
index b666ca8..8527b02 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,4 +1,4 @@
 [public_version]
-version=3.1.5
+version=3.1.6
 [internal_version]
-version=3.1.5
+version=3.1.6
index 0fb782e..86f4d1e 100644 (file)
@@ -1,4 +1,4 @@
-testkit-lite (3.1.5) unstable; urgency=low
+testkit-lite (3.1.6) unstable; urgency=low
 
   * Public Release.
 
index 400e1df..7594d13 100644 (file)
@@ -1 +1 @@
-testkit-lite_3.1.5_all.deb utils standard
+testkit-lite_3.1.6_all.deb utils standard
index e51e76c..c92bff0 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -40,7 +40,7 @@ setup(
     url = "https://github.com/testkit/testkit-lite",
     author = "Shaofeng Tang",
     author_email = "shaofeng.tang@intel.com",
-    version = "3.1.5",
+    version = "3.1.6",
     include_package_data = True,
     data_files = [('/opt/testkit/lite', ['VERSION', 'doc/testkit-lite_user_guide.pdf', 'doc/testkit-lite_tutorial.pdf', 'doc/test_definition_schema.pdf']),
                   ('/opt/testkit/lite/commodule/', ['CONFIG']),
index f9a2067..afc5b0b 100755 (executable)
@@ -183,6 +183,8 @@ try:
                     help="set device serial information"),
         make_option("--testprefix", dest="test_prefix", action="store",
                     help="set prefix for test case entry"),
+        make_option("--testenvs", dest="test_env", action="store",
+                    help="set environs for test case execution"),
         make_option("--comm", dest="commodule", action="store",
                     help="set commodule by default,"
                     "set \"localhost\" for local web testing"),
index e1af686..666ac2c 100644 (file)
@@ -196,13 +196,9 @@ def _web_test_exec(conn, server_url, test_web_app, exetype, cases_queue, result_
             ret = http_request(
                 get_url(server_url, "/check_server_status"), "GET", {})
             if ret is None:
+                LOGGER.error(
+                    "[ ERROR: get server status timeout, please check deivce! ]")
                 err_cnt += 1
-                if err_cnt >= CNT_RETRY:
-                    LOGGER.error(
-                        "[ check server status time out, please check deivce! ]")
-                    test_set_finished = True
-                    result_obj.set_status(1)
-                    break
             else:
                 result_cases = ret.get("cases")
                 error_code = ret.get("error_code")
@@ -218,6 +214,7 @@ def _web_test_exec(conn, server_url, test_web_app, exetype, cases_queue, result_
                         break
                     elif error_code == BLOCK_ERROR:
                         LOGGER.error("[ ERROR: test case block issue! ]")
+                        err_cnt += 1
                 else:
                     err_cnt = 0
 
@@ -233,6 +230,13 @@ def _web_test_exec(conn, server_url, test_web_app, exetype, cases_queue, result_
                     break
                 elif ret["block_finished"] == 1:
                     break
+
+            if err_cnt >= CNT_RETRY:
+                LOGGER.error(
+                    "[ ERROR: get too many errors, stop current set! ]")
+                test_set_finished = True
+                result_obj.set_status(1)
+                break
             time.sleep(2)
 
 
index 41e7740..75ca8a2 100644 (file)
@@ -98,6 +98,7 @@ class TestSession:
         self.has_capability = False
         self.rerun = False
         self.test_prefix = ""
+        self.test_env = ""
         self.filter_ok = False
         self.wdurl = ""
         self.debugip =  ""
@@ -123,6 +124,8 @@ class TestSession:
             self.rerun = options.rerun
         if options.test_prefix:
             self.test_prefix = options.test_prefix
+        if options.test_env:
+            self.test_env = options.test_env
         if options.worker:
             self.worker_name = options.worker
         if options.targetplatform:
@@ -644,15 +647,11 @@ class TestSession:
             parameters.setdefault("suite_name", tsuite.get('name'))
             for tset in root_em.getiterator('set'):
                 case_order = 1
-                parameters.setdefault(
-                    "casecount", str(len(tset.getiterator('testcase')))
-                )
+                parameters.setdefault("casecount", str(len(tset.getiterator('testcase'))))
                 parameters.setdefault("current_set_name", xml_set_tmp)
-
                 parameters.setdefault("name", tset.get('name'))
                 parameters.setdefault("type", tset.get('type'))
-                parameters.setdefault(
-                    "exetype", '')
+                parameters.setdefault("exetype", '')
 
                 if tset.get("test_set_src") is not None:
                     set_entry = self.test_prefix + tset.get("test_set_src")
@@ -674,6 +673,8 @@ class TestSession:
                         if not tc_entry:
                             tc_entry = ""
                         case_detail_tmp["entry"] = self.test_prefix + tc_entry
+                        if self.test_env != "" and not tc_entry.endswith('html') and not tc_entry.endswith('htm'):
+                            case_detail_tmp["entry"] = self.test_env + " " + case_detail_tmp["entry"]
                         if tcase.find(
                                 'description/test_script_entry').get('timeout'):
                             case_detail_tmp["timeout"] = tcase.find(