Merge "Create test FileSystems in a platform-specific manner"
This commit is contained in:
committed by
Android (Google) Code Review
commit
3ad13cf1e9
@@ -13,6 +13,7 @@
|
||||
|
||||
#include "cdm_client_property_set.h"
|
||||
#include "cdm_engine.h"
|
||||
#include "create_test_file_system.h"
|
||||
#include "gmock/gmock.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include "wv_cdm_event_listener.h"
|
||||
@@ -115,7 +116,7 @@ class MockCdmEngineImpl : public CdmEngine {
|
||||
class WvCdmEngineMetricsImplTest : public ::testing::Test {
|
||||
public:
|
||||
void SetUp() override {
|
||||
file_system_.reset(new wvutil::FileSystem);
|
||||
file_system_.reset(CreateTestFileSystem());
|
||||
std::shared_ptr<EngineMetrics> engine_metrics(new EngineMetrics);
|
||||
test_cdm_metrics_engine_.reset(
|
||||
new CdmEngineMetricsImpl<StrictMock<MockCdmEngineImpl>>(
|
||||
|
||||
15
libwvdrmengine/cdm/core/test/create_test_file_system.h
Normal file
15
libwvdrmengine/cdm/core/test/create_test_file_system.h
Normal file
@@ -0,0 +1,15 @@
|
||||
// Copyright 2022 Google LLC. All Rights Reserved. This file and proprietary
|
||||
// source code may only be used and distributed under the Widevine License
|
||||
// Agreement.
|
||||
|
||||
#ifndef CDM_TEST_CREATE_TEST_FILE_SYSTEM_H_
|
||||
#define CDM_TEST_CREATE_TEST_FILE_SYSTEM_H_
|
||||
|
||||
#include "file_store.h"
|
||||
|
||||
// Create a new FileSystem object that is suitable for using to create a new
|
||||
// CdmEngine object. How this is implemented is platform-specific. The caller
|
||||
// owns the returned pointer and is responsible for deleting it.
|
||||
wvutil::FileSystem* CreateTestFileSystem();
|
||||
|
||||
#endif // CDM_TEST_CREATE_TEST_FILE_SYSTEM_H_
|
||||
@@ -4,8 +4,10 @@
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include <chrono>
|
||||
#include <memory>
|
||||
#include <thread>
|
||||
|
||||
#include "create_test_file_system.h"
|
||||
#include "crypto_session.h"
|
||||
#include "properties.h"
|
||||
#include "test_base.h"
|
||||
@@ -95,8 +97,8 @@ TEST_F(CdmOtaKeyboxTest, TestThatTheBuildFilesWork) { ASSERT_TRUE(true); }
|
||||
* should be skipped.
|
||||
*/
|
||||
TEST_F(CdmOtaKeyboxTest, BasicTest) {
|
||||
wvutil::FileSystem file_system;
|
||||
TestCdmEngine cdm_engine(&file_system,
|
||||
std::unique_ptr<wvutil::FileSystem> file_system(CreateTestFileSystem());
|
||||
TestCdmEngine cdm_engine(file_system.get(),
|
||||
std::shared_ptr<EngineMetrics>(new EngineMetrics));
|
||||
// Remove any existing certificate.
|
||||
cdm_engine.Unprovision(kSecurityLevelL1);
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
#include <sstream>
|
||||
|
||||
#include "create_test_file_system.h"
|
||||
#include "license_holder.h"
|
||||
#include "log.h"
|
||||
#include "test_sleep.h"
|
||||
@@ -201,7 +202,7 @@ bool RebootTest::ParseDump(const std::string& dump,
|
||||
|
||||
void RebootTest::SetUp() {
|
||||
WvCdmTestBase::SetUp();
|
||||
if (!file_system_) file_system_ = new FileSystem();
|
||||
if (!file_system_) file_system_ = CreateTestFileSystem();
|
||||
|
||||
const ::testing::TestInfo* const test_info =
|
||||
::testing::UnitTest::GetInstance()->current_test_info();
|
||||
|
||||
@@ -324,12 +324,12 @@ void WvCdmTestBase::Provision() {
|
||||
std::string cert, wrapped_key;
|
||||
|
||||
CdmSessionId session_id;
|
||||
wvutil::FileSystem file_system;
|
||||
std::unique_ptr<wvutil::FileSystem> file_system(CreateTestFileSystem());
|
||||
|
||||
if (config_.provisioning_server() == "fake") {
|
||||
LOGD("Using fake provisioning server.");
|
||||
|
||||
TestCdmEngine cdm_engine(&file_system,
|
||||
TestCdmEngine cdm_engine(file_system.get(),
|
||||
std::shared_ptr<EngineMetrics>(new EngineMetrics));
|
||||
FakeProvisioningServer server;
|
||||
CdmResponseType result = cdm_engine.GetProvisioningRequest(
|
||||
@@ -349,7 +349,7 @@ void WvCdmTestBase::Provision() {
|
||||
EXPECT_EQ(NO_ERROR, result);
|
||||
} else {
|
||||
// TODO(fredgc): provision for different SPOIDs.
|
||||
TestCdmEngine cdm_engine(&file_system,
|
||||
TestCdmEngine cdm_engine(file_system.get(),
|
||||
std::shared_ptr<EngineMetrics>(new EngineMetrics));
|
||||
|
||||
CdmResponseType result = cdm_engine.GetProvisioningRequest(
|
||||
@@ -424,11 +424,11 @@ void WvCdmTestBase::Provision() {
|
||||
// that certificate from the provisioning request.
|
||||
void WvCdmTestBase::EnsureProvisioned() {
|
||||
CdmSessionId session_id;
|
||||
wvutil::FileSystem file_system;
|
||||
std::unique_ptr<wvutil::FileSystem> file_system(CreateTestFileSystem());
|
||||
// OpenSession will check if a DRM certificate exists, while
|
||||
// GenerateKeyRequest will actually load the wrapped private key.
|
||||
// Either may return a NEED_PROVISIONING error, so both have to be checked.
|
||||
TestCdmEngine cdm_engine(&file_system,
|
||||
TestCdmEngine cdm_engine(file_system.get(),
|
||||
std::shared_ptr<EngineMetrics>(new EngineMetrics));
|
||||
CdmResponseType status = cdm_engine.OpenSession(config_.key_system(), nullptr,
|
||||
nullptr, &session_id);
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include "cdm_engine.h"
|
||||
#include "config_test_env.h"
|
||||
#include "create_test_file_system.h"
|
||||
#include "crypto_session.h"
|
||||
#include "metrics_collections.h"
|
||||
#include "oemcrypto_types.h"
|
||||
@@ -92,11 +93,12 @@ class TestCdmEngine : public CdmEngine {
|
||||
class WvCdmTestBaseWithEngine : public WvCdmTestBase {
|
||||
public:
|
||||
WvCdmTestBaseWithEngine()
|
||||
: dummy_engine_metrics_(new metrics::EngineMetrics()),
|
||||
cdm_engine_(&file_system_, dummy_engine_metrics_) {}
|
||||
: file_system_(CreateTestFileSystem()),
|
||||
dummy_engine_metrics_(new metrics::EngineMetrics()),
|
||||
cdm_engine_(file_system_.get(), dummy_engine_metrics_) {}
|
||||
|
||||
protected:
|
||||
wvutil::FileSystem file_system_;
|
||||
std::unique_ptr<wvutil::FileSystem> file_system_;
|
||||
std::shared_ptr<metrics::EngineMetrics> dummy_engine_metrics_;
|
||||
TestCdmEngine cdm_engine_;
|
||||
};
|
||||
|
||||
@@ -19,6 +19,7 @@ LOCAL_MODULE_TAGS := tests
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
./cdm_coverage_main.cpp \
|
||||
./create_test_file_system.cpp \
|
||||
../core/test/buffer_reader_test.cpp \
|
||||
../core/test/config_test_env.cpp \
|
||||
../core/test/device_files_unittest.cpp \
|
||||
|
||||
7
libwvdrmengine/cdm/test/create_test_file_system.cpp
Normal file
7
libwvdrmengine/cdm/test/create_test_file_system.cpp
Normal file
@@ -0,0 +1,7 @@
|
||||
// Copyright 2022 Google LLC. All Rights Reserved. This file and proprietary
|
||||
// source code may only be used and distributed under the Widevine License
|
||||
// Agreement.
|
||||
|
||||
#include "create_test_file_system.h"
|
||||
|
||||
wvutil::FileSystem* CreateTestFileSystem() { return new wvutil::FileSystem(); }
|
||||
@@ -23,6 +23,7 @@ LOCAL_MODULE_TAGS := tests
|
||||
LOCAL_SRC_FILES := \
|
||||
$(test_main) \
|
||||
$(test_src_dir)/$(test_name).cpp \
|
||||
./create_test_file_system.cpp \
|
||||
../core/test/config_test_env.cpp \
|
||||
../core/test/fake_provisioning_server.cpp \
|
||||
../core/test/http_socket.cpp \
|
||||
|
||||
@@ -22,6 +22,7 @@ LOCAL_MODULE_TAGS := tests
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
$(test_src_dir)/$(test_name).cpp \
|
||||
./create_test_file_system.cpp \
|
||||
../core/test/config_test_env.cpp \
|
||||
../core/test/fake_provisioning_server.cpp \
|
||||
../core/test/http_socket.cpp \
|
||||
|
||||
Reference in New Issue
Block a user