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_client_property_set.h"
|
||||||
#include "cdm_engine.h"
|
#include "cdm_engine.h"
|
||||||
|
#include "create_test_file_system.h"
|
||||||
#include "gmock/gmock.h"
|
#include "gmock/gmock.h"
|
||||||
#include "gtest/gtest.h"
|
#include "gtest/gtest.h"
|
||||||
#include "wv_cdm_event_listener.h"
|
#include "wv_cdm_event_listener.h"
|
||||||
@@ -115,7 +116,7 @@ class MockCdmEngineImpl : public CdmEngine {
|
|||||||
class WvCdmEngineMetricsImplTest : public ::testing::Test {
|
class WvCdmEngineMetricsImplTest : public ::testing::Test {
|
||||||
public:
|
public:
|
||||||
void SetUp() override {
|
void SetUp() override {
|
||||||
file_system_.reset(new wvutil::FileSystem);
|
file_system_.reset(CreateTestFileSystem());
|
||||||
std::shared_ptr<EngineMetrics> engine_metrics(new EngineMetrics);
|
std::shared_ptr<EngineMetrics> engine_metrics(new EngineMetrics);
|
||||||
test_cdm_metrics_engine_.reset(
|
test_cdm_metrics_engine_.reset(
|
||||||
new CdmEngineMetricsImpl<StrictMock<MockCdmEngineImpl>>(
|
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 <gtest/gtest.h>
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
|
#include <memory>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
|
||||||
|
#include "create_test_file_system.h"
|
||||||
#include "crypto_session.h"
|
#include "crypto_session.h"
|
||||||
#include "properties.h"
|
#include "properties.h"
|
||||||
#include "test_base.h"
|
#include "test_base.h"
|
||||||
@@ -95,8 +97,8 @@ TEST_F(CdmOtaKeyboxTest, TestThatTheBuildFilesWork) { ASSERT_TRUE(true); }
|
|||||||
* should be skipped.
|
* should be skipped.
|
||||||
*/
|
*/
|
||||||
TEST_F(CdmOtaKeyboxTest, BasicTest) {
|
TEST_F(CdmOtaKeyboxTest, BasicTest) {
|
||||||
wvutil::FileSystem file_system;
|
std::unique_ptr<wvutil::FileSystem> file_system(CreateTestFileSystem());
|
||||||
TestCdmEngine cdm_engine(&file_system,
|
TestCdmEngine cdm_engine(file_system.get(),
|
||||||
std::shared_ptr<EngineMetrics>(new EngineMetrics));
|
std::shared_ptr<EngineMetrics>(new EngineMetrics));
|
||||||
// Remove any existing certificate.
|
// Remove any existing certificate.
|
||||||
cdm_engine.Unprovision(kSecurityLevelL1);
|
cdm_engine.Unprovision(kSecurityLevelL1);
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
|
#include "create_test_file_system.h"
|
||||||
#include "license_holder.h"
|
#include "license_holder.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "test_sleep.h"
|
#include "test_sleep.h"
|
||||||
@@ -201,7 +202,7 @@ bool RebootTest::ParseDump(const std::string& dump,
|
|||||||
|
|
||||||
void RebootTest::SetUp() {
|
void RebootTest::SetUp() {
|
||||||
WvCdmTestBase::SetUp();
|
WvCdmTestBase::SetUp();
|
||||||
if (!file_system_) file_system_ = new FileSystem();
|
if (!file_system_) file_system_ = CreateTestFileSystem();
|
||||||
|
|
||||||
const ::testing::TestInfo* const test_info =
|
const ::testing::TestInfo* const test_info =
|
||||||
::testing::UnitTest::GetInstance()->current_test_info();
|
::testing::UnitTest::GetInstance()->current_test_info();
|
||||||
|
|||||||
@@ -324,12 +324,12 @@ void WvCdmTestBase::Provision() {
|
|||||||
std::string cert, wrapped_key;
|
std::string cert, wrapped_key;
|
||||||
|
|
||||||
CdmSessionId session_id;
|
CdmSessionId session_id;
|
||||||
wvutil::FileSystem file_system;
|
std::unique_ptr<wvutil::FileSystem> file_system(CreateTestFileSystem());
|
||||||
|
|
||||||
if (config_.provisioning_server() == "fake") {
|
if (config_.provisioning_server() == "fake") {
|
||||||
LOGD("Using fake provisioning server.");
|
LOGD("Using fake provisioning server.");
|
||||||
|
|
||||||
TestCdmEngine cdm_engine(&file_system,
|
TestCdmEngine cdm_engine(file_system.get(),
|
||||||
std::shared_ptr<EngineMetrics>(new EngineMetrics));
|
std::shared_ptr<EngineMetrics>(new EngineMetrics));
|
||||||
FakeProvisioningServer server;
|
FakeProvisioningServer server;
|
||||||
CdmResponseType result = cdm_engine.GetProvisioningRequest(
|
CdmResponseType result = cdm_engine.GetProvisioningRequest(
|
||||||
@@ -349,7 +349,7 @@ void WvCdmTestBase::Provision() {
|
|||||||
EXPECT_EQ(NO_ERROR, result);
|
EXPECT_EQ(NO_ERROR, result);
|
||||||
} else {
|
} else {
|
||||||
// TODO(fredgc): provision for different SPOIDs.
|
// TODO(fredgc): provision for different SPOIDs.
|
||||||
TestCdmEngine cdm_engine(&file_system,
|
TestCdmEngine cdm_engine(file_system.get(),
|
||||||
std::shared_ptr<EngineMetrics>(new EngineMetrics));
|
std::shared_ptr<EngineMetrics>(new EngineMetrics));
|
||||||
|
|
||||||
CdmResponseType result = cdm_engine.GetProvisioningRequest(
|
CdmResponseType result = cdm_engine.GetProvisioningRequest(
|
||||||
@@ -424,11 +424,11 @@ void WvCdmTestBase::Provision() {
|
|||||||
// that certificate from the provisioning request.
|
// that certificate from the provisioning request.
|
||||||
void WvCdmTestBase::EnsureProvisioned() {
|
void WvCdmTestBase::EnsureProvisioned() {
|
||||||
CdmSessionId session_id;
|
CdmSessionId session_id;
|
||||||
wvutil::FileSystem file_system;
|
std::unique_ptr<wvutil::FileSystem> file_system(CreateTestFileSystem());
|
||||||
// OpenSession will check if a DRM certificate exists, while
|
// OpenSession will check if a DRM certificate exists, while
|
||||||
// GenerateKeyRequest will actually load the wrapped private key.
|
// GenerateKeyRequest will actually load the wrapped private key.
|
||||||
// Either may return a NEED_PROVISIONING error, so both have to be checked.
|
// 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));
|
std::shared_ptr<EngineMetrics>(new EngineMetrics));
|
||||||
CdmResponseType status = cdm_engine.OpenSession(config_.key_system(), nullptr,
|
CdmResponseType status = cdm_engine.OpenSession(config_.key_system(), nullptr,
|
||||||
nullptr, &session_id);
|
nullptr, &session_id);
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
#include "cdm_engine.h"
|
#include "cdm_engine.h"
|
||||||
#include "config_test_env.h"
|
#include "config_test_env.h"
|
||||||
|
#include "create_test_file_system.h"
|
||||||
#include "crypto_session.h"
|
#include "crypto_session.h"
|
||||||
#include "metrics_collections.h"
|
#include "metrics_collections.h"
|
||||||
#include "oemcrypto_types.h"
|
#include "oemcrypto_types.h"
|
||||||
@@ -92,11 +93,12 @@ class TestCdmEngine : public CdmEngine {
|
|||||||
class WvCdmTestBaseWithEngine : public WvCdmTestBase {
|
class WvCdmTestBaseWithEngine : public WvCdmTestBase {
|
||||||
public:
|
public:
|
||||||
WvCdmTestBaseWithEngine()
|
WvCdmTestBaseWithEngine()
|
||||||
: dummy_engine_metrics_(new metrics::EngineMetrics()),
|
: file_system_(CreateTestFileSystem()),
|
||||||
cdm_engine_(&file_system_, dummy_engine_metrics_) {}
|
dummy_engine_metrics_(new metrics::EngineMetrics()),
|
||||||
|
cdm_engine_(file_system_.get(), dummy_engine_metrics_) {}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
wvutil::FileSystem file_system_;
|
std::unique_ptr<wvutil::FileSystem> file_system_;
|
||||||
std::shared_ptr<metrics::EngineMetrics> dummy_engine_metrics_;
|
std::shared_ptr<metrics::EngineMetrics> dummy_engine_metrics_;
|
||||||
TestCdmEngine cdm_engine_;
|
TestCdmEngine cdm_engine_;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ LOCAL_MODULE_TAGS := tests
|
|||||||
|
|
||||||
LOCAL_SRC_FILES := \
|
LOCAL_SRC_FILES := \
|
||||||
./cdm_coverage_main.cpp \
|
./cdm_coverage_main.cpp \
|
||||||
|
./create_test_file_system.cpp \
|
||||||
../core/test/buffer_reader_test.cpp \
|
../core/test/buffer_reader_test.cpp \
|
||||||
../core/test/config_test_env.cpp \
|
../core/test/config_test_env.cpp \
|
||||||
../core/test/device_files_unittest.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 := \
|
LOCAL_SRC_FILES := \
|
||||||
$(test_main) \
|
$(test_main) \
|
||||||
$(test_src_dir)/$(test_name).cpp \
|
$(test_src_dir)/$(test_name).cpp \
|
||||||
|
./create_test_file_system.cpp \
|
||||||
../core/test/config_test_env.cpp \
|
../core/test/config_test_env.cpp \
|
||||||
../core/test/fake_provisioning_server.cpp \
|
../core/test/fake_provisioning_server.cpp \
|
||||||
../core/test/http_socket.cpp \
|
../core/test/http_socket.cpp \
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ LOCAL_MODULE_TAGS := tests
|
|||||||
|
|
||||||
LOCAL_SRC_FILES := \
|
LOCAL_SRC_FILES := \
|
||||||
$(test_src_dir)/$(test_name).cpp \
|
$(test_src_dir)/$(test_name).cpp \
|
||||||
|
./create_test_file_system.cpp \
|
||||||
../core/test/config_test_env.cpp \
|
../core/test/config_test_env.cpp \
|
||||||
../core/test/fake_provisioning_server.cpp \
|
../core/test/fake_provisioning_server.cpp \
|
||||||
../core/test/http_socket.cpp \
|
../core/test/http_socket.cpp \
|
||||||
|
|||||||
Reference in New Issue
Block a user