[oe-commits] Mariano Lopez : oetest.py: Don't wait to write dump files

git at git.openembedded.org git at git.openembedded.org
Sun Aug 16 08:32:45 UTC 2015


Module: openembedded-core.git
Branch: master-next
Commit: 73c98d38e94d3b1407620c134f3b00dcd9d6132c
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=73c98d38e94d3b1407620c134f3b00dcd9d6132c

Author: Mariano Lopez <mariano.lopez at linux.intel.com>
Date:   Wed Aug 12 13:48:09 2015 +0000

oetest.py: Don't wait to write dump files

This allows to write the dump files immediately
after get the data from the target. Before this,
it would run all the commands and write the files.
The old behavior could cause no log written at all
if the serial console gets stuck.

Signed-off-by: Mariano Lopez <mariano.lopez at linux.intel.com>
Signed-off-by: Ross Burton <ross.burton at intel.com>

---

 meta/lib/oeqa/oetest.py | 32 +++++++++++++++-----------------
 1 file changed, 15 insertions(+), 17 deletions(-)

diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.py
index a3f297a..dfed3de 100644
--- a/meta/lib/oeqa/oetest.py
+++ b/meta/lib/oeqa/oetest.py
@@ -122,21 +122,18 @@ class oeRuntimeTest(oeTest):
         # If a test fails or there is an exception
         if (self._resultForDoCleanups.failures or
                 self._resultForDoCleanups.errors):
-            commands = ["top -bn1", "ps", "free", "df", "_ping", "dmesg", "netstat -a", "ifconfig -a", "_logs"]
-            dump_dir = "/tmp/oe-saved-tests"
-            dump_dir = os.path.join(dump_dir,
-                    datetime.datetime.now().strftime('%Y%m%d%H%M'))
-            os.makedirs(dump_dir)
-            bb.warn("Test failed, getting data from target "
-                    "and saving it in %s" % dump_dir)
-            output = self.run_bulk_commands(commands)
-            for key,msg in output.iteritems():
-                filename = key.split()[0]
-                with open(os.path.join(dump_dir, filename), 'w') as f:
-                    f.write(msg)
-
-    def run_bulk_commands(self, commands):
-        all_output = {}
+            self.dump_target_logs()
+
+    def dump_target_logs(self):
+        commands = ["top -bn1", "ps", "free", "df", "_ping", "dmesg", "netstat -a", "ifconfig -a", "_logs"]
+        dump_dir = "/tmp/oe-saved-tests"
+        dump_sub_dir = ("%s_%s" % (
+                datetime.datetime.now().strftime('%Y%m%d%H%M'),
+                self._testMethodName))
+        dump_dir = os.path.join(dump_dir, dump_sub_dir)
+        os.makedirs(dump_dir)
+        bb.warn("%s failed: getting data from target and "
+                "saving into %s" % (self._testMethodName, dump_dir))
         for command in commands:
             # This will ping the host from target
             if command == "_ping":
@@ -151,8 +148,9 @@ class oeRuntimeTest(oeTest):
             else:
                 comm = command 
             (status, output) = self.target.run_serial(comm)
-            all_output[command] = output
-        return all_output
+            filename = command.split()[0]
+            with open(os.path.join(dump_dir, filename), 'w') as f:
+                f.write(output)
 
     #TODO: use package_manager.py to install packages on any type of image
     def install_packages(self, packagelist):



More information about the Openembedded-commits mailing list