diff options
Diffstat (limited to 'meta/lib/oeqa/selftest/context.py')
-rw-r--r-- | meta/lib/oeqa/selftest/context.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/meta/lib/oeqa/selftest/context.py b/meta/lib/oeqa/selftest/context.py index 99186175e5..16f82c6737 100644 --- a/meta/lib/oeqa/selftest/context.py +++ b/meta/lib/oeqa/selftest/context.py | |||
@@ -102,6 +102,13 @@ class OESelftestTestContext(OETestContext): | |||
102 | oe.path.copytree(builddir + "/cache", newbuilddir + "/cache") | 102 | oe.path.copytree(builddir + "/cache", newbuilddir + "/cache") |
103 | oe.path.copytree(selftestdir, newselftestdir) | 103 | oe.path.copytree(selftestdir, newselftestdir) |
104 | 104 | ||
105 | # if the last line of local.conf in newbuilddir is not empty and does not end with newline then add one | ||
106 | localconf_path = newbuilddir + "/conf/local.conf" | ||
107 | with open(localconf_path, "r+", encoding="utf-8") as f: | ||
108 | last_line = f.readlines()[-1] | ||
109 | if last_line and not last_line.endswith("\n"): | ||
110 | f.write("\n") | ||
111 | |||
105 | subprocess.check_output("git init && git add * && git commit -a -m 'initial'", cwd=newselftestdir, shell=True) | 112 | subprocess.check_output("git init && git add * && git commit -a -m 'initial'", cwd=newselftestdir, shell=True) |
106 | 113 | ||
107 | # Tried to used bitbake-layers add/remove but it requires recipe parsing and hence is too slow | 114 | # Tried to used bitbake-layers add/remove but it requires recipe parsing and hence is too slow |
@@ -114,11 +121,15 @@ class OESelftestTestContext(OETestContext): | |||
114 | bblayers_abspath = [os.path.abspath(path) for path in bblayers.split()] | 121 | bblayers_abspath = [os.path.abspath(path) for path in bblayers.split()] |
115 | with open("%s/conf/bblayers.conf" % newbuilddir, "a") as f: | 122 | with open("%s/conf/bblayers.conf" % newbuilddir, "a") as f: |
116 | newbblayers = "# new bblayers to be used by selftest in the new build dir '%s'\n" % newbuilddir | 123 | newbblayers = "# new bblayers to be used by selftest in the new build dir '%s'\n" % newbuilddir |
124 | newbblayers += 'unset BBLAYERS\n' | ||
117 | newbblayers += 'BBLAYERS = "%s"\n' % ' '.join(bblayers_abspath) | 125 | newbblayers += 'BBLAYERS = "%s"\n' % ' '.join(bblayers_abspath) |
118 | f.write(newbblayers) | 126 | f.write(newbblayers) |
119 | 127 | ||
128 | # Rewrite builddir paths seen in environment variables | ||
120 | for e in os.environ: | 129 | for e in os.environ: |
121 | if builddir + "/" in os.environ[e]: | 130 | # Rewrite paths that absolutely point inside builddir |
131 | # (e.g $builddir/conf/ would be rewritten but not $builddir/../bitbake/) | ||
132 | if builddir + "/" in os.environ[e] and builddir + "/" in os.path.abspath(os.environ[e]): | ||
122 | os.environ[e] = os.environ[e].replace(builddir + "/", newbuilddir + "/") | 133 | os.environ[e] = os.environ[e].replace(builddir + "/", newbuilddir + "/") |
123 | if os.environ[e].endswith(builddir): | 134 | if os.environ[e].endswith(builddir): |
124 | os.environ[e] = os.environ[e].replace(builddir, newbuilddir) | 135 | os.environ[e] = os.environ[e].replace(builddir, newbuilddir) |