On 08/26/2015 11:15 AM, Aníbal Limón wrote:
Comments below.
On 26/08/15 02:43, [email protected] wrote:
From: Leonardo Sandoval <[email protected]>
Basic tests for the devtool's upgrade feature, including:
* Parameter check
* Upgrading a real recipe (e2fsprogrs) without patching and
checing its output
* Devtool status after upgrade
Signed-off-by: Leonardo Sandoval
<[email protected]>
---
meta/lib/oeqa/selftest/devtool.py | 36
++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/meta/lib/oeqa/selftest/devtool.py
b/meta/lib/oeqa/selftest/devtool.py
index b59db15..f72e010 100644
--- a/meta/lib/oeqa/selftest/devtool.py
+++ b/meta/lib/oeqa/selftest/devtool.py
@@ -857,3 +857,39 @@ class DevtoolTests(DevtoolBase):
result = runCmd('devtool undeploy-target -c %s root@%s'
% (testrecipe, qemu.ip))
result = runCmd('ssh %s root@%s %s' % (sshargs, qemu.ip,
testcommand), ignore_status=True)
self.assertNotEqual(result, 0, 'undeploy-target did not
remove command as it should have')
+
+ def test_devtool_upgrade(self):
+ # Check preconditions
+ workspacedir = os.path.join(self.builddir, 'workspace')
+ self.assertTrue(not os.path.exists(workspacedir), 'This test
cannot be run with a workspace directory under the build directory')
+ # Check parameters
+ result = runCmd('devtool upgrade -h')
+ for param in 'recipename srctree --version -V --branch -b
--keep-temp --no-patch'.split():
+ self.assertIn(param, result.output)
+ # For the moment, we are using a real recipe.
+ recipe='e2fsprogs'
+ version='1.42.13'
Isn't a guarantee that this version will be newer ever (i.e. if someone
upgrade e2fsprogs to 1.42.13) what happen in this case?
Good question. In fact, the code will fail just in case current and
upgrade version are the same. The tool can also do downgrades, so at the
end it does not matter what the version is. I will correct this point
and send a v3.
As mentioned by Paul in a previous message, we need 'upgradable' recipes
which whenever the test is done, it can be upgrade. The only point here
is that we need a tarball somewhere, so the URL is always live. Not sure
if poky repository is a good place for the latter, any suggestion?
+ tempdir = tempfile.mkdtemp(prefix='devtoolqa')
+ # Check that recipe is not already under devtool control
+ result = runCmd('devtool status')
+ self.assertNotIn(recipe, result.output)
+ # Check upgrade. Code does not check if new PV is older or
newer that current PV, so, it may be that
+ # we are downgrading instead of upgrading.
+ result = runCmd('devtool upgrade %s %s -V %s --no-patch' %
(recipe, tempdir, version))
+ # Check if srctree at least is populated
+ self.assertTrue(len(os.listdir(tempdir)) > 0, 'scrtree (%s)
should be populated with new (%s) source code' % (tempdir, version))
+ # Check new recipe folder is present
+
self.assertTrue(os.path.exists(os.path.join(workspacedir,'recipes',recipe)),
'Recipe folder should exist')
+ # Check new recipe file is present
+
self.assertTrue(os.path.exists(os.path.join(workspacedir,'recipes',recipe,"%s_%s.bb"
% (recipe,version))), 'Recipe folder should exist')
+ # Check devtool status and make sure recipe is present
+ result = runCmd('devtool status')
+ self.assertIn(recipe, result.output)
+ self.assertIn(tempdir, result.output)
+ # Check devtool reset recipe
+ result = runCmd('devtool reset %s -n' % recipe)
+ result = runCmd('devtool status')
+ self.assertNotIn(recipe, result.output)
+ self.track_for_cleanup(tempdir)
+ self.track_for_cleanup(workspacedir)
+ self.add_command_to_tearDown('bitbake-layers remove-layer
*/workspace')
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core