From: Changqing Li <changqing...@windriver.com>
Adds new unittest detecting when a patch file is added but no
corresponding
change to the SRC_URI is done.
This patch is from <daniela.plascen...@linux.intel.com>, get from commit
49201c19cfe4cadd127b112d2858d5b28db49c20, this commit is reverted by
commit
6108d97f83b211f9eb245f339a412debd0ec5db4.
The added test case is ok, reason of series 9949 patchtest failed is:
recipe weston have REQUIRED_DISTRO_FEATURES, so parse recipe skipped,
cause self.modified is none, actually .bb is mofified, so make the
testcase failed.
during patchtest, we don't really need DISTRO_FEATURES, so fix the
problem
by set REQUIRED_DISTRO_FEATURES to "" in repo patchtest, meantime,
add this
testcase back.
[Yocto #13005]
Signed-off-by: Changqing Li <changqing...@windriver.com>
---
tests/test_metadata_src_uri.py | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/tests/test_metadata_src_uri.py
b/tests/test_metadata_src_uri.py
index a4c5caa..f684ced 100644
--- a/tests/test_metadata_src_uri.py
+++ b/tests/test_metadata_src_uri.py
@@ -85,3 +85,28 @@ class SrcUri(base.Metadata):
'Amend the patch containing the
software patch file removal',
data=[('Patch', f) for f in
not_removed])
+ def test_src_uri_path_not_updated(self):
+ new_patches = set()
+ for patch in self.patchset:
+ if patch.is_added_file and patch.path.endswith('.patch'):
+ new_patches.add(os.path.basename(patch.path))
+
+ if not new_patches:
+ self.skip('No new patches added, skipping test')
+
+ if not self.modified:
+ self.fail('New patch path missing in SRC_URI',
+ "Add the patch path to the recipe's SRC_URI",
+ data=[('New patch(es)',
'\n'.join(new_patches))])
+
+ for pn in self.modified:
+ rd = self.tinfoil.parse_recipe(pn)
+
+ patchtestdata.PatchTestDataStore['%s-%s-%s' %
(self.shortid(), self.metadata, pn)] = rd.getVar(self.metadata)
+ test_src_uri =
patchtestdata.PatchTestDataStore['%s-%s-%s' % (self.shortid(),
self.metadata, pn)].split()
+ test_files = set([os.path.basename(patch) for patch
in test_src_uri if patch.startswith('file://')])
+
+ if not test_files.issuperset(new_patches):
+ self.fail('New patch path missing in SRC_URI',
+ "Add the patch path in the recipe's SRC_URI",
+ data=[('New patch(es)', p) for p in
new_patches.difference(test_files)])