This small change allows autotest to add directories to organize tests better
instead of the current behaviour which is a flat directory level.

The change revolves around converting '/' into '_' to handle the directory
parsing the install_pkg requires.

The other change is to handle the non-existant parent_test directory when
creating a job report in html.

There is still some fallout from this change, but light testing has
grabbed most of this.

Tested with my git changes from previous patches.

Signed-off-by: Don Zickus <[email protected]>
---
 client/shared/base_packages.py |    6 +++---
 client/tools/html_report.py    |    3 +++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/client/shared/base_packages.py b/client/shared/base_packages.py
index 478bc77..77a6c93 100644
--- a/client/shared/base_packages.py
+++ b/client/shared/base_packages.py
@@ -122,7 +122,7 @@ class RepositoryFetcher(object):
         """
         if install:
             pkg_name = self.pkgmgr.get_tarball_name(name, pkg_type)
-            fetch_path = os.path.join(fetch_dir, pkg_name)
+            fetch_path = os.path.join(fetch_dir, re.sub("/","_",pkg_name))
         else:
             pkg_name = name
             fetch_path = fetch_dir
@@ -155,7 +155,7 @@ class RepositoryFetcher(object):
         except (error.CmdError, error.AutoservRunError):
             pass
 
-        fetch_path = os.path.join(fetch_dir, filename)
+        fetch_path = os.path.join(fetch_dir, re.sub("/","_",filename))
         if (install_dir_exists and
             not self.pkgmgr.untar_required(fetch_path, install_dir)):
             return
@@ -479,7 +479,7 @@ class BasePackageManager(object):
         # onto the client in which case fcntl stuff wont work as the code
         # will run on the server in that case..
         if self.do_locking:
-            lockfile_name = '.%s-%s-lock' % (name, pkg_type)
+            lockfile_name = '.%s-%s-lock' % (re.sub("/","_",name), pkg_type)
             lockfile = open(os.path.join(self.pkgmgr_dir, lockfile_name), 'w')
 
         try:
diff --git a/client/tools/html_report.py b/client/tools/html_report.py
index 8e1bdc7..5539ab1 100755
--- a/client/tools/html_report.py
+++ b/client/tools/html_report.py
@@ -1544,6 +1544,9 @@ def parse_result(dirname, line, results_data):
         results_data[parts[1]] = [stime, [], None]
         try:
             parent_test = re.findall(r".*/", parts[1])[0][:-1]
+            if not parent_test in results_data:
+                #create place holder
+                results_data[parent_test] = [0, [], None]
             results_data[parent_test][1].append(parts[1])
         except IndexError:
             results_data[""][1].append(parts[1])
-- 
1.7.1

_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to