]> code.ossystems Code Review - openembedded-core.git/commitdiff
oeqa/selftest/signing: use temporary rpmdb
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Wed, 20 Jan 2016 13:08:41 +0000 (15:08 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 22 Jan 2016 23:42:36 +0000 (23:42 +0000)
Use temporary rpmdb when importing gpg public key and checking rpm
signature. This patch should fix a problem where test_signing_packages()
sometimes fails with
"pmdb: BDB1540 configured environment flags incompatible with existing
 environment"

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/lib/oeqa/selftest/signing.py

index c33662b25339a76565a242205773b5be52c53113..c402e3709a6027e039aec9f639124d41c5a1e0dc 100644 (file)
@@ -3,6 +3,8 @@ from oeqa.utils.commands import runCmd, bitbake, get_bb_var
 import os
 import glob
 import re
+import shutil
+import tempfile
 from oeqa.utils.decorators import testcase
 
 
@@ -69,11 +71,17 @@ class Signing(oeSelfTest):
 
         pkg_deploy = os.path.join(deploy_dir_rpm, package_arch, '.'.join((pf, package_arch, 'rpm')))
 
-        runCmd('%s/rpm --import %s%s' % (staging_bindir_native, self.gpg_dir, self.pub_key_name))
+        # Use a temporary rpmdb
+        rpmdb = tempfile.mkdtemp(prefix='oeqa-rpmdb')
 
-        ret = runCmd('%s/rpm --checksig %s' % (staging_bindir_native, pkg_deploy))
+        runCmd('%s/rpm --define "_dbpath %s" --import %s%s' %
+               (staging_bindir_native, rpmdb, self.gpg_dir, self.pub_key_name))
+
+        ret = runCmd('%s/rpm --define "_dbpath %s" --checksig %s' %
+                     (staging_bindir_native, rpmdb, pkg_deploy))
         # tmp/deploy/rpm/i586/ed-1.9-r0.i586.rpm: rsa sha1 md5 OK
         self.assertIn('rsa sha1 md5 OK', ret.output, 'Package signed incorrectly.')
+        shutil.rmtree(rpmdb)
 
     @testcase(1382)
     def test_signing_sstate_archive(self):