blob: 2c45e65de3daa144d95603e9b1a252f0fd49e120 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "quiche/quic/test_tools/mock_random.h"
#include <string.h>
namespace quic {
namespace test {
using testing::_;
using testing::Invoke;
MockRandom::MockRandom() : MockRandom(0xDEADBEEF) {}
MockRandom::MockRandom(uint32_t base) : base_(base), increment_(0) {
ON_CALL(*this, RandBytes(_, _))
.WillByDefault(Invoke(this, &MockRandom::DefaultRandBytes));
ON_CALL(*this, RandUint64())
.WillByDefault(Invoke(this, &MockRandom::DefaultRandUint64));
ON_CALL(*this, InsecureRandBytes(_, _))
.WillByDefault(Invoke(this, &MockRandom::DefaultInsecureRandBytes));
ON_CALL(*this, InsecureRandUint64())
.WillByDefault(Invoke(this, &MockRandom::DefaultInsecureRandUint64));
}
void MockRandom::DefaultRandBytes(void* data, size_t len) {
memset(data, increment_ + static_cast<uint8_t>('r'), len);
}
uint64_t MockRandom::DefaultRandUint64() { return base_ + increment_; }
void MockRandom::DefaultInsecureRandBytes(void* data, size_t len) {
DefaultRandBytes(data, len);
}
uint64_t MockRandom::DefaultInsecureRandUint64() { return DefaultRandUint64(); }
void MockRandom::ChangeValue() { increment_++; }
void MockRandom::ResetBase(uint32_t base) {
base_ = base;
increment_ = 0;
}
} // namespace test
} // namespace quic