Files
ce_cdm/core/test/reboot_test.h
John "Juce" Bruce 694cf6fb25 Source release 17.1.0
2022-07-07 17:14:31 -07:00

61 lines
2.1 KiB
C++

// Copyright 2021 Google LLC. All Rights Reserved. This file and proprietary
// source code may only be used and distributed under the Widevine License
// Agreement.
#ifndef WVCDM_CORE_REBOOT_TEST_H_
#define WVCDM_CORE_REBOOT_TEST_H_
#include <map>
#include <string>
#include <vector>
#include <gtest/gtest.h>
#include "file_store.h"
#include "test_base.h"
namespace wvcdm {
class RebootTest : public WvCdmTestBaseWithEngine {
public:
// The main test driver may inject the file system for saving persistent test
// data.
static void set_file_system(wvutil::FileSystem* file_system) {
file_system_ = file_system;
}
// Dump a map to a std string in an almost human readable way so that the map
// can be rebuilt using ParseDump below. The keys in the map must be standard
// identifier strings, which means no special characters or whitespace. By
// "almost human readable", we mean that a human debugging the dump will be
// able to find the keys, and see the values if they are printable or see a
// hex dump of the values if they are not.
static std::string DumpData(const std::map<std::string, std::string>& data);
// Parse a dump generated by DumpData and recreate the original data map.
// Returns true on success.
static bool ParseDump(const std::string& dump,
std::map<std::string, std::string>* data);
static int test_pass() { return default_config_->test_pass(); }
// Load a previously saved time. Returns 0 if the value does not exist or
// cannot be parsed.
int64_t LoadTime(const std::string& key);
// Save a time to persistent storage.
void SaveTime(const std::string& key, int64_t time);
protected:
void SetUp() override;
void TearDown() override;
// This is used to store each test's persistent data.
static wvutil::FileSystem* file_system_;
// The persistent data for the current test.
std::map<std::string, std::string> persistent_data_;
// Where to store and restore the persistent data for a single test.
std::string persistent_data_filename_;
};
} // namespace wvcdm
#endif // WVCDM_CORE_REBOOT_TEST_H_