From 2a4dfd2f0dbb6e8e7ba9d3c970f01b8081bdfa92 Mon Sep 17 00:00:00 2001 From: Ahson Khan Date: Tue, 18 May 2021 21:18:16 -0700 Subject: [PATCH] Incorrect use of hashing Final/Append APIs now have an assert failure. (#2317) Follow up from https://github.com/Azure/azure-sdk-for-cpp/pull/2189 --- .../test/crypt_functions_test.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/sdk/storage/azure-storage-common/test/crypt_functions_test.cpp b/sdk/storage/azure-storage-common/test/crypt_functions_test.cpp index c3de6accc..b11111a6c 100644 --- a/sdk/storage/azure-storage-common/test/crypt_functions_test.cpp +++ b/sdk/storage/azure-storage-common/test/crypt_functions_test.cpp @@ -127,14 +127,22 @@ namespace Azure { namespace Storage { namespace Test { const uint8_t* ptr = reinterpret_cast(data.data()); Crc64Hash instance; - EXPECT_THROW(instance.Final(nullptr, 1), std::invalid_argument); - EXPECT_THROW(instance.Append(nullptr, 1), std::invalid_argument); + ASSERT_DEATH(instance.Final(nullptr, 1), ""); + ASSERT_DEATH(instance.Append(nullptr, 1), ""); EXPECT_EQ( Azure::Core::Convert::Base64Encode(instance.Final(ptr, data.length())), "AAAAAAAAAAA="); - EXPECT_THROW(instance.Final(), std::runtime_error); - EXPECT_THROW(instance.Final(ptr, data.length()), std::runtime_error); - EXPECT_THROW(instance.Append(ptr, data.length()), std::runtime_error); + +#if defined(NDEBUG) + // Release build won't provide assert msg + ASSERT_DEATH(instance.Final(), ""); + ASSERT_DEATH(instance.Final(ptr, data.length()), ""); + ASSERT_DEATH(instance.Append(ptr, data.length()), ""); +#else + ASSERT_DEATH(instance.Final(), "Cannot call Final"); + ASSERT_DEATH(instance.Final(ptr, data.length()), "Cannot call Final"); + ASSERT_DEATH(instance.Append(ptr, data.length()), "Cannot call Append after calling Final"); +#endif } TEST(CryptFunctionsTest, Crc64Hash_CtorDtor)