Okp skip tests (#4256)

* first pass

* part2

* part3

* part 5

* pre PR

* updated tests

* fix test

* clangs

* updated changelog

* skip okp test sfor non HSM test runs

* no return value

* stupid mistake

* clang

* clang

* pr comments, clang

* oops

* skipping maybe?

* Update sdk/core/azure-core-test/inc/azure/core/test/test_base.hpp

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>

* fir RemovePreffffffix

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
This commit is contained in:
George Arama 2023-01-17 16:22:04 -08:00 committed by GitHub
parent b7e7e4e000
commit d5e2ab88a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 65 additions and 49 deletions

View File

@ -102,19 +102,10 @@ namespace Azure { namespace Core { namespace Test {
{
std::string updated(src);
std::replace(updated.begin(), updated.end(), '/', '-');
return RemovePreffix(updated);
return RemovePrefix(updated);
}
void SkipTest()
{
if (!m_wasSkipped)
{
m_wasSkipped = true;
GTEST_SKIP();
}
}
std::string RemovePreffix(std::string const& src)
std::string RemovePrefix(std::string const& src)
{
std::string updated(src);
// Remove special marker for LIVEONLY
@ -143,6 +134,15 @@ namespace Azure { namespace Core { namespace Test {
bool shouldSkipTest() { return m_wasSkipped; }
void SkipTest()
{
if (!m_wasSkipped)
{
m_wasSkipped = true;
GTEST_SKIP();
}
}
inline void ValidateSkippingTest()
{
if (m_wasSkipped)
@ -178,7 +178,7 @@ namespace Azure { namespace Core { namespace Test {
testName = Sanitize(testName);
}
return RemovePreffix(testName);
return RemovePrefix(testName);
}
// Reads the current test instance name.

View File

@ -33,6 +33,17 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Keys { nam
int m_testPollingTimeOutMinutes = 20;
std::chrono::milliseconds m_testPollingIntervalMs = std::chrono::minutes(1);
bool CheckSkipHsmForLive()
{
// if we are in live mode and the test needs a valid HSM url (aka different from the keyvault
// url)
if (m_testContext.IsLiveMode() && (m_keyVaultUrl == m_keyVaultHsmUrl))
{
SkipTest();
}
return IsSkipped();
}
// Reads the current test instance name.
// Name gets also sanitized (special chars are removed) to avoid issues when recording or
// creating. This also return the name with suffix if the "AZURE_LIVE_TEST_SUFFIX" exists.

View File

@ -133,49 +133,55 @@ TEST_F(KeyVaultKeyClient, CreateEcKey)
/********************************* Create key overloads *********************************/
TEST_F(KeyVaultKeyClient, CreateOkpKey)
{
auto const keyName = GetTestName();
// This client requires an HSM client
CreateHsmClient();
auto const& client = GetClientForTest(keyName);
if (!CheckSkipHsmForLive())
{
auto const keyName = GetTestName();
// This client requires an HSM client
CreateHsmClient();
auto const& client = GetClientForTest(keyName);
{
auto okpKey = Azure::Security::KeyVault::Keys::CreateOkpKeyOptions(keyName);
auto keyResponse = client.CreateOkpKey(okpKey);
CheckValidResponse(keyResponse);
auto keyVaultKey = keyResponse.Value;
EXPECT_EQ(keyVaultKey.Name(), keyName);
}
{
// Now get the key
auto keyResponse = client.GetKey(keyName);
CheckValidResponse(keyResponse);
auto keyVaultKey = keyResponse.Value;
EXPECT_EQ(keyVaultKey.Name(), keyName);
{
auto okpKey = Azure::Security::KeyVault::Keys::CreateOkpKeyOptions(keyName);
auto keyResponse = client.CreateOkpKey(okpKey);
CheckValidResponse(keyResponse);
auto keyVaultKey = keyResponse.Value;
EXPECT_EQ(keyVaultKey.Name(), keyName);
}
{
// Now get the key
auto keyResponse = client.GetKey(keyName);
CheckValidResponse(keyResponse);
auto keyVaultKey = keyResponse.Value;
EXPECT_EQ(keyVaultKey.Name(), keyName);
}
}
}
TEST_F(KeyVaultKeyClient, CreateOkpHSMKey)
{
auto const keyName = GetTestName();
// This client requires an HSM client
CreateHsmClient();
auto const& client = GetClientForTest(keyName);
if (!CheckSkipHsmForLive())
{
auto const keyName = GetTestName();
// This client requires an HSM client
CreateHsmClient();
auto const& client = GetClientForTest(keyName);
{
auto okpKey = Azure::Security::KeyVault::Keys::CreateOkpKeyOptions(keyName, true);
auto keyResponse = client.CreateOkpKey(okpKey);
CheckValidResponse(keyResponse);
auto keyVaultKey = keyResponse.Value;
EXPECT_EQ(keyVaultKey.Name(), keyName);
EXPECT_EQ(keyVaultKey.GetKeyType(), KeyVaultKeyType::OkpHsm);
EXPECT_EQ(keyVaultKey.Key.CurveName.Value(), KeyCurveName::Ed25519);
}
{
// Now get the key
auto keyResponse = client.GetKey(keyName);
CheckValidResponse(keyResponse);
auto keyVaultKey = keyResponse.Value;
EXPECT_EQ(keyVaultKey.Name(), keyName);
{
auto okpKey = Azure::Security::KeyVault::Keys::CreateOkpKeyOptions(keyName, true);
auto keyResponse = client.CreateOkpKey(okpKey);
CheckValidResponse(keyResponse);
auto keyVaultKey = keyResponse.Value;
EXPECT_EQ(keyVaultKey.Name(), keyName);
EXPECT_EQ(keyVaultKey.GetKeyType(), KeyVaultKeyType::OkpHsm);
EXPECT_EQ(keyVaultKey.Key.CurveName.Value(), KeyCurveName::Ed25519);
}
{
// Now get the key
auto keyResponse = client.GetKey(keyName);
CheckValidResponse(keyResponse);
auto keyVaultKey = keyResponse.Value;
EXPECT_EQ(keyVaultKey.Name(), keyName);
}
}
}
TEST_F(KeyVaultKeyClient, CreateEcKeyWithCurve)
@ -262,7 +268,6 @@ TEST_F(KeyVaultKeyClient, CreateRsaHsmKey)
// This client requires an HSM client
CreateHsmClient();
auto const& client = GetClientForTest(keyName);
{
auto rsaHsmKey = Azure::Security::KeyVault::Keys::CreateRsaKeyOptions(keyName, true);
rsaHsmKey.Enabled = true;