[PATCH 2/3] uefirtauthvar: dependency checking for existence of test data (LP: #1434408)

Ivan Hu ivan.hu at canonical.com
Fri Mar 20 07:08:44 UTC 2015


Some subtests need the test data exist. Checking existence of the test data
and skip the subtest if not exist.

Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
 src/uefi/uefirtauthvar/uefirtauthvar.c | 42 ++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/src/uefi/uefirtauthvar/uefirtauthvar.c b/src/uefi/uefirtauthvar/uefirtauthvar.c
index d5dc53b..7c5dbf1 100644
--- a/src/uefi/uefirtauthvar/uefirtauthvar.c
+++ b/src/uefi/uefirtauthvar/uefirtauthvar.c
@@ -36,6 +36,12 @@ static int fd;
 
 #define getvar_buf_size 100
 
+#define E_AUTHVARCREATE	1
+#define E_AUTHVARAPPEND	(1 << 1)
+#define E_AUTHVARUPDATE (1 << 2)
+
+static uint8_t data_exist = 0;
+
 static EFI_GUID gtestguid = TEST_GUID;
 
 static const uint32_t attributes =
@@ -223,6 +229,8 @@ static int uefirtauthvar_test1(fwts_framework *fw)
 		}
 	}
 
+	data_exist |= E_AUTHVARCREATE;
+
 	fwts_passed(fw, "Create authenticated variable test passed.");
 
 	return FWTS_OK;
@@ -237,6 +245,11 @@ static int uefirtauthvar_test2(fwts_framework *fw)
 	long ioret;
 	uint64_t status;
 
+	if (!(data_exist & E_AUTHVARCREATE)) {
+		fwts_skipped(fw,"The test variable, AuthVarCreate, doesn't exist, skip the test.");
+		return FWTS_SKIP;
+	}
+
 	ioret = setvar(&gtestguid, attributes, sizeof(AuthVarCreate), AuthVarCreate, &status);
 
 	if (ioret == -1) {
@@ -272,6 +285,11 @@ static int uefirtauthvar_test3(fwts_framework *fw)
 	long ioret;
 	uint64_t status;
 
+	if (!(data_exist & E_AUTHVARCREATE)) {
+		fwts_skipped(fw,"The test variable, AuthVarCreate, doesn't exist, skip the test.");
+		return FWTS_SKIP;
+	}
+
 	ioret = setvar(&gtestguid, attributes, sizeof(AuthVarCreateDiff), AuthVarCreateDiff, &status);
 
 	if (ioret == -1) {
@@ -312,6 +330,11 @@ static int uefirtauthvar_test4(fwts_framework *fw)
 	size_t i;
 	uint32_t attribappend = attributes | FWTS_UEFI_VARIABLE_APPEND_WRITE;
 
+	if (!(data_exist & E_AUTHVARCREATE)) {
+		fwts_skipped(fw,"The test variable, AuthVarCreate, doesn't exist, skip the test.");
+		return FWTS_SKIP;
+	}
+
 	ioret = setvar(&gtestguid, attribappend, sizeof(AuthVarAppend), AuthVarAppend, &status);
 
 	if (ioret == -1) {
@@ -367,6 +390,8 @@ static int uefirtauthvar_test4(fwts_framework *fw)
 		}
 	}
 
+	data_exist |= E_AUTHVARAPPEND;
+
 	fwts_passed(fw, "Append authenticated variable tests passed.");
 
 	return FWTS_OK;
@@ -386,6 +411,11 @@ static int uefirtauthvar_test5(fwts_framework *fw)
 	uint32_t attributestest;
 	size_t i;
 
+	if (!(data_exist & E_AUTHVARAPPEND)) {
+		fwts_skipped(fw,"The test data, AuthVarAppend, doesn't exist, skip the test.");
+		return FWTS_SKIP;
+	}
+
 	ioret = setvar(&gtestguid, attributes, sizeof(AuthVarUpdate), AuthVarUpdate, &status);
 
 	if (ioret == -1) {
@@ -431,6 +461,8 @@ static int uefirtauthvar_test5(fwts_framework *fw)
 		}
 	}
 
+	data_exist |= E_AUTHVARUPDATE;
+
 	fwts_passed(fw, "Update authenticated variable tests passed.");
 
 	return FWTS_OK;
@@ -445,6 +477,11 @@ static int uefirtauthvar_test6(fwts_framework *fw)
 	long ioret;
 	uint64_t status;
 
+	if (!(data_exist & E_AUTHVARUPDATE)) {
+		fwts_skipped(fw,"The test variable, AuthVarUpdate, doesn't exist, skip the test.");
+		return FWTS_SKIP;
+	}
+
 	ioret = setvar(&gtestguid, attributes, sizeof(AuthVarCreate), AuthVarCreate, &status);
 
 	if (ioret == -1) {
@@ -483,6 +520,11 @@ static int uefirtauthvar_test7(fwts_framework *fw)
 	uint64_t status;
 	uint32_t attributestest;
 
+	if (!(data_exist & E_AUTHVARCREATE)) {
+		fwts_skipped(fw,"The test data, AuthVarCreate, doesn't exist, skip the test.");
+		return FWTS_SKIP;
+	}
+
 	ioret = setvar(&gtestguid, attributes, sizeof(AuthVarDel), AuthVarDel, &status);
 
 	if (ioret == -1) {
-- 
1.9.1




More information about the fwts-devel mailing list