oeqa/selftest/signing: use temporary rpmdb

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"

(From OE-Core rev: e2ddf409f405ab570ea7f6ed87180789b3a54607)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Markus Lehtonen 2016-01-20 15:08:41 +02:00 committed by Richard Purdie
parent 65c1de9763
commit a84058826d
1 changed files with 10 additions and 2 deletions

View 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):