diff --git a/libwvdrmengine/cdm/core/test/test_base.cpp b/libwvdrmengine/cdm/core/test/test_base.cpp index 657184ac..a2ab575a 100644 --- a/libwvdrmengine/cdm/core/test/test_base.cpp +++ b/libwvdrmengine/cdm/core/test/test_base.cpp @@ -32,7 +32,7 @@ using wvcdm::metrics::EngineMetrics; namespace wvcdm { namespace { -void show_menu(char* prog_name) { +void show_menu(const char* prog_name, const std::string& extra_help_text) { std::cout << std::endl; std::cout << "usage: " << prog_name << " [options]" << std::endl << std::endl; std::cout << " enclose multiple arguments in '' when using adb shell" @@ -97,6 +97,8 @@ void show_menu(char* prog_name) { << " configure the provisioning server url, please include http[s]" << " in the url" << std::endl << std::endl; + + std::cout << extra_help_text << std::endl; } /* @@ -393,7 +395,8 @@ void WvCdmTestBase::EnsureProvisioned() { ASSERT_EQ(NO_ERROR, cdm_engine.CloseSession(session_id)); } -bool WvCdmTestBase::Initialize(int argc, char** argv) { +bool WvCdmTestBase::Initialize(int argc, const char* const argv[], + const std::string& extra_help_text) { Properties::Init(); bool is_cast_receiver = false; bool force_load_test_keybox = false; // TODO(fredgc): obsolete. remove. @@ -454,7 +457,7 @@ bool WvCdmTestBase::Initialize(int argc, char** argv) { } if (show_usage) { - show_menu(argv[0]); + show_menu(argv[0], extra_help_text); return false; } diff --git a/libwvdrmengine/cdm/core/test/test_base.h b/libwvdrmengine/cdm/core/test/test_base.h index ca2a2f5a..dd0a84e5 100644 --- a/libwvdrmengine/cdm/core/test/test_base.h +++ b/libwvdrmengine/cdm/core/test/test_base.h @@ -5,6 +5,9 @@ #ifndef WVCDM_CORE_TEST_BASE_H_ #define WVCDM_CORE_TEST_BASE_H_ +#include +#include + #include #include "cdm_engine.h" @@ -29,8 +32,13 @@ class WvCdmTestBase : public ::testing::Test { // Returns true if the test program should continue, if false, the caller // should exit. This should be called by main() to allow the user to pass in - // command line switches. - static bool Initialize(int argc, char **argv); + // command line switches. The |extra_help_text| parameter can be used to + // append platform-specific information to the usage information printed when + // invalid flags are detected. For instance, a platform might add information + // about platform-specific flags that were already parsed before calling + // Initialize(). + static bool Initialize(int argc, const char* const argv[], + const std::string& extra_help_text = std::string()); // Install a test keybox, if appropriate. static void InstallTestRootOfTrust();