diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-07-02 19:46:07 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-07-03 11:38:24 +0100 |
commit | e855b384f37e0d781a80fcd65daa23b676e4efac (patch) | |
tree | 6e0a6de7ba8c1d94bd9f74c68a648a03c31108a9 | |
parent | c9c9913cf6bcadca941126c558f5a0790415b389 (diff) | |
download | poky-e855b384f37e0d781a80fcd65daa23b676e4efac.tar.gz |
oeqa/selftest: recipetool/devtool: Avoid load_plugin test race
This bug has plagued the autobuilder for a couple of years and we've
struggled to reproduce/debug it.
The problem is the "lib" directory in meta-poky used during the load_plugin
tests for recipetool and devtool can race and one can delete the files
from the other leading to test failures.
Deleting the lib directory only if empty will avoid this.
[YOCTO #13070]
(From OE-Core rev: d603e2fd589e1edbc67c8c2fefb6337e728b9d01)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/lib/oeqa/selftest/cases/devtool.py | 6 | ||||
-rw-r--r-- | meta/lib/oeqa/selftest/cases/recipetool.py | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/meta/lib/oeqa/selftest/cases/devtool.py b/meta/lib/oeqa/selftest/cases/devtool.py index 7d8f895045..b383ed9c50 100644 --- a/meta/lib/oeqa/selftest/cases/devtool.py +++ b/meta/lib/oeqa/selftest/cases/devtool.py | |||
@@ -1500,7 +1500,11 @@ class DevtoolUpgradeTests(DevtoolBase): | |||
1500 | dstdir = os.path.join(dstdir, p) | 1500 | dstdir = os.path.join(dstdir, p) |
1501 | if not os.path.exists(dstdir): | 1501 | if not os.path.exists(dstdir): |
1502 | os.makedirs(dstdir) | 1502 | os.makedirs(dstdir) |
1503 | self.track_for_cleanup(dstdir) | 1503 | if p == "lib": |
1504 | # Can race with other tests | ||
1505 | self.add_command_to_tearDown('rmdir --ignore-fail-on-non-empty %s' % dstdir) | ||
1506 | else: | ||
1507 | self.track_for_cleanup(dstdir) | ||
1504 | dstfile = os.path.join(dstdir, os.path.basename(srcfile)) | 1508 | dstfile = os.path.join(dstdir, os.path.basename(srcfile)) |
1505 | if srcfile != dstfile: | 1509 | if srcfile != dstfile: |
1506 | shutil.copy(srcfile, dstfile) | 1510 | shutil.copy(srcfile, dstfile) |
diff --git a/meta/lib/oeqa/selftest/cases/recipetool.py b/meta/lib/oeqa/selftest/cases/recipetool.py index 6bfe8f177f..c2ade2543a 100644 --- a/meta/lib/oeqa/selftest/cases/recipetool.py +++ b/meta/lib/oeqa/selftest/cases/recipetool.py | |||
@@ -534,7 +534,11 @@ class RecipetoolTests(RecipetoolBase): | |||
534 | dstdir = os.path.join(dstdir, p) | 534 | dstdir = os.path.join(dstdir, p) |
535 | if not os.path.exists(dstdir): | 535 | if not os.path.exists(dstdir): |
536 | os.makedirs(dstdir) | 536 | os.makedirs(dstdir) |
537 | self.track_for_cleanup(dstdir) | 537 | if p == "lib": |
538 | # Can race with other tests | ||
539 | self.add_command_to_tearDown('rmdir --ignore-fail-on-non-empty %s' % dstdir) | ||
540 | else: | ||
541 | self.track_for_cleanup(dstdir) | ||
538 | dstfile = os.path.join(dstdir, os.path.basename(srcfile)) | 542 | dstfile = os.path.join(dstdir, os.path.basename(srcfile)) |
539 | if srcfile != dstfile: | 543 | if srcfile != dstfile: |
540 | shutil.copy(srcfile, dstfile) | 544 | shutil.copy(srcfile, dstfile) |