From 469c6408dacd8999256b36deee14306df99ce478 Mon Sep 17 00:00:00 2001 From: Rahul Frias Date: Mon, 27 Feb 2023 15:06:50 -0800 Subject: [PATCH] Specify server version on the command line Merged from http://go/wvgerrit/160746 Bug: 251599048 Change-Id: I66bd4766e1cb5f6b9592e1f804a68258f9e9a3d2 --- libwvdrmengine/cdm/core/test/config_test_env.h | 10 ++++++++++ libwvdrmengine/cdm/core/test/test_base.cpp | 15 +++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/libwvdrmengine/cdm/core/test/config_test_env.h b/libwvdrmengine/cdm/core/test/config_test_env.h index 1bd6e0de..bab2b3c9 100644 --- a/libwvdrmengine/cdm/core/test/config_test_env.h +++ b/libwvdrmengine/cdm/core/test/config_test_env.h @@ -92,7 +92,13 @@ class ConfigTestEnv { } int test_pass() const { return test_pass_; } const std::string& test_data_path() const { return test_data_path_; } + int server_version() const { return server_version_; } + // Return true if the server version has been set and it is older than the + // specified version. We know the server version is set, if it is nonzero. + bool ServerOlderThan(int server_version) { + return server_version_ > 0 && server_version_ < server_version; + } static const CdmInitData GetInitData(ContentId content_id); static const std::string& GetLicenseServerUrl( ServerConfigurationId server_configuration_id); @@ -122,6 +128,9 @@ class ConfigTestEnv { void set_test_data_path(const std::string& test_data_path) { test_data_path_ = test_data_path; } + void set_server_version(int server_version) { + if (server_version >= 0) server_version_ = server_version; + } // The QA service certificate, used for a local provisioning server. static std::string QAProvisioningServiceCertificate(); @@ -139,6 +148,7 @@ class ConfigTestEnv { std::string provisioning_service_certificate_; int test_pass_; std::string test_data_path_; // Where to store test data for reboot tests. + int server_version_ = 0; }; // The default provisioning server URL for a default provisioning request. diff --git a/libwvdrmengine/cdm/core/test/test_base.cpp b/libwvdrmengine/cdm/core/test/test_base.cpp index c51eb908..b59d5e65 100644 --- a/libwvdrmengine/cdm/core/test/test_base.cpp +++ b/libwvdrmengine/cdm/core/test/test_base.cpp @@ -111,6 +111,11 @@ void show_menu(const char* prog_name, const std::string& extra_help_text) { << " configure the provisioning server url, please include http[s]" << " in the url" << std::endl << std::endl; + std::cout << " --server_version=N" << std::endl; + std::cout << " specify the server version. Tests that are not expected " + << "to pass" << std::endl + << " on this server version will be skipped." << std::endl + << std::endl; std::cout << " --qa_provisioning" << std::endl; std::cout << " use the QA provisioning cert and QA test keybox" @@ -538,6 +543,8 @@ bool WvCdmTestBase::Initialize(int argc, const char* const argv[], } } else if (arg_prefix == "--test_data_path") { default_config_.set_test_data_path(arg_value); + } else if (arg_prefix == "--server_version") { + default_config_.set_server_version(atoi(arg_value.c_str())); } else { std::cerr << "Unknown argument " << arg_prefix << std::endl; show_usage = true; @@ -561,8 +568,12 @@ bool WvCdmTestBase::Initialize(int argc, const char* const argv[], << std::endl; std::cout << "Default Renewal Server: " << default_config_.renewal_server() << std::endl; - std::cout << "Default KeyID: " << default_config_.key_id() << std::endl - << std::endl; + std::cout << "Default KeyID: " << default_config_.key_id() << std::endl; + if (default_config_.server_version() != 0) { + std::cout << "Server Version: " << default_config_.server_version() + << std::endl; + } + std::cout << std::endl; // Figure out which tests are appropriate for OEMCrypto, based on features // supported.