SGX TEE Testing Framework
We provide unit and integration testing capabilities suitable for use in trusted environments.
TEST(TTestFramework, StringTests_StringEquality) {
// ASSERT_STR_EQ
ASSERT_STR_EQ("hello", "hello"); // Pass
ASSERT_STR_EQ(std::string("test"), "test"); // Pass
ASSERT_STR_EQ("world", std::string("world")); // Pass
// ASSERT_STR_EQ("foo", "bar"); // Uncomment to test failure
// ASSERT_STR_NE
ASSERT_STR_NE("hello", "world"); // Pass
ASSERT_STR_NE(std::string("foo"), "bar"); // Pass
ASSERT_STR_NE("abc", std::string("xyz")); // Pass
// ASSERT_STR_NE("test", "test"); // Uncomment to test failure
}
// Test suite for memory block equality and inequality
TEST(TTestFramework, MemoryTests_MemoryBlockEquality) {
char block1[5] = {1, 2, 3, 4, 5};
char block2[5] = {1, 2, 3, 4, 5};
char block3[5] = {5, 4, 3, 2, 1};
char block4[3] = {1, 2, 3};
// ASSERT_MEM_EQ
ASSERT_MEM_EQ(block1, 5, block2, 5); // Pass
// ASSERT_MEM_EQ(block1, 5, block3, 5); // Uncomment to test failure
// ASSERT_MEM_EQ(block1, 5, block4, 3); // Uncomment to test failure (length mismatch)
// ASSERT_MEM_NE
ASSERT_MEM_NE(block1, 5, block3, 5); // Pass
ASSERT_MEM_NE(block1, 5, block4, 3); // Pass (length mismatch)
// ASSERT_MEM_NE(block1, 5, block2, 5); // Uncomment to test failure
}
TEST(ExceptionTests, ThrowCorrectException) {
ASSERT_THROW(throw std::runtime_error("Test exception"), std::runtime_error);
}