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]] -=-=-=-=-=-=-=-=-=-=-=-
