[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
Mon May 27 18:00:22 PDT 2019


ping

On 4/29/19 2:10 PM, Changqing Li wrote:
> 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