aboutsummaryrefslogtreecommitdiff
path: root/unit-tests.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2016-11-10 09:48:45 -0500
committerRob Austein <sra@hactrn.net>2016-11-10 09:48:45 -0500
commit1f78f1bad3ab08706df3030936275b6114f31e24 (patch)
tree005403ee09ad1dac1ca8c8d33385a86b93a05584 /unit-tests.py
parent09a065bb67bf055da0417a6c972c11ba5ab13da0 (diff)
First cut at ks_flash support for attribute get/set/delete API.
Passes minimal unit-testing and the same minimal tests report that it does deliver the desired performance speed-up. More testing and much cleanup still needed. Attribute API not quite stable yet, we're probably going to want to remove all the singleton attribute operations from the RPC protocol, and it turns out that ks_delete_attributes() has enough code in common with ks_set_attributes() that it makes more sense to handle the former as a special case of the latter.
Diffstat (limited to 'unit-tests.py')
-rw-r--r--unit-tests.py40
1 files changed, 32 insertions, 8 deletions
diff --git a/unit-tests.py b/unit-tests.py
index 43b56ba..3d79da9 100644
--- a/unit-tests.py
+++ b/unit-tests.py
@@ -701,18 +701,30 @@ class TestPKeyAttributeReadSpeedToken(TestCaseLoggedIn):
der = PreloadedKey.db[HAL_KEY_TYPE_EC_PRIVATE, HAL_CURVE_P256].der
self.k = hsm.pkey_load(HAL_KEY_TYPE_EC_PRIVATE, HAL_CURVE_P256, der, HAL_KEY_FLAG_TOKEN)
self.addCleanup(self.k.delete)
- for i in xrange(12):
- self.k.set_attribute(i, "Attribute {}".format(i))
+ if False:
+ for i in xrange(12):
+ self.k.set_attribute(i, "Attribute {}".format(i))
+ else:
+ self.k.set_attributes(dict((i, "Attribute {}".format(i))
+ for i in xrange(12)))
super(TestPKeyAttributeReadSpeedToken, self).setUp()
+ def verify_attributes(self, n_attrs, attributes):
+ expected = dict((i, "Attribute {}".format(i))
+ for i in xrange(n_attrs))
+ self.assertEqual(attributes, expected)
+
def get_attributes_single(self, n_attrs):
pinwheel = Pinwheel()
+ attributes = {}
for i in xrange(n_attrs):
pinwheel()
- self.k.get_attribute(i)
+ attributes[i] = self.k.get_attribute(i)
+ self.verify_attributes(n_attrs, attributes)
def get_attributes_bulk(self, n_attrs):
- self.k.get_attributes(range(n_attrs))
+ attributes = self.k.get_attributes(range(n_attrs))
+ self.verify_attributes(n_attrs, attributes)
def test_get_1_attribute_single(self):
self.get_attributes_single(1)
@@ -741,18 +753,30 @@ class TestPKeyAttributeReadSpeedVolatile(TestCaseLoggedIn):
der = PreloadedKey.db[HAL_KEY_TYPE_EC_PRIVATE, HAL_CURVE_P256].der
self.k = hsm.pkey_load(HAL_KEY_TYPE_EC_PRIVATE, HAL_CURVE_P256, der, 0)
self.addCleanup(self.k.delete)
- for i in xrange(12):
- self.k.set_attribute(i, "Attribute {}".format(i))
+ if False:
+ for i in xrange(12):
+ self.k.set_attribute(i, "Attribute {}".format(i))
+ else:
+ self.k.set_attributes(dict((i, "Attribute {}".format(i))
+ for i in xrange(12)))
super(TestPKeyAttributeReadSpeedVolatile, self).setUp()
+ def verify_attributes(self, n_attrs, attributes):
+ expected = dict((i, "Attribute {}".format(i))
+ for i in xrange(n_attrs))
+ self.assertEqual(attributes, expected)
+
def get_attributes_single(self, n_attrs):
pinwheel = Pinwheel()
+ attributes = {}
for i in xrange(n_attrs):
pinwheel()
- self.k.get_attribute(i)
+ attributes[i] = self.k.get_attribute(i)
+ self.verify_attributes(n_attrs, attributes)
def get_attributes_bulk(self, n_attrs):
- self.k.get_attributes(range(n_attrs))
+ attributes = self.k.get_attributes(range(n_attrs))
+ self.verify_attributes(n_attrs, attributes)
def test_get_1_attribute_single(self):
self.get_attributes_single(1)