Thanks, I think this is good.

Alex

On Tue, 14 Jul 2026 at 05:20, Babanpreet Singh <[email protected]> wrote:
>
> Adjust test_devtool_add_fetch_git() so that the recipe it creates with
> SRCREV = "${AUTOREV}" is finished into a temporary layer instead of
> just being reset: check that devtool finish succeeds (before the
> previous commit srcrev mode failed with "fatal: bad revision
> 'AUTOINC'"), that the finished recipe still uses SRCREV = "${AUTOREV}",
> and that no spurious patch files are generated. The reset it replaces
> is covered by many other devtool tests.
>
> srcrev mode is forced with --mode srcrev: update-mode guessing only
> considers git:// URLs, so for this gitsm:// recipe auto mode would
> select patch mode and never reach the code path being tested.
>
> [YOCTO #16354]
>
> Cc: Alexander Kanavin <[email protected]>
> AI-Generated: Uses Claude (claude-sonnet-5)
> Signed-off-by: Babanpreet Singh <[email protected]>
> ---
> changes in v2:
> - extend the existing test_devtool_add_fetch_git() instead of
>   adding a new test (Alexander Kanavin)
> - force --mode srcrev in the test: update-mode guessing never
>   selects srcrev for the gitsm:// URL used there (verified the
>   adjusted test passes with the fix reverted if the mode is not
>   forced, i.e. it would not catch the bug)
>  meta/lib/oeqa/selftest/cases/devtool.py | 21 ++++++++++++++++++++-
>  1 file changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/meta/lib/oeqa/selftest/cases/devtool.py 
> b/meta/lib/oeqa/selftest/cases/devtool.py
> index b2cd13e9a5..51f9d6f8b7 100644
> --- a/meta/lib/oeqa/selftest/cases/devtool.py
> +++ b/meta/lib/oeqa/selftest/cases/devtool.py
> @@ -613,8 +613,27 @@ class DevtoolAddTests(DevtoolBase):
>          checkvars['SRC_URI'] = url_branch
>          checkvars['SRCREV'] = '${AUTOREV}'
>          self._test_recipe_contents(recipefile, checkvars, [])
> +        # Finish into a temporary layer instead of resetting; srcrev mode
> +        # used to fail with "fatal: bad revision 'AUTOINC'" because the
> +        # unresolved AUTOREV placeholder was used as the git revision to
> +        # export patches from [YOCTO #16354]. srcrev mode has to be forced
> +        # because update-mode guessing never selects it for gitsm:// URLs.
> +        templayerdir = tempfile.mkdtemp(prefix='devtoolqa')
> +        self.track_for_cleanup(templayerdir)
> +        self._create_temp_layer(templayerdir, False, 'selftestautorev')
> +        result = runCmd('devtool finish --mode srcrev %s %s' % (testrecipe, 
> templayerdir))
> +        result = runCmd('devtool status')
> +        self.assertNotIn(testrecipe, result.output, 'Recipe should have been 
> removed from workspace by devtool finish')
> +        newrecipefiles = glob.glob(os.path.join(templayerdir, 'recipes-*', 
> testrecipe, '%s_git.bb' % testrecipe))
> +        self.assertEqual(len(newrecipefiles), 1, 'Recipe not moved into 
> destination layer by devtool finish')
> +        # The finished recipe should still use a floating revision and no
> +        # patch files should have been created
> +        checkvars = {}
> +        checkvars['SRCREV'] = '${AUTOREV}'
> +        self._test_recipe_contents(newrecipefiles[0], checkvars, [])
> +        patchfiles = glob.glob(os.path.join(templayerdir, 'recipes-*', 
> testrecipe, '*', '*.patch'))
> +        self.assertEqual(patchfiles, [], 'Unexpected patch files generated 
> by devtool finish')
>          # Try with revision and version specified
> -        result = runCmd('devtool reset -n %s' % testrecipe)
>          shutil.rmtree(srcdir)
>          url_rev = '%s;rev=%s' % (url, checkrev)
>          result = runCmd('devtool add %s %s -f "%s" -V 1.5' % (testrecipe, 
> srcdir, url_rev))
> --
> 2.43.0
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#240872): 
https://lists.openembedded.org/g/openembedded-core/message/240872
Mute This Topic: https://lists.openembedded.org/mt/120261443/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to