From 5ae14523a72d854c41c234969a9221b078719a21 Mon Sep 17 00:00:00 2001 From: Chen Qi Date: Mon, 22 Jan 2024 13:29:26 +0800 Subject: oeqa/selftest: add test case to cover 'devtool modify -n' for a git recipe Add a test case to ensure the following error does not happen again for 'devtool modify -n'. Traceback (most recent call last): File "/buildarea2/chenqi/poky/scripts/devtool", line 349, in ret = main() File "/buildarea2/chenqi/poky/scripts/devtool", line 336, in main ret = args.func(args, config, basepath, workspace) File "/buildarea2/chenqi/poky/scripts/lib/devtool/standard.py", line 924, in modify if not initial_revs["."]: KeyError: '.' (From OE-Core rev: 2c2ba5f9497462a190b849a69d8440149f80582a) Signed-off-by: Chen Qi Signed-off-by: Richard Purdie --- meta/lib/oeqa/selftest/cases/devtool.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'meta/lib/oeqa/selftest/cases') diff --git a/meta/lib/oeqa/selftest/cases/devtool.py b/meta/lib/oeqa/selftest/cases/devtool.py index 6ed51d7a45..15249b70fd 100644 --- a/meta/lib/oeqa/selftest/cases/devtool.py +++ b/meta/lib/oeqa/selftest/cases/devtool.py @@ -917,6 +917,28 @@ class DevtoolModifyTests(DevtoolBase): # Try building bitbake(testrecipe) + def test_devtool_modify_git_no_extract(self): + # Check preconditions + testrecipe = 'psplash' + src_uri = get_bb_var('SRC_URI', testrecipe) + self.assertIn('git://', src_uri, 'This test expects the %s recipe to be a git recipe' % testrecipe) + # Clean up anything in the workdir/sysroot/sstate cache + bitbake('%s -c cleansstate' % testrecipe) + # Try modifying a recipe + tempdir = tempfile.mkdtemp(prefix='devtoolqa') + self.track_for_cleanup(tempdir) + self.track_for_cleanup(self.workspacedir) + self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') + result = runCmd('git clone https://git.yoctoproject.org/psplash %s && devtool modify -n %s %s' % (tempdir, testrecipe, tempdir)) + self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created. devtool output: %s' % result.output) + matches = glob.glob(os.path.join(self.workspacedir, 'appends', 'psplash_*.bbappend')) + self.assertTrue(matches, 'bbappend not created') + # Test devtool status + result = runCmd('devtool status') + self.assertIn(testrecipe, result.output) + self.assertIn(tempdir, result.output) + def test_devtool_modify_git_crates_subpath(self): # This tests two things in devtool context: # - that we support local git dependencies for cargo based recipe -- cgit v1.2.3-54-g00ecf