summaryrefslogtreecommitdiff
path: root/tests/vb2_secdata_tests.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/vb2_secdata_tests.c')
-rw-r--r--tests/vb2_secdata_tests.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/tests/vb2_secdata_tests.c b/tests/vb2_secdata_tests.c
index 51283317..ca2a1ec9 100644
--- a/tests/vb2_secdata_tests.c
+++ b/tests/vb2_secdata_tests.c
@@ -15,6 +15,7 @@
#include "2common.h"
#include "2api.h"
+#include "2misc.h"
#include "2secdata.h"
static void test_changed(struct vb2_context *ctx, int changed, const char *why)
@@ -35,7 +36,6 @@ static void secdata_test(void)
.workbuf = workbuf,
.workbuf_size = sizeof(workbuf),
};
- struct vb2_secdata *s = (struct vb2_secdata *)c.secdata;
uint32_t v = 1;
/* Blank data is invalid */
@@ -58,12 +58,6 @@ static void secdata_test(void)
TEST_EQ(vb2_secdata_init(&c),
VB2_ERROR_SECDATA_CRC, "Init invalid CRC");
- /* Version 1 didn't have a CRC, so init should reject it */
- vb2_secdata_create(&c);
- s->struct_version = 1;
- TEST_EQ(vb2_secdata_init(&c),
- VB2_ERROR_SECDATA_VERSION, "Init old version");
-
vb2_secdata_create(&c);
c.flags = 0;
@@ -101,6 +95,15 @@ static void secdata_test(void)
TEST_EQ(vb2_secdata_set(&c, -1, 456),
VB2_ERROR_SECDATA_SET_PARAM, "Set invalid");
test_changed(&c, 0, "Set invalid field doesn't change data");
+
+ /* Read/write uninitialized data fails */
+ vb2_get_sd(&c)->status &= ~VB2_SD_STATUS_SECDATA_INIT;
+ TEST_EQ(vb2_secdata_get(&c, VB2_SECDATA_VERSIONS, &v),
+ VB2_ERROR_SECDATA_GET_UNINITIALIZED, "Get uninitialized");
+ test_changed(&c, 0, "Get uninitialized doesn't change data");
+ TEST_EQ(vb2_secdata_set(&c, VB2_SECDATA_VERSIONS, 0x123456ff),
+ VB2_ERROR_SECDATA_SET_UNINITIALIZED, "Set uninitialized");
+ test_changed(&c, 0, "Set uninitialized doesn't change data");
}
int main(int argc, char* argv[])