[yocto] [patchtest-oe][PATCH] test_metadata_src_uri: new unittest detecting added patch files without modifying SRC_URI
Changqing Li
changqing.li at windriver.com
Sun Apr 28 23:10:56 PDT 2019
ping
On 3/5/19 5:59 PM, changqing.li at windriver.com wrote:
> From: Changqing Li <changqing.li at 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.plascencia at 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.li at 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)])
--
BRs
Sandy(Li Changqing)
More information about the yocto
mailing list