From 9b06fc8f331ed018a3c22268f8d7747d8c6e736d Mon Sep 17 00:00:00 2001 From: Victor Vazquez Date: Wed, 7 Jul 2021 08:50:05 -0500 Subject: [PATCH] compile samples (#2556) * compile samples --- .../templates/jobs/archetype-sdk-tests.yml | 1 + .../sample5_sign_verify.cpp | 13 ++++++----- .../sample6_wrap_unwrap.cpp | 1 - .../test/ut/key_client_base_test.hpp | 22 ++++++++++++++++++- sdk/keyvault/ci.yml | 3 ++- 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/eng/pipelines/templates/jobs/archetype-sdk-tests.yml b/eng/pipelines/templates/jobs/archetype-sdk-tests.yml index 8e910a536..949248582 100644 --- a/eng/pipelines/templates/jobs/archetype-sdk-tests.yml +++ b/eng/pipelines/templates/jobs/archetype-sdk-tests.yml @@ -96,6 +96,7 @@ jobs: CMOCKA_XML_FILE: "%g-test-results.xml" CMOCKA_MESSAGE_OUTPUT: "xml" AZURE_ENABLE_STATIC_ANALYSIS: 1 + AZURE_KEYVAULT_AVOID_THROTTLED: 1 steps: - checkout: self diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample5-sign-verify/sample5_sign_verify.cpp b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample5-sign-verify/sample5_sign_verify.cpp index 8b617d6ab..9bf202f30 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample5-sign-verify/sample5_sign_verify.cpp +++ b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample5-sign-verify/sample5_sign_verify.cpp @@ -19,7 +19,6 @@ #include #include -#include #include #include @@ -60,13 +59,15 @@ int main() CryptographyClient ecCryptoClient(cloudEcKey.Id(), credential); - // digestBase64 simulates some text data that has been hashed using the SHA256 algorithm + uint8_t const dataSource[] + = "This is some sample data which we will use to demonstrate sign and verify"; + std::vector data(std::begin(dataSource), std::end(dataSource)); + + // digestRaw simulates some text data that has been hashed using the SHA256 algorithm // and then base 64 encoded. It is not relevant for the sample how to create the SHA256 // hashed digest. - // Example input data source for the digest: - // "This is some sample data which we will use to demonstrate sign and verify" - std::string digestBase64 = "DU9EdhpwhJqnGnieD0qKYEz6e8QPKlOVpYZZro+XtI8="; - std::vector digest = Azure::Core::Convert::Base64Decode(digestBase64); + std::vector digest + = Azure::Core::Convert::Base64Decode("DU9EdhpwhJqnGnieD0qKYEz6e8QPKlOVpYZZro"); // Sign and Verify from digest SignResult rsaSignResult = rsaCryptoClient.Sign(SignatureAlgorithm::RS256, digest); diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample6-wrap-unwrap/sample6_wrap_unwrap.cpp b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample6-wrap-unwrap/sample6_wrap_unwrap.cpp index e428a3105..0b7c871a9 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample6-wrap-unwrap/sample6_wrap_unwrap.cpp +++ b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample6-wrap-unwrap/sample6_wrap_unwrap.cpp @@ -19,7 +19,6 @@ #include #include -#include #include #include 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 4a1a2df96..4941b615e 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 @@ -13,21 +13,29 @@ #include #include +#include #include #include +#include namespace Azure { namespace Security { namespace KeyVault { namespace Keys { namespace Test { class KeyVaultClientTest : public ::testing::TestWithParam { private: - std::string GetEnv(const std::string& name) + std::string GetEnv(const std::string& name, std::string const& defaultValue = std::string()) { const char* ret = std::getenv(name.data()); if (!ret) { + if (defaultValue.size() > 0) + { + return defaultValue; + } + throw std::runtime_error( name + " is required to run the tests but not set as an environment variable."); } + return std::string(ret); } @@ -48,6 +56,18 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Keys { nam m_keyVaultUrl = GetEnv("AZURE_KEYVAULT_URL"); m_keyVaultHsmUrl = GetEnv("AZURE_KEYVAULT_HSM_URL"); + + // When running live tests, service can return 429 error response if the client is sending + // multiple requests per second. This can happen if the network is fast and tests are running + // without any delay between them. + auto avoidTestThrottled = GetEnv("AZURE_KEYVAULT_AVOID_THROTTLED", "0"); + + if (avoidTestThrottled != "0") + { + std::cout << "- Wait to avoid server throttled..." << std::endl; + // 10 sec should be enough to prevent from 429 error + std::this_thread::sleep_for(std::chrono::seconds(10)); + } } public: diff --git a/sdk/keyvault/ci.yml b/sdk/keyvault/ci.yml index d9abedfb3..073175646 100644 --- a/sdk/keyvault/ci.yml +++ b/sdk/keyvault/ci.yml @@ -34,7 +34,8 @@ stages: parameters: ServiceDirectory: keyvault CtestRegex: "azure-security-keyvault.*-unittest" - LiveTestCtestRegex: "azure-security-keyvault.*-livetest" + LiveTestCtestRegex: "Remote" + LiveTestTimeoutInMinutes: 120 SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) Artifacts: - Name: azure-security-keyvault-common