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

Reply via email to