Merge from Widevine repo of http://go/wvgerrit/169070 This turns on the cast receiver tests for any device that claims to support this feature. Previously, we had to explicitly request these tests on the command line. But since they do not pass for Prov 4.0, we fitler them out in this case and reference a bug tracking that work. We also switch to using GTEST_SKIP to skip the tests instead of modifying the GTEST_FILTER. Bug: 251240681 Bug: 269310676 Bug: 259455058 Bug: 259454969 Merged from https://widevine-internal-review.googlesource.com/166497 Change-Id: I1bcd749243a474b3f638547aa43c2805e86731af
66 lines
2.3 KiB
C++
66 lines
2.3 KiB
C++
#include <gtest/gtest.h>
|
|
#include <iostream>
|
|
|
|
#include "OEMCryptoCENC.h"
|
|
#include "log.h"
|
|
#include "oec_device_features.h"
|
|
#include "oemcrypto_corpus_generator_helper.h"
|
|
#include "test_sleep.h"
|
|
|
|
static void acknowledge_cast() {
|
|
std::cout
|
|
<< "==================================================================\n"
|
|
<< "= This device is expected to load x509 certs as a cast receiver. =\n"
|
|
<< "==================================================================\n";
|
|
}
|
|
|
|
// This special main procedure is used instead of the standard GTest main,
|
|
// because we need to initialize the list of features supported by the device.
|
|
// 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<std::string> args(argv + 1, argv + argc);
|
|
for (const std::string& arg : args) {
|
|
if (arg == "--generate_corpus") {
|
|
wvoec::SetGenerateCorpus(true);
|
|
}
|
|
if (arg == "--verbose" || arg == "-v") {
|
|
++verbosity;
|
|
} else if (arg == "--cast") {
|
|
acknowledge_cast();
|
|
is_cast_receiver = true;
|
|
}
|
|
if (arg == "--force_load_test_keybox") {
|
|
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);
|
|
}
|
|
}
|
|
wvutil::g_cutoff = static_cast<wvutil::LogPriority>(verbosity);
|
|
wvoec::global_features.Initialize();
|
|
if (is_cast_receiver) {
|
|
// Turn it on if passed in on the command line. Do not turn these tests off
|
|
// automtically -- instead, we'll let the caller filter them out if they
|
|
// need to. These tests will normally only run if the device claims to
|
|
// support being a cast receiver.
|
|
wvoec::global_features.set_cast_receiver(is_cast_receiver);
|
|
}
|
|
// 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();
|
|
}
|