\r
#include <Protocol/VariableLock.h>\r
\r
-#define UNIT_TEST_NAME "VarPol/VarLock Shim Unit Test"\r
-#define UNIT_TEST_VERSION "1.0"\r
+#define UNIT_TEST_NAME "VarPol/VarLock Shim Unit Test"\r
+#define UNIT_TEST_VERSION "1.0"\r
\r
-///=== CODE UNDER TEST ===========================================================================\r
+/// === CODE UNDER TEST ===========================================================================\r
\r
EFI_STATUS\r
EFIAPI\r
IN EFI_GUID *VendorGuid\r
);\r
\r
-///=== TEST DATA ==================================================================================\r
+/// === TEST DATA ==================================================================================\r
\r
//\r
// Test GUID 1 {F955BA2D-4A2C-480C-BFD1-3CC522610592}\r
//\r
EFI_GUID mTestGuid1 = {\r
- 0xf955ba2d, 0x4a2c, 0x480c, {0xbf, 0xd1, 0x3c, 0xc5, 0x22, 0x61, 0x5, 0x92}\r
+ 0xf955ba2d, 0x4a2c, 0x480c, { 0xbf, 0xd1, 0x3c, 0xc5, 0x22, 0x61, 0x5, 0x92 }\r
};\r
\r
//\r
// Test GUID 2 {2DEA799E-5E73-43B9-870E-C945CE82AF3A}\r
//\r
EFI_GUID mTestGuid2 = {\r
- 0x2dea799e, 0x5e73, 0x43b9, {0x87, 0xe, 0xc9, 0x45, 0xce, 0x82, 0xaf, 0x3a}\r
+ 0x2dea799e, 0x5e73, 0x43b9, { 0x87, 0xe, 0xc9, 0x45, 0xce, 0x82, 0xaf, 0x3a }\r
};\r
\r
//\r
// Test GUID 3 {698A2BFD-A616-482D-B88C-7100BD6682A9}\r
//\r
EFI_GUID mTestGuid3 = {\r
- 0x698a2bfd, 0xa616, 0x482d, {0xb8, 0x8c, 0x71, 0x0, 0xbd, 0x66, 0x82, 0xa9}\r
+ 0x698a2bfd, 0xa616, 0x482d, { 0xb8, 0x8c, 0x71, 0x0, 0xbd, 0x66, 0x82, 0xa9 }\r
};\r
\r
-#define TEST_VAR_1_NAME L"TestVar1"\r
-#define TEST_VAR_2_NAME L"TestVar2"\r
-#define TEST_VAR_3_NAME L"TestVar3"\r
+#define TEST_VAR_1_NAME L"TestVar1"\r
+#define TEST_VAR_2_NAME L"TestVar2"\r
+#define TEST_VAR_3_NAME L"TestVar3"\r
\r
#define TEST_POLICY_ATTRIBUTES_NULL 0\r
#define TEST_POLICY_MIN_SIZE_NULL 0\r
#define TEST_POLICY_MAX_SIZE_NULL MAX_UINT32\r
\r
-#define TEST_POLICY_MIN_SIZE_10 10\r
-#define TEST_POLICY_MAX_SIZE_200 200\r
+#define TEST_POLICY_MIN_SIZE_10 10\r
+#define TEST_POLICY_MAX_SIZE_200 200\r
\r
-///=== HELPER FUNCTIONS ===========================================================================\r
+/// === HELPER FUNCTIONS ===========================================================================\r
\r
/**\r
Mocked version of GetVariable, for testing.\r
check_expected_ptr (VendorGuid);\r
check_expected_ptr (DataSize);\r
\r
- MockedAttr = (UINT32)mock();\r
- MockedDataSize = (UINTN)mock();\r
- MockedData = (VOID*)(UINTN)mock();\r
- MockedReturn = (EFI_STATUS)mock();\r
+ MockedAttr = (UINT32)mock ();\r
+ MockedDataSize = (UINTN)mock ();\r
+ MockedData = (VOID *)(UINTN)mock ();\r
+ MockedReturn = (EFI_STATUS)mock ();\r
\r
if (Attributes != NULL) {\r
*Attributes = MockedAttr;\r
}\r
- if (Data != NULL && !EFI_ERROR (MockedReturn)) {\r
+\r
+ if ((Data != NULL) && !EFI_ERROR (MockedReturn)) {\r
CopyMem (Data, MockedData, MockedDataSize);\r
}\r
\r
IN UNIT_TEST_CONTEXT Context\r
)\r
{\r
- DeinitVariablePolicyLib();\r
+ DeinitVariablePolicyLib ();\r
}\r
\r
-///=== TEST CASES =================================================================================\r
+/// === TEST CASES =================================================================================\r
\r
-///===== SHIM SUITE ===========================================================\r
+/// ===== SHIM SUITE ===========================================================\r
\r
/**\r
Test Case that locks a single variable using the Variable Lock Protocol.\r
UNIT_TEST_STATUS\r
EFIAPI\r
LockingAnUnlockedVariableShouldFail (\r
- IN UNIT_TEST_CONTEXT Context\r
+ IN UNIT_TEST_CONTEXT Context\r
)\r
{\r
- EFI_STATUS Status;\r
- VARIABLE_POLICY_ENTRY *NewEntry;\r
+ EFI_STATUS Status;\r
+ VARIABLE_POLICY_ENTRY *NewEntry;\r
\r
// Create a variable policy that locks the variable.\r
- Status = CreateVarStateVariablePolicy (&mTestGuid1,\r
- TEST_VAR_1_NAME,\r
- TEST_POLICY_MIN_SIZE_NULL,\r
- TEST_POLICY_MAX_SIZE_200,\r
- TEST_POLICY_ATTRIBUTES_NULL,\r
- TEST_POLICY_ATTRIBUTES_NULL,\r
- &mTestGuid2,\r
- 1,\r
- TEST_VAR_2_NAME,\r
- &NewEntry);\r
+ Status = CreateVarStateVariablePolicy (\r
+ &mTestGuid1,\r
+ TEST_VAR_1_NAME,\r
+ TEST_POLICY_MIN_SIZE_NULL,\r
+ TEST_POLICY_MAX_SIZE_200,\r
+ TEST_POLICY_ATTRIBUTES_NULL,\r
+ TEST_POLICY_ATTRIBUTES_NULL,\r
+ &mTestGuid2,\r
+ 1,\r
+ TEST_VAR_2_NAME,\r
+ &NewEntry\r
+ );\r
UT_ASSERT_NOT_EFI_ERROR (Status);\r
\r
// Register the new policy.\r
Status = RegisterVariablePolicy (NewEntry);\r
\r
- // Configure the stub to not care about parameters. We're testing errors.\r
- expect_any_always( StubGetVariableNull, VariableName );\r
- expect_any_always( StubGetVariableNull, VendorGuid );\r
- expect_any_always( StubGetVariableNull, DataSize );\r
+ // Configure the stub to not care about parameters. We're testing errors.\r
+ expect_any_always (StubGetVariableNull, VariableName);\r
+ expect_any_always (StubGetVariableNull, VendorGuid);\r
+ expect_any_always (StubGetVariableNull, DataSize);\r
\r
// With a policy, make sure that writes still work, since the variable doesn't exist.\r
- will_return( StubGetVariableNull, TEST_POLICY_ATTRIBUTES_NULL ); // Attributes\r
- will_return( StubGetVariableNull, 0 ); // Size\r
- will_return( StubGetVariableNull, (UINTN)NULL ); // DataPtr\r
- will_return( StubGetVariableNull, EFI_NOT_FOUND); // Status\r
+ will_return (StubGetVariableNull, TEST_POLICY_ATTRIBUTES_NULL); // Attributes\r
+ will_return (StubGetVariableNull, 0); // Size\r
+ will_return (StubGetVariableNull, (UINTN)NULL); // DataPtr\r
+ will_return (StubGetVariableNull, EFI_NOT_FOUND); // Status\r
\r
Status = VariableLockRequestToLock (NULL, TEST_VAR_1_NAME, &mTestGuid1);\r
UT_ASSERT_TRUE (EFI_ERROR (Status));\r
UNIT_TEST_STATUS\r
EFIAPI\r
LockingALockedVariableWithMatchingDataShouldSucceed (\r
- IN UNIT_TEST_CONTEXT Context\r
+ IN UNIT_TEST_CONTEXT Context\r
)\r
{\r
- EFI_STATUS Status;\r
- VARIABLE_POLICY_ENTRY *NewEntry;\r
- UINT8 Data;\r
+ EFI_STATUS Status;\r
+ VARIABLE_POLICY_ENTRY *NewEntry;\r
+ UINT8 Data;\r
\r
// Create a variable policy that locks the variable.\r
- Status = CreateVarStateVariablePolicy (&mTestGuid1,\r
- TEST_VAR_1_NAME,\r
- TEST_POLICY_MIN_SIZE_NULL,\r
- TEST_POLICY_MAX_SIZE_200,\r
- TEST_POLICY_ATTRIBUTES_NULL,\r
- TEST_POLICY_ATTRIBUTES_NULL,\r
- &mTestGuid2,\r
- 1,\r
- TEST_VAR_2_NAME,\r
- &NewEntry);\r
+ Status = CreateVarStateVariablePolicy (\r
+ &mTestGuid1,\r
+ TEST_VAR_1_NAME,\r
+ TEST_POLICY_MIN_SIZE_NULL,\r
+ TEST_POLICY_MAX_SIZE_200,\r
+ TEST_POLICY_ATTRIBUTES_NULL,\r
+ TEST_POLICY_ATTRIBUTES_NULL,\r
+ &mTestGuid2,\r
+ 1,\r
+ TEST_VAR_2_NAME,\r
+ &NewEntry\r
+ );\r
UT_ASSERT_NOT_EFI_ERROR (Status);\r
\r
// Register the new policy.\r
Status = RegisterVariablePolicy (NewEntry);\r
\r
- // Configure the stub to not care about parameters. We're testing errors.\r
- expect_any_always( StubGetVariableNull, VariableName );\r
- expect_any_always( StubGetVariableNull, VendorGuid );\r
- expect_any_always( StubGetVariableNull, DataSize );\r
+ // Configure the stub to not care about parameters. We're testing errors.\r
+ expect_any_always (StubGetVariableNull, VariableName);\r
+ expect_any_always (StubGetVariableNull, VendorGuid);\r
+ expect_any_always (StubGetVariableNull, DataSize);\r
\r
// With a policy, make sure that writes still work, since the variable doesn't exist.\r
Data = 1;\r
- will_return( StubGetVariableNull, TEST_POLICY_ATTRIBUTES_NULL ); // Attributes\r
- will_return( StubGetVariableNull, sizeof (Data) ); // Size\r
- will_return( StubGetVariableNull, (UINTN)&Data ); // DataPtr\r
- will_return( StubGetVariableNull, EFI_SUCCESS); // Status\r
+ will_return (StubGetVariableNull, TEST_POLICY_ATTRIBUTES_NULL); // Attributes\r
+ will_return (StubGetVariableNull, sizeof (Data)); // Size\r
+ will_return (StubGetVariableNull, (UINTN)&Data); // DataPtr\r
+ will_return (StubGetVariableNull, EFI_SUCCESS); // Status\r
\r
Status = VariableLockRequestToLock (NULL, TEST_VAR_1_NAME, &mTestGuid1);\r
UT_ASSERT_TRUE (!EFI_ERROR (Status));\r
UNIT_TEST_STATUS\r
EFIAPI\r
LockingALockedVariableWithNonMatchingDataShouldFail (\r
- IN UNIT_TEST_CONTEXT Context\r
+ IN UNIT_TEST_CONTEXT Context\r
)\r
{\r
- EFI_STATUS Status;\r
- VARIABLE_POLICY_ENTRY *NewEntry;\r
- UINT8 Data;\r
+ EFI_STATUS Status;\r
+ VARIABLE_POLICY_ENTRY *NewEntry;\r
+ UINT8 Data;\r
\r
// Create a variable policy that locks the variable.\r
- Status = CreateVarStateVariablePolicy (&mTestGuid1,\r
- TEST_VAR_1_NAME,\r
- TEST_POLICY_MIN_SIZE_NULL,\r
- TEST_POLICY_MAX_SIZE_200,\r
- TEST_POLICY_ATTRIBUTES_NULL,\r
- TEST_POLICY_ATTRIBUTES_NULL,\r
- &mTestGuid2,\r
- 1,\r
- TEST_VAR_2_NAME,\r
- &NewEntry);\r
+ Status = CreateVarStateVariablePolicy (\r
+ &mTestGuid1,\r
+ TEST_VAR_1_NAME,\r
+ TEST_POLICY_MIN_SIZE_NULL,\r
+ TEST_POLICY_MAX_SIZE_200,\r
+ TEST_POLICY_ATTRIBUTES_NULL,\r
+ TEST_POLICY_ATTRIBUTES_NULL,\r
+ &mTestGuid2,\r
+ 1,\r
+ TEST_VAR_2_NAME,\r
+ &NewEntry\r
+ );\r
UT_ASSERT_NOT_EFI_ERROR (Status);\r
\r
// Register the new policy.\r
Status = RegisterVariablePolicy (NewEntry);\r
\r
- // Configure the stub to not care about parameters. We're testing errors.\r
- expect_any_always( StubGetVariableNull, VariableName );\r
- expect_any_always( StubGetVariableNull, VendorGuid );\r
- expect_any_always( StubGetVariableNull, DataSize );\r
+ // Configure the stub to not care about parameters. We're testing errors.\r
+ expect_any_always (StubGetVariableNull, VariableName);\r
+ expect_any_always (StubGetVariableNull, VendorGuid);\r
+ expect_any_always (StubGetVariableNull, DataSize);\r
\r
// With a policy, make sure that writes still work, since the variable doesn't exist.\r
Data = 2;\r
- will_return( StubGetVariableNull, TEST_POLICY_ATTRIBUTES_NULL ); // Attributes\r
- will_return( StubGetVariableNull, sizeof (Data) ); // Size\r
- will_return( StubGetVariableNull, (UINTN)&Data ); // DataPtr\r
- will_return( StubGetVariableNull, EFI_SUCCESS); // Status\r
+ will_return (StubGetVariableNull, TEST_POLICY_ATTRIBUTES_NULL); // Attributes\r
+ will_return (StubGetVariableNull, sizeof (Data)); // Size\r
+ will_return (StubGetVariableNull, (UINTN)&Data); // DataPtr\r
+ will_return (StubGetVariableNull, EFI_SUCCESS); // Status\r
\r
Status = VariableLockRequestToLock (NULL, TEST_VAR_1_NAME, &mTestGuid1);\r
UT_ASSERT_TRUE (EFI_ERROR (Status));\r
UNIT_TEST_STATUS\r
EFIAPI\r
SettingPolicyForALockedVariableShouldFail (\r
- IN UNIT_TEST_CONTEXT Context\r
+ IN UNIT_TEST_CONTEXT Context\r
)\r
{\r
- EFI_STATUS Status;\r
- VARIABLE_POLICY_ENTRY *NewEntry;\r
+ EFI_STATUS Status;\r
+ VARIABLE_POLICY_ENTRY *NewEntry;\r
\r
// Lock the variable.\r
Status = VariableLockRequestToLock (NULL, TEST_VAR_1_NAME, &mTestGuid1);\r
UT_ASSERT_NOT_EFI_ERROR (Status);\r
\r
// Create a variable policy that locks the variable.\r
- Status = CreateVarStateVariablePolicy (&mTestGuid1,\r
- TEST_VAR_1_NAME,\r
- TEST_POLICY_MIN_SIZE_NULL,\r
- TEST_POLICY_MAX_SIZE_200,\r
- TEST_POLICY_ATTRIBUTES_NULL,\r
- TEST_POLICY_ATTRIBUTES_NULL,\r
- &mTestGuid2,\r
- 1,\r
- TEST_VAR_2_NAME,\r
- &NewEntry);\r
+ Status = CreateVarStateVariablePolicy (\r
+ &mTestGuid1,\r
+ TEST_VAR_1_NAME,\r
+ TEST_POLICY_MIN_SIZE_NULL,\r
+ TEST_POLICY_MAX_SIZE_200,\r
+ TEST_POLICY_ATTRIBUTES_NULL,\r
+ TEST_POLICY_ATTRIBUTES_NULL,\r
+ &mTestGuid2,\r
+ 1,\r
+ TEST_VAR_2_NAME,\r
+ &NewEntry\r
+ );\r
UT_ASSERT_NOT_EFI_ERROR (Status);\r
\r
// Register the new policy.\r
// Add all test suites and tests.\r
//\r
Status = CreateUnitTestSuite (\r
- &ShimTests, Framework,\r
- "Variable Lock Shim Tests", "VarPolicy.VarLockShim", NULL, NULL\r
+ &ShimTests,\r
+ Framework,\r
+ "Variable Lock Shim Tests",\r
+ "VarPolicy.VarLockShim",\r
+ NULL,\r
+ NULL\r
);\r
if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_ERROR, "Failed in CreateUnitTestSuite for ShimTests\n"));\r
Status = EFI_OUT_OF_RESOURCES;\r
goto EXIT;\r
}\r
+\r
AddTestCase (\r
ShimTests,\r
- "Locking a variable with no matching policies should always work", "EmptyPolicies",\r
- LockingWithoutAnyPoliciesShouldSucceed, LibInitMocked, LibCleanup, NULL\r
+ "Locking a variable with no matching policies should always work",\r
+ "EmptyPolicies",\r
+ LockingWithoutAnyPoliciesShouldSucceed,\r
+ LibInitMocked,\r
+ LibCleanup,\r
+ NULL\r
);\r
AddTestCase (\r
ShimTests,\r
- "Locking a variable twice should always work", "DoubleLock",\r
- LockingTwiceShouldSucceed, LibInitMocked, LibCleanup, NULL\r
+ "Locking a variable twice should always work",\r
+ "DoubleLock",\r
+ LockingTwiceShouldSucceed,\r
+ LibInitMocked,\r
+ LibCleanup,\r
+ NULL\r
);\r
AddTestCase (\r
ShimTests,\r
- "Locking a variable that's already locked by another policy should work", "LockAfterPolicy",\r
- LockingALockedVariableShouldSucceed, LibInitMocked, LibCleanup, NULL\r
+ "Locking a variable that's already locked by another policy should work",\r
+ "LockAfterPolicy",\r
+ LockingALockedVariableShouldSucceed,\r
+ LibInitMocked,\r
+ LibCleanup,\r
+ NULL\r
);\r
AddTestCase (\r
ShimTests,\r
- "Locking a variable that already has an unlocked policy should fail", "LockAfterUnlockedPolicy",\r
- LockingAnUnlockedVariableShouldFail, LibInitMocked, LibCleanup, NULL\r
+ "Locking a variable that already has an unlocked policy should fail",\r
+ "LockAfterUnlockedPolicy",\r
+ LockingAnUnlockedVariableShouldFail,\r
+ LibInitMocked,\r
+ LibCleanup,\r
+ NULL\r
);\r
AddTestCase (\r
ShimTests,\r
- "Locking a variable that already has an locked policy should succeed", "LockAfterLockedPolicyMatchingData",\r
- LockingALockedVariableWithMatchingDataShouldSucceed, LibInitMocked, LibCleanup, NULL\r
+ "Locking a variable that already has an locked policy should succeed",\r
+ "LockAfterLockedPolicyMatchingData",\r
+ LockingALockedVariableWithMatchingDataShouldSucceed,\r
+ LibInitMocked,\r
+ LibCleanup,\r
+ NULL\r
);\r
AddTestCase (\r
ShimTests,\r
- "Locking a variable that already has an locked policy with matching data should succeed", "LockAfterLockedPolicyNonMatchingData",\r
- LockingALockedVariableWithNonMatchingDataShouldFail, LibInitMocked, LibCleanup, NULL\r
+ "Locking a variable that already has an locked policy with matching data should succeed",\r
+ "LockAfterLockedPolicyNonMatchingData",\r
+ LockingALockedVariableWithNonMatchingDataShouldFail,\r
+ LibInitMocked,\r
+ LibCleanup,\r
+ NULL\r
);\r
AddTestCase (\r
ShimTests,\r
- "Adding a policy for a variable that has previously been locked should always fail", "SetPolicyAfterLock",\r
- SettingPolicyForALockedVariableShouldFail, LibInitMocked, LibCleanup, NULL\r
+ "Adding a policy for a variable that has previously been locked should always fail",\r
+ "SetPolicyAfterLock",\r
+ SettingPolicyForALockedVariableShouldFail,\r
+ LibInitMocked,\r
+ LibCleanup,\r
+ NULL\r
);\r
\r
//\r
///\r
/// Avoid ECC error for function name that starts with lower case letter\r
///\r
-#define Main main\r
+#define Main main\r
\r
/**\r
Standard POSIX C entry point for host based unit test execution.\r