OEMCrypto v18.3
Updates to OEMCrypto API, OPK, ODK, and unit tests. See the file CHANGELOG.md for details.
This commit is contained in:
@@ -39,9 +39,17 @@ class FileTest : public testing::Test {
|
||||
};
|
||||
|
||||
TEST_F(FileTest, FileExists) {
|
||||
int errno_value = -1;
|
||||
EXPECT_TRUE(file_system_.Exists(wvcdm::test_vectors::kExistentFile));
|
||||
EXPECT_TRUE(
|
||||
file_system_.Exists(wvcdm::test_vectors::kExistentFile, &errno_value));
|
||||
EXPECT_EQ(0, errno_value);
|
||||
EXPECT_TRUE(file_system_.Exists(wvcdm::test_vectors::kExistentDir));
|
||||
|
||||
EXPECT_FALSE(file_system_.Exists(wvcdm::test_vectors::kNonExistentFile));
|
||||
EXPECT_FALSE(
|
||||
file_system_.Exists(wvcdm::test_vectors::kNonExistentFile, &errno_value));
|
||||
EXPECT_EQ(ENOENT, errno_value);
|
||||
EXPECT_FALSE(file_system_.Exists(wvcdm::test_vectors::kNonExistentDir));
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
#include <inttypes.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -53,6 +54,18 @@ void TestSleep::Sleep(unsigned int seconds) {
|
||||
if (callback_ != nullptr) callback_->ElapseTime(milliseconds);
|
||||
}
|
||||
|
||||
void TestSleep::SleepUntil(int64_t desired_time) {
|
||||
SyncFakeClock();
|
||||
const int64_t now = Clock().GetCurrentTime();
|
||||
if (desired_time < now) {
|
||||
LOGE("Test Clock skew sleeping from time %" PRId64 " to %" PRId64, now,
|
||||
desired_time);
|
||||
return;
|
||||
}
|
||||
const unsigned int sleep_time = static_cast<unsigned int>(desired_time - now);
|
||||
TestSleep::Sleep(sleep_time);
|
||||
}
|
||||
|
||||
void TestSleep::SyncFakeClock() {
|
||||
// Syncing can be done by sleeping 0 seconds.
|
||||
Sleep(0);
|
||||
|
||||
@@ -13,7 +13,9 @@ namespace wvutil {
|
||||
|
||||
class TestSleep {
|
||||
public:
|
||||
// The callback is called when the clock should be advanced.
|
||||
// The callback is called when the test clock should be advanced. If the
|
||||
// system uses a real clock, it is used to sync the real and test
|
||||
// clock. Otherwise it is used to simulate sleep in the test clock.
|
||||
class CallBack {
|
||||
public:
|
||||
virtual void ElapseTime(int64_t milliseconds) = 0;
|
||||
@@ -27,6 +29,9 @@ class TestSleep {
|
||||
// callback exists, this calls the callback.
|
||||
static void Sleep(unsigned int seconds);
|
||||
|
||||
// Like sleep, above, except it sleeps until the specified time.
|
||||
static void SleepUntil(int64_t desired_time);
|
||||
|
||||
// If we are using a real clock and a fake clock, then the real clock advances
|
||||
// a little while we are doing work, but the fake one only advances when we
|
||||
// sleep. This function advances the fake clock to be in sync with the real
|
||||
|
||||
Reference in New Issue
Block a user