aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-09 13:19:02 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-11-08 23:03:21 +0000
commit64ff5be5909705395b2db8d64e8d2c2c76092e1c (patch)
treef1c03be4c2dcb0cad69e607b3fb745c3e5b77ca1
parentcc1b341b0a8e834a15c4efe107886ad366f7678c (diff)
downloadopenembedded-core-64ff5be5909705395b2db8d64e8d2c2c76092e1c.tar.gz
oeqa/parselogs: Don't use cwd for file transfers
If you run: MACHINE=A bitbake <image> -c testimage MACHINE=B bitbake <image> -c testimage and A has errors in parselogs, machine B can pick these up and cause immense confusion. This is because the test transfers the log files to cwd which is usually TOPDIR. This is clearly bad and this patch uses a subdir of WORKDIR to ensure machines don't contaminate each other. Also ensure any previous logs are cleaned up from any existing transfer directory. (From OE-Core rev: ac8f1e58ca3a0945795087cad9443be3e3e6ead8) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--meta/lib/oeqa/runtime/parselogs.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/meta/lib/oeqa/runtime/parselogs.py b/meta/lib/oeqa/runtime/parselogs.py
index 116cb0b03d..477b0511d2 100644
--- a/meta/lib/oeqa/runtime/parselogs.py
+++ b/meta/lib/oeqa/runtime/parselogs.py
@@ -169,6 +169,9 @@ class ParseLogsTest(oeRuntimeTest):
def getMachine(self):
return oeRuntimeTest.tc.d.getVar("MACHINE", True)
+ def getWorkdir(self):
+ return oeRuntimeTest.tc.d.getVar("WORKDIR", True)
+
#get some information on the CPU of the machine to display at the beginning of the output. This info might be useful in some cases.
def getHardwareInfo(self):
hwi = ""
@@ -206,16 +209,19 @@ class ParseLogsTest(oeRuntimeTest):
#copy the log files to be parsed locally
def transfer_logs(self, log_list):
- target_logs = 'target_logs'
+ workdir = self.getWorkdir()
+ self.target_logs = workdir + '/' + 'target_logs'
+ target_logs = self.target_logs
if not os.path.exists(target_logs):
os.makedirs(target_logs)
+ bb.utils.remove(self.target_logs + "/*")
for f in log_list:
self.target.copy_from(f, target_logs)
#get the local list of logs
def get_local_log_list(self, log_locations):
self.transfer_logs(self.getLogList(log_locations))
- logs = [ os.path.join('target_logs',f) for f in os.listdir('target_logs') if os.path.isfile(os.path.join('target_logs',f)) ]
+ logs = [ os.path.join(self.target_logs, f) for f in os.listdir(self.target_logs) if os.path.isfile(os.path.join(self.target_logs, f)) ]
return logs
#build the grep command to be used with filters and exclusions