[PATCH 4/4] uefirtvariable: add stress test for UEFI runtime interface SetVariable with different name and data

Ivan Hu ivan.hu at canonical.com
Fri Jan 4 09:06:23 UTC 2013


This stress test tests the UEFI runtime interface SetVariable by
calling with different name and data multiple times.

This combine test do a lot of setvariable, reduce variablenamelength
and multitesttime, for saving the setvariable times to avoid running
out of nvram space and getting the EFI_OUT_OF_RESOURCES.

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

diff --git a/src/uefi/uefirtvariable/uefirtvariable.c b/src/uefi/uefirtvariable/uefirtvariable.c
index d2927d0..6cbb449 100644
--- a/src/uefi/uefirtvariable/uefirtvariable.c
+++ b/src/uefi/uefirtvariable/uefirtvariable.c
@@ -906,7 +906,7 @@ static int uefirtvariable_test6(fwts_framework *fw)
 	uint32_t multitesttime = 40;
 	uint64_t datasize = 10;
 	uint8_t datadiff = 0;
-	uint32_t i;
+	uint32_t i, j;
 	uint8_t variablenamelength = 32;
 	uint16_t variablenametest4[variablenamelength+1];
 
@@ -949,6 +949,27 @@ static int uefirtvariable_test6(fwts_framework *fw)
 	}
 	fwts_passed(fw, "Testing SetVariable on setting the variable with different name multiple times passed.");
 
+	fwts_log_info(fw, "Testing SetVariable on setting the variable with different name and data multiple times.");
+
+	/* This combine test do a lot of setvariable, reduce variablenamelength and multitesttime, for saving the setvariable
+	   times to avoid running out of nvram space and getting the EFI_OUT_OF_RESOURCES */
+	variablenamelength /= 4;
+	multitesttime /= 4;
+
+	for (i = 0; i < variablenamelength; i++) {
+		variablenametest4[i] = 'a';
+		variablenametest4[i+1] = '\0';
+		for (j = 0; j < multitesttime; j++) {
+			if (setvariable_insertvariable(fw, attributes, datasize+j, variablenametest4,
+								&gtestguid1, datadiff) == FWTS_ERROR)
+				return FWTS_ERROR;
+			if (setvariable_insertvariable(fw, attributes, 0, variablenametest4,
+								&gtestguid1, datadiff) == FWTS_ERROR)
+				return FWTS_ERROR;
+		}
+	}
+	fwts_passed(fw, "Testing SetVariable on setting the variable with different name and data multiple times passed.");
+
 	return FWTS_OK;
 }
 
-- 
1.7.9.5




More information about the fwts-devel mailing list