From 5f3bc77c52a8a71f37ca6e2d0cfaec9f7b5120a5 Mon Sep 17 00:00:00 2001 From: Vicky Min Date: Tue, 5 Sep 2023 18:33:34 +0000 Subject: [PATCH] Remove RestrictFilter() function and RSAPerformance test Since we want to migrate to using GTEST_SKIP to skip unit tests instead of GTEST_FILTER, we can remove the RestrictFilter() function which filters the tests out using GTEST_FILTER. To do this, the RSAPerformance test needs to be removed, which is acceptable since no one uses this test anymore. However, b/299135804 is being used to track a new way to either execute/track permance. Bug: 251240681, 299135804 Change-Id: Ife59c468ee127f4c39d3be91707ca38a061b7895 --- libwvdrmengine/cdm/core/test/test_base.cpp | 9 -- .../oemcrypto/test/oec_device_features.cpp | 11 --- .../oemcrypto/test/oec_device_features.h | 5 - .../test/oemcrypto_provisioning_test.cpp | 94 ------------------- .../oemcrypto/test/oemcrypto_test_main.cpp | 10 -- 5 files changed, 129 deletions(-) diff --git a/libwvdrmengine/cdm/core/test/test_base.cpp b/libwvdrmengine/cdm/core/test/test_base.cpp index e6cfa8b8..1464029b 100644 --- a/libwvdrmengine/cdm/core/test/test_base.cpp +++ b/libwvdrmengine/cdm/core/test/test_base.cpp @@ -416,7 +416,6 @@ bool WvCdmTestBase::Initialize(int argc, const char* const argv[], const std::string& extra_help_text) { Properties::Init(); bool is_cast_receiver = false; - bool filter_tests = true; bool show_usage = false; int verbosity = 0; @@ -436,8 +435,6 @@ bool WvCdmTestBase::Initialize(int argc, const char* const argv[], show_usage = true; } else if (arg == "--verbose" || arg == "-v") { ++verbosity; - } else if (arg == "--no_filter") { - filter_tests = false; } else if (arg == "--cast") { is_cast_receiver = true; } else if (arg == "--fake_sleep") { @@ -568,12 +565,6 @@ bool WvCdmTestBase::Initialize(int argc, const char* const argv[], // support being a cast receiver. wvoec::global_features.set_cast_receiver(is_cast_receiver); } - // If the user requests --no_filter, we don't change the filter, otherwise, we - // filter out features that are not supported. - if (filter_tests) { - ::testing::GTEST_FLAG(filter) = - wvoec::global_features.RestrictFilter(::testing::GTEST_FLAG(filter)); - } skip_sleepy_tests_ = UnwrapOptionalBool(skip_sleepy_tests, skip_slow_tests); skip_decryption_stress_tests_ = diff --git a/libwvdrmengine/oemcrypto/test/oec_device_features.cpp b/libwvdrmengine/oemcrypto/test/oec_device_features.cpp index b61e4a76..5047a39e 100644 --- a/libwvdrmengine/oemcrypto/test/oec_device_features.cpp +++ b/libwvdrmengine/oemcrypto/test/oec_device_features.cpp @@ -145,17 +145,6 @@ void DeviceFeatures::Initialize() { initialized_ = true; } -std::string DeviceFeatures::RestrictFilter(const std::string& initial_filter) { - std::string filter = initial_filter; - // Performance tests take a long time. Filter them out if they are not - // specifically requested. - if (filter.find("Performance") == std::string::npos) { - FilterOut(&filter, "*Performance*"); - } - - return filter; -} - void DeviceFeatures::PickDerivedKey() { switch (provisioning_method) { case OEMCrypto_OEMCertificate: diff --git a/libwvdrmengine/oemcrypto/test/oec_device_features.h b/libwvdrmengine/oemcrypto/test/oec_device_features.h index 00b88b31..78d1cf69 100644 --- a/libwvdrmengine/oemcrypto/test/oec_device_features.h +++ b/libwvdrmengine/oemcrypto/test/oec_device_features.h @@ -61,11 +61,6 @@ class DeviceFeatures { void set_cast_receiver(bool is_cast_receiver) { cast_receiver = is_cast_receiver; } - // Generate a GTest filter of tests that should not be run. This should be - // called after Initialize. Tests are filtered out based on which features - // are not supported. For example, a device that uses Provisioning 3.0 will - // have all keybox tests filtered out. - std::string RestrictFilter(const std::string& initial_filter); // Get a list of output types that should be tested. const std::vector& GetOutputTypes(); diff --git a/libwvdrmengine/oemcrypto/test/oemcrypto_provisioning_test.cpp b/libwvdrmengine/oemcrypto/test/oemcrypto_provisioning_test.cpp index 69b17fd8..7047d8c6 100644 --- a/libwvdrmengine/oemcrypto/test/oemcrypto_provisioning_test.cpp +++ b/libwvdrmengine/oemcrypto/test/oemcrypto_provisioning_test.cpp @@ -1227,98 +1227,4 @@ TEST_F(OEMCryptoLoadsCertificate, SupportsCertificatesAPI13) { << "Supported certificates is only " << OEMCrypto_SupportedCertificates(); } -// This test is not run by default, because it takes a long time and -// is used to measure RSA performance, not test functionality. -TEST_F(OEMCryptoLoadsCertificate, RSAPerformance) { - // TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for - // provisioning 4. Disabled here temporarily. - if (global_features.provisioning_method == OEMCrypto_BootCertificateChain) { - GTEST_SKIP() << "Test for non Prov 4.0 devices only."; - } - const std::chrono::milliseconds kTestDuration(5000); - OEMCryptoResult sts; - std::chrono::steady_clock clock; - wvutil::TestSleep::Sleep(kShortSleep); // Make sure we are not nonce limited. - - auto start_time = clock.now(); - int count = 15; - for (int i = 0; i < count; i++) { // Only 20 nonce available. - ASSERT_NO_FATAL_FAILURE(CreateWrappedDRMKey()); - } - auto delta_time = clock.now() - start_time; - const double provision_time = - delta_time / std::chrono::milliseconds(1) / static_cast(count); - - Session session; - ASSERT_NO_FATAL_FAILURE(CreateWrappedDRMKey()); - start_time = clock.now(); - count = 0; - do { - Session s; - ASSERT_NO_FATAL_FAILURE(s.open()); - ASSERT_NO_FATAL_FAILURE(s.LoadWrappedRsaDrmKey(wrapped_drm_key_)); - const size_t size = 50; - vector licenseRequest(size); - GetRandBytes(licenseRequest.data(), licenseRequest.size()); - size_t signature_length = 0; - sts = OEMCrypto_GenerateRSASignature(s.session_id(), licenseRequest.data(), - licenseRequest.size(), nullptr, - &signature_length, kSign_RSASSA_PSS); - ASSERT_EQ(OEMCrypto_ERROR_SHORT_BUFFER, sts); - ASSERT_NE(static_cast(0), signature_length); - - if (ShouldGenerateCorpus()) { - const std::string file_name = - GetFileName("oemcrypto_generate_rsa_signature_fuzz_seed_corpus"); - OEMCrypto_Generate_RSA_Signature_Fuzz fuzzed_structure; - fuzzed_structure.padding_scheme = kSign_RSASSA_PSS; - fuzzed_structure.signature_length = signature_length; - // Cipher mode and algorithm. - AppendToFile(file_name, reinterpret_cast(&fuzzed_structure), - sizeof(fuzzed_structure)); - AppendToFile(file_name, - reinterpret_cast(licenseRequest.data()), - licenseRequest.size()); - } - - std::vector signature(signature_length, 0); - sts = OEMCrypto_GenerateRSASignature( - s.session_id(), licenseRequest.data(), licenseRequest.size(), - signature.data(), &signature_length, kSign_RSASSA_PSS); - ASSERT_EQ(OEMCrypto_SUCCESS, sts); - count++; - } while (clock.now() - start_time < kTestDuration); - delta_time = clock.now() - start_time; - const double license_request_time = - delta_time / std::chrono::milliseconds(1) / static_cast(count); - - Session s; - ASSERT_NO_FATAL_FAILURE(s.open()); - ASSERT_NO_FATAL_FAILURE(s.LoadWrappedRsaDrmKey(wrapped_drm_key_)); - ASSERT_NO_FATAL_FAILURE(s.SetRsaPublicKeyFromPrivateKeyInfo( - encoded_rsa_key_.data(), encoded_rsa_key_.size())); - - LicenseRoundTrip license_messages(&s); - license_messages.SignAndVerifyRequest(); - license_messages.CreateDefaultResponse(); - - start_time = clock.now(); - count = 0; - do { - license_messages.LoadResponse(&s, /* verify_keys= */ false); - count++; - } while (clock.now() - start_time < kTestDuration); - delta_time = clock.now() - start_time; - const double derive_keys_time = - delta_time / std::chrono::milliseconds(1) / static_cast(count); - - OEMCrypto_Security_Level level = OEMCrypto_SecurityLevel(); - printf( - "PERF:head, security, provision (ms), lic req(ms), derive " - "keys(ms)\n"); - printf("PERF:stat, %u, %8.3f, %8.3f, %8.3f\n", - static_cast(level), provision_time, license_request_time, - derive_keys_time); -} - } // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/oemcrypto_test_main.cpp b/libwvdrmengine/oemcrypto/test/oemcrypto_test_main.cpp index 0779b11c..c4cf9355 100644 --- a/libwvdrmengine/oemcrypto/test/oemcrypto_test_main.cpp +++ b/libwvdrmengine/oemcrypto/test/oemcrypto_test_main.cpp @@ -19,7 +19,6 @@ static void acknowledge_cast() { // Also, the test filter is updated based on the feature list. int main(int argc, char** argv) { bool is_cast_receiver = false; - bool filter_tests = true; int verbosity = 0; // Skip the first element, which is the program name. const std::vector args(argv + 1, argv + argc); @@ -37,9 +36,6 @@ int main(int argc, char** argv) { std::cerr << "The argument --force_load_test_keybox is obsolete.\n"; return 1; } - if (arg == "--no_filter") { - filter_tests = false; - } if (arg == "--fake_sleep") { wvutil::TestSleep::set_real_sleep(false); } @@ -55,11 +51,5 @@ int main(int argc, char** argv) { } // Init GTest after device properties has been initialized. ::testing::InitGoogleTest(&argc, argv); - // If the user requests --no_filter, we don't change the filter, otherwise, we - // filter out features that are not supported. - if (filter_tests) { - ::testing::GTEST_FLAG(filter) = - wvoec::global_features.RestrictFilter(::testing::GTEST_FLAG(filter)); - } return RUN_ALL_TESTS(); }