summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa
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-09-14 22:22:06 +0100
commit996aaf93ffd366af571581573f3f993e45b9fcea (patch)
tree933fc568ac4047aac814078a83e3288c23227c45 /meta/lib/oeqa
parent4359f8cce66ba0a51fcd62fa2fadb52d69f60736 (diff)
downloadpoky-996aaf93ffd366af571581573f3f993e45b9fcea.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>
Diffstat (limited to 'meta/lib/oeqa')
-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 698dda8f7b..b5017c2492 100644
--- a/meta/lib/oeqa/runtime/parselogs.py
+++ b/meta/lib/oeqa/runtime/parselogs.py
@@ -181,6 +181,9 @@ class ParseLogsTest(oeRuntimeTest):
181 def getMachine(self): 181 def getMachine(self):
182 return oeRuntimeTest.tc.d.getVar("MACHINE", True) 182 return oeRuntimeTest.tc.d.getVar("MACHINE", True)
183 183
184 def getWorkdir(self):
185 return oeRuntimeTest.tc.d.getVar("WORKDIR", True)
186
184 #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. 187 #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.
185 def getHardwareInfo(self): 188 def getHardwareInfo(self):
186 hwi = "" 189 hwi = ""
@@ -218,16 +221,19 @@ class ParseLogsTest(oeRuntimeTest):
218 221
219 #copy the log files to be parsed locally 222 #copy the log files to be parsed locally
220 def transfer_logs(self, log_list): 223 def transfer_logs(self, log_list):
221 target_logs = 'target_logs' 224 workdir = self.getWorkdir()
225 self.target_logs = workdir + '/' + 'target_logs'
226 target_logs = self.target_logs
222 if not os.path.exists(target_logs): 227 if not os.path.exists(target_logs):
223 os.makedirs(target_logs) 228 os.makedirs(target_logs)
229 bb.utils.remove(self.target_logs + "/*")
224 for f in log_list: 230 for f in log_list:
225 self.target.copy_from(f, target_logs) 231 self.target.copy_from(f, target_logs)
226 232
227 #get the local list of logs 233 #get the local list of logs
228 def get_local_log_list(self, log_locations): 234 def get_local_log_list(self, log_locations):
229 self.transfer_logs(self.getLogList(log_locations)) 235 self.transfer_logs(self.getLogList(log_locations))
230 logs = [ os.path.join('target_logs',f) for f in os.listdir('target_logs') if os.path.isfile(os.path.join('target_logs',f)) ] 236 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)) ]
231 return logs 237 return logs
232 238
233 #build the grep command to be used with filters and exclusions 239 #build the grep command to be used with filters and exclusions