From 857da0884a645517e69407a8eafd0c33111ab8a3 Mon Sep 17 00:00:00 2001 From: Mariano Lopez Date: Wed, 12 Aug 2015 13:48:09 +0000 Subject: 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. (From OE-Core rev: 73c98d38e94d3b1407620c134f3b00dcd9d6132c) Signed-off-by: Mariano Lopez Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/lib/oeqa/oetest.py | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) (limited to 'meta/lib/oeqa/oetest.py') diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.py index a3f297acf6..dfed3dea87 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): -- cgit v1.2.3-54-g00ecf