From d5e2ab88a97cf5e060a226d411ea4295f0e739d8 Mon Sep 17 00:00:00 2001 From: George Arama <50641385+gearama@users.noreply.github.com> Date: Tue, 17 Jan 2023 16:22:04 -0800 Subject: [PATCH] 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> --- .../inc/azure/core/test/test_base.hpp | 24 +++--- .../test/ut/key_client_base_test.hpp | 11 +++ .../test/ut/key_client_create_test_live.cpp | 79 ++++++++++--------- 3 files changed, 65 insertions(+), 49 deletions(-) diff --git a/sdk/core/azure-core-test/inc/azure/core/test/test_base.hpp b/sdk/core/azure-core-test/inc/azure/core/test/test_base.hpp index a5f3c0be8..7e21bd6a1 100644 --- a/sdk/core/azure-core-test/inc/azure/core/test/test_base.hpp +++ b/sdk/core/azure-core-test/inc/azure/core/test/test_base.hpp @@ -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. diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_base_test.hpp b/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_base_test.hpp index 30cbaf71c..ce85c0626 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_base_test.hpp +++ b/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_base_test.hpp @@ -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. diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_create_test_live.cpp b/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_create_test_live.cpp index f67ad1f55..092cfd413 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_create_test_live.cpp +++ b/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_create_test_live.cpp @@ -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;