summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2016-07-21 16:28:45 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-26 08:56:31 +0100
commit5218c24c8be78760bafcaf29969f73fe3e2f5d01 (patch)
tree3276b958e92e10042a52be57feb0101e32935d03 /meta/lib
parentab075b6fb859fbbda29c5b921a1fe2e1beb01379 (diff)
downloadpoky-5218c24c8be78760bafcaf29969f73fe3e2f5d01.tar.gz
oeqa/selftest/signing: use a temporary directory for GPG home
Instead of using a directory in the layer as the GPG home and carefully deleting the right files from it, use tempfile to create a temporary directory which will be cleaned up for us. Also change the public/secret key variables to be absolute paths as they're always used as absolute paths. (From OE-Core rev: d4a5b5d11c6d7d5aba5f2eb88db091c1b98ef87c) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oeqa/selftest/signing.py32
1 files changed, 10 insertions, 22 deletions
diff --git a/meta/lib/oeqa/selftest/signing.py b/meta/lib/oeqa/selftest/signing.py
index 1babca07df..beafd63794 100644
--- a/meta/lib/oeqa/selftest/signing.py
+++ b/meta/lib/oeqa/selftest/signing.py
@@ -12,30 +12,18 @@ from oeqa.utils.ftools import write_file
12class Signing(oeSelfTest): 12class Signing(oeSelfTest):
13 13
14 gpg_dir = "" 14 gpg_dir = ""
15 pub_key_name = 'key.pub' 15 pub_key_path = ""
16 secret_key_name = 'key.secret' 16 secret_key_path = ""
17 17
18 @classmethod 18 @classmethod
19 def setUpClass(cls): 19 def setUpClass(cls):
20 # Import the gpg keys 20 cls.gpg_home_dir = tempfile.TemporaryDirectory(prefix="oeqa-signing-")
21 cls.gpg_dir = cls.gpg_home_dir.name
21 22
22 cls.gpg_dir = os.path.join(cls.testlayer_path, 'files/signing/') 23 cls.pub_key_path = os.path.join(cls.testlayer_path, 'files', 'signing', "key.pub")
24 cls.secret_key_path = os.path.join(cls.testlayer_path, 'files', 'signing', "key.secret")
23 25
24 # key.secret key.pub are located in gpg_dir 26 runCmd('gpg --homedir %s --import %s %s' % (cls.gpg_dir, cls.pub_key_path, cls.secret_key_path))
25 pub_key_location = cls.gpg_dir + cls.pub_key_name
26 secret_key_location = cls.gpg_dir + cls.secret_key_name
27 runCmd('gpg --homedir %s --import %s %s' % (cls.gpg_dir, pub_key_location, secret_key_location))
28
29 @classmethod
30 def tearDownClass(cls):
31 # Delete the files generated by 'gpg --import'
32
33 gpg_files = glob.glob(cls.gpg_dir + '*.gpg*')
34 random_seed_file = cls.gpg_dir + 'random_seed'
35 gpg_files.append(random_seed_file)
36
37 for gpg_file in gpg_files:
38 runCmd('rm -f ' + gpg_file)
39 27
40 @testcase(1362) 28 @testcase(1362)
41 def test_signing_packages(self): 29 def test_signing_packages(self):
@@ -57,7 +45,7 @@ class Signing(oeSelfTest):
57 feature = 'INHERIT += "sign_rpm"\n' 45 feature = 'INHERIT += "sign_rpm"\n'
58 feature += 'RPM_GPG_PASSPHRASE = "test123"\n' 46 feature += 'RPM_GPG_PASSPHRASE = "test123"\n'
59 feature += 'RPM_GPG_NAME = "testuser"\n' 47 feature += 'RPM_GPG_NAME = "testuser"\n'
60 feature += 'RPM_GPG_PUBKEY = "%s%s"\n' % (self.gpg_dir, self.pub_key_name) 48 feature += 'RPM_GPG_PUBKEY = "%s"\n' % self.pub_key_path
61 feature += 'GPG_PATH = "%s"\n' % self.gpg_dir 49 feature += 'GPG_PATH = "%s"\n' % self.gpg_dir
62 50
63 self.write_config(feature) 51 self.write_config(feature)
@@ -81,8 +69,8 @@ class Signing(oeSelfTest):
81 # Use a temporary rpmdb 69 # Use a temporary rpmdb
82 rpmdb = tempfile.mkdtemp(prefix='oeqa-rpmdb') 70 rpmdb = tempfile.mkdtemp(prefix='oeqa-rpmdb')
83 71
84 runCmd('%s/rpm --define "_dbpath %s" --import %s%s' % 72 runCmd('%s/rpm --define "_dbpath %s" --import %s' %
85 (staging_bindir_native, rpmdb, self.gpg_dir, self.pub_key_name)) 73 (staging_bindir_native, rpmdb, self.pub_key_path))
86 74
87 ret = runCmd('%s/rpm --define "_dbpath %s" --checksig %s' % 75 ret = runCmd('%s/rpm --define "_dbpath %s" --checksig %s' %
88 (staging_bindir_native, rpmdb, pkg_deploy)) 76 (staging_bindir_native, rpmdb, pkg_deploy))