]> code.ossystems Code Review - openembedded-core.git/commitdiff
oeqa/selftest/context: Improve log file handling
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 29 Nov 2018 12:07:53 +0000 (12:07 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 1 Dec 2018 11:37:49 +0000 (11:37 +0000)
The existing logfile is simply placed in the current directory. Since the test
changes cwd to BUILDDIR, the symlink to the log can be placed in an invalid
directory. We also see trackbacks if the symlink is invalid.

Improve things by:

* Placing logs in LOG_DIR (or BUILDDIR if unset).
* Using a full path to the log meaning the log and link are placed in the same directory.
* Using lexists instead of exists so invalid symlinks are handled correctly.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/selftest/context.py

index dab72688299f3c95f162ec89188852aaee40efce..c5212903276be647a8853350c9fb6b2fe9f5e240 100644 (file)
@@ -101,10 +101,15 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
 
     def _process_args(self, logger, args):
         args.test_start_time = time.strftime("%Y%m%d%H%M%S")
-        args.output_log = '%s-results-%s.log' % (self.name, args.test_start_time)
         args.test_data_file = None
         args.CASES_PATHS = None
 
+        bbvars = get_bb_vars()
+        logdir = os.environ.get("BUILDDIR")
+        if 'LOG_DIR' in bbvars:
+            logdir = bbvars['LOG_DIR']
+        args.output_log = logdir + '/%s-results-%s.log' % (self.name, args.test_start_time)
+
         super(OESelftestTestContextExecutor, self)._process_args(logger, args)
 
         if args.list_modules:
@@ -114,7 +119,7 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
         elif args.list_tests:
             args.list_tests = 'name'
 
-        self.tc_kwargs['init']['td'] = get_bb_vars()
+        self.tc_kwargs['init']['td'] = bbvars
         self.tc_kwargs['init']['machines'] = self._get_available_machines()
 
         builddir = os.environ.get("BUILDDIR")
@@ -304,7 +309,7 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
 
             output_link = os.path.join(os.path.dirname(args.output_log),
                     "%s-results.log" % self.name)
-            if os.path.exists(output_link):
+            if os.path.lexists(output_link):
                 os.remove(output_link)
             os.symlink(args.output_log, output_link)