Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Ed Bartosh <ed.bartosh@linux.intel.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] oe-selftest: Improve BUILDDIR environment handling
Date: Thu, 5 Jan 2017 11:40:09 +0200	[thread overview]
Message-ID: <20170105094009.GA30427@linux.intel.com> (raw)
In-Reply-To: <1483573733-10014-1-git-send-email-richard.purdie@linuxfoundation.org>

On Wed, Jan 04, 2017 at 11:48:53PM +0000, Richard Purdie wrote:
> Its possible something (like bitbake/tinfoil2) may mess around with the
> environment and using the enviroment as a global variable store isn't
> particularly nice anyway.
> 
> This patch changes the BUILDDIR usages so that the environment isn't used
> as a global store and a global variable is used instead. Whilst that
> is still not perfect, it does avoid the current double and triple backtraces
> we're seeing where tinfoil2/bitbake has trampled the enviroment leading
> to failures of failures making debugging even harder.
> 
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> ---
>  scripts/oe-selftest | 19 +++++++++++++------
>  1 file changed, 13 insertions(+), 6 deletions(-)
> 
> diff --git a/scripts/oe-selftest b/scripts/oe-selftest
> index bfcea66..e166521 100755
> --- a/scripts/oe-selftest
> +++ b/scripts/oe-selftest
> @@ -111,9 +111,13 @@ def get_args_parser():
>                          help='Submit test results to a repository')
>      return parser
>  
> +builddir = None
> +
>  
>  def preflight_check():
>  
> +    global builddir
> +
>      log.info("Checking that everything is in order before running the tests")
>  
>      if not os.environ.get("BUILDDIR"):
> @@ -135,7 +139,7 @@ def preflight_check():
>      return True
>  
>  def add_include():
> -    builddir = os.environ.get("BUILDDIR")
> +    global builddir
You don't need to use 'global' here. It's only mandatory if
you change variable value:
https://docs.python.org/3/reference/simple_stmts.html#the-global-statement

Would it be more readable to use name in upper case: BUILDDIR?

>      if "#include added by oe-selftest.py" \
>          not in ftools.read_file(os.path.join(builddir, "conf/local.conf")):
>              log.info("Adding: \"include selftest.inc\" in local.conf")
> @@ -149,7 +153,7 @@ def add_include():
>                      "\n#include added by oe-selftest.py\ninclude bblayers.inc")
>  
>  def remove_include():
> -    builddir = os.environ.get("BUILDDIR")
> +    global builddir
>      if builddir is None:
>          return
>      if "#include added by oe-selftest.py" \
> @@ -165,18 +169,21 @@ def remove_include():
>                      "\n#include added by oe-selftest.py\ninclude bblayers.inc")
>  
>  def remove_inc_files():
> +    global builddir
> +    if builddir is None:
> +        return
>      try:
> -        os.remove(os.path.join(os.environ.get("BUILDDIR"), "conf/selftest.inc"))
> +        os.remove(os.path.join(builddir, "conf/selftest.inc"))
>          for root, _, files in os.walk(get_test_layer()):
>              for f in files:
>                  if f == 'test_recipe.inc':
>                      os.remove(os.path.join(root, f))
> -    except (AttributeError, OSError,) as e:    # AttributeError may happen if BUILDDIR is not set
> +    except OSError as e:
>          pass
>  
>      for incl_file in ['conf/bblayers.inc', 'conf/machine.inc']:
>          try:
> -            os.remove(os.path.join(os.environ.get("BUILDDIR"), incl_file))
> +            os.remove(os.path.join(builddir, incl_file))
>          except:
>              pass
>  
> @@ -394,7 +401,7 @@ def coverage_setup(coverage_source, coverage_include, coverage_omit):
>      """ Set up the coverage measurement for the testcases to be run """
>      import datetime
>      import subprocess
> -    builddir = os.environ.get("BUILDDIR")
> +    global builddir
>      pokydir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
>      curcommit= subprocess.check_output(["git", "--git-dir", os.path.join(pokydir, ".git"), "rev-parse", "HEAD"]).decode('utf-8')
>      coveragerc = "%s/.coveragerc" % builddir
> -- 
> 2.7.4
> 
> -- 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
--
Regards,
Ed


  reply	other threads:[~2017-01-05  9:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-04 23:48 [PATCH] oe-selftest: Improve BUILDDIR environment handling Richard Purdie
2017-01-05  9:40 ` Ed Bartosh [this message]
2017-01-05 10:10   ` Richard Purdie
2017-01-05 10:54     ` Ed Bartosh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170105094009.GA30427@linux.intel.com \
    --to=ed.bartosh@linux.intel.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=richard.purdie@linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox