Refresh Manager
This commit is contained in:
49
DRAM/testing/RefreshManager_test.cpp
Normal file
49
DRAM/testing/RefreshManager_test.cpp
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* RefreshManager_test.cpp
|
||||
*
|
||||
* Created on: Mar 6, 2014
|
||||
* Author: jonny
|
||||
*/
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include <gmock/gmock.h>
|
||||
#include "core/RefreshManager.h"
|
||||
|
||||
using ::testing::_;
|
||||
using ::testing::AtLeast;
|
||||
using ::testing::Expectation;
|
||||
|
||||
namespace controller {
|
||||
|
||||
class MockInternalScheduler: public InternalScheduler
|
||||
{
|
||||
public:
|
||||
MOCK_METHOD1(scheduleCommand, void (ScheduledCommand command));
|
||||
};
|
||||
|
||||
TEST(RefreshManager, RefreshIsScheduledAfterStartup)
|
||||
{
|
||||
Configuration config;
|
||||
MockInternalScheduler internalScheduler;
|
||||
|
||||
auto init = ScheduledCommand(Command::Refresh, config.Timings.tREF);
|
||||
|
||||
EXPECT_CALL(internalScheduler, scheduleCommand(init));
|
||||
|
||||
RefreshManager manager(config, internalScheduler);
|
||||
}
|
||||
|
||||
TEST(RefreshManager, FinishedRefreshTriggersNewRefresh)
|
||||
{
|
||||
Configuration config;
|
||||
MockInternalScheduler internalScheduler;
|
||||
|
||||
EXPECT_CALL(internalScheduler, scheduleCommand(_)).Times(2);
|
||||
|
||||
//schedule first refresh in constructor
|
||||
RefreshManager manager(config, internalScheduler);
|
||||
//schedule second refresh in callback (end_refresh)
|
||||
manager.refreshFinished(config.Timings.tREF + config.Timings.tREFA);
|
||||
}
|
||||
|
||||
} /* namespace controller */
|
||||
Reference in New Issue
Block a user