// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.
-#include "zone_updater.h"
+#include "zone_reloader.h"
#include "zone_data.h"
#include "zone_table_segment.h"
namespace datasrc {
namespace memory {
-ZoneUpdaterLocal::ZoneUpdaterLocal(ZoneTableSegment* segment,
- const LoadAction& load_action,
- const InstallAction& install_action,
- const dns::Name& origin,
- const dns::RRClass& rrclass) :
+ZoneReloaderLocal::ZoneReloaderLocal(ZoneTableSegment* segment,
+ const LoadAction& load_action,
+ const InstallAction& install_action,
+ const dns::Name& origin,
+ const dns::RRClass& rrclass) :
segment_(segment),
load_action_(load_action),
install_action_(install_action),
data_ready_(false)
{}
-ZoneUpdaterLocal::~ZoneUpdaterLocal() {
+ZoneReloaderLocal::~ZoneReloaderLocal() {
// Clean up everything there might be left if someone forgot, just
// in case. Or should we assert instead?
cleanup();
}
void
-ZoneUpdaterLocal::load() {
+ZoneReloaderLocal::load() {
if (loaded_) {
isc_throw(isc::Unexpected, "Trying to load twice");
}
}
void
-ZoneUpdaterLocal::install() {
+ZoneReloaderLocal::install() {
if (!data_ready_) {
isc_throw(isc::Unexpected, "No data to install");
}
}
void
-ZoneUpdaterLocal::cleanup() {
+ZoneReloaderLocal::cleanup() {
// We eat the data (if any) now.
data_ready_ = false;
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.
-#include <datasrc/memory/zone_updater.h>
+#include <datasrc/memory/zone_reloader.h>
#include <datasrc/memory/zone_table_segment.h>
#include <datasrc/memory/zone_data.h>
class TestException {};
-class ZoneUpdaterLocalTest : public ::testing::Test {
+class ZoneReloaderLocalTest : public ::testing::Test {
public:
- ZoneUpdaterLocalTest() :
+ ZoneReloaderLocalTest() :
// FIXME: The NullElement probably isn't the best one, but we don't
// know how the config will look, so it just fills the argument
// (which is currently ignored)
segment_(ZoneTableSegment::create(isc::data::NullElement())),
- updater_(new
- ZoneUpdaterLocal(segment_.get(),
- bind(&ZoneUpdaterLocalTest::loadAction, this, _1),
- bind(&ZoneUpdaterLocalTest::installAction, this,
- _1, _2),
- Name("example.org"), RRClass::IN())),
+ reloader_(new
+ ZoneReloaderLocal(segment_.get(),
+ bind(&ZoneReloaderLocalTest::loadAction, this,
+ _1),
+ bind(&ZoneReloaderLocalTest::installAction, this,
+ _1, _2),
+ Name("example.org"), RRClass::IN())),
load_called_(false),
install_called_(false),
load_throw_(false),
install_throw_(false)
{}
void TearDown() {
- // Release the updater
- updater_.reset();
+ // Release the reloader
+ reloader_.reset();
// And check we freed all memory
EXPECT_TRUE(segment_->getMemorySegment().allMemoryDeallocated());
}
protected:
scoped_ptr<ZoneTableSegment> segment_;
- scoped_ptr<ZoneUpdaterLocal> updater_;
+ scoped_ptr<ZoneReloaderLocal> reloader_;
bool load_called_;
bool install_called_;
bool load_throw_;
// We call it the way we are supposed to, check every callback is called in the
// right moment.
-TEST_F(ZoneUpdaterLocalTest, correctCall) {
+TEST_F(ZoneReloaderLocalTest, correctCall) {
// Nothing called before we call it
EXPECT_FALSE(load_called_);
EXPECT_FALSE(install_called_);
// Just the load gets called now
- EXPECT_NO_THROW(updater_->load());
+ EXPECT_NO_THROW(reloader_->load());
EXPECT_TRUE(load_called_);
EXPECT_FALSE(install_called_);
load_called_ = false;
- EXPECT_NO_THROW(updater_->install());
+ EXPECT_NO_THROW(reloader_->install());
EXPECT_FALSE(load_called_);
EXPECT_TRUE(install_called_);
// We don't check explicitly how this works, but call it to free memory. If
// everything is freed should be checked inside the TearDown.
- EXPECT_NO_THROW(updater_->cleanup());
+ EXPECT_NO_THROW(reloader_->cleanup());
}
-TEST_F(ZoneUpdaterLocalTest, loadTwice) {
+TEST_F(ZoneReloaderLocalTest, loadTwice) {
// Load it the first time
- EXPECT_NO_THROW(updater_->load());
+ EXPECT_NO_THROW(reloader_->load());
EXPECT_TRUE(load_called_);
EXPECT_FALSE(install_called_);
load_called_ = false;
// The second time, it should not be possible
- EXPECT_THROW(updater_->load(), isc::Unexpected);
+ EXPECT_THROW(reloader_->load(), isc::Unexpected);
EXPECT_FALSE(load_called_);
EXPECT_FALSE(install_called_);
// The object should not be damaged, try installing and clearing now
- EXPECT_NO_THROW(updater_->install());
+ EXPECT_NO_THROW(reloader_->install());
EXPECT_FALSE(load_called_);
EXPECT_TRUE(install_called_);
// We don't check explicitly how this works, but call it to free memory. If
// everything is freed should be checked inside the TearDown.
- EXPECT_NO_THROW(updater_->cleanup());
+ EXPECT_NO_THROW(reloader_->cleanup());
}
// Try loading after call to install and call to cleanup. Both is
// forbidden.
-TEST_F(ZoneUpdaterLocalTest, loadLater) {
+TEST_F(ZoneReloaderLocalTest, loadLater) {
// Load first, so we can install
- EXPECT_NO_THROW(updater_->load());
- EXPECT_NO_THROW(updater_->install());
+ EXPECT_NO_THROW(reloader_->load());
+ EXPECT_NO_THROW(reloader_->install());
// Reset so we see nothing is called now
install_called_ = load_called_ = false;
- EXPECT_THROW(updater_->load(), isc::Unexpected);
+ EXPECT_THROW(reloader_->load(), isc::Unexpected);
EXPECT_FALSE(load_called_);
EXPECT_FALSE(install_called_);
// Cleanup and try loading again. Still shouldn't work.
- EXPECT_NO_THROW(updater_->cleanup());
+ EXPECT_NO_THROW(reloader_->cleanup());
- EXPECT_THROW(updater_->load(), isc::Unexpected);
+ EXPECT_THROW(reloader_->load(), isc::Unexpected);
EXPECT_FALSE(load_called_);
EXPECT_FALSE(install_called_);
}
// Try calling install at various bad times
-TEST_F(ZoneUpdaterLocalTest, invalidInstall) {
+TEST_F(ZoneReloaderLocalTest, invalidInstall) {
// Nothing loaded yet
- EXPECT_THROW(updater_->install(), isc::Unexpected);
+ EXPECT_THROW(reloader_->install(), isc::Unexpected);
EXPECT_FALSE(load_called_);
EXPECT_FALSE(install_called_);
- EXPECT_NO_THROW(updater_->load());
+ EXPECT_NO_THROW(reloader_->load());
load_called_ = false;
// This install is OK
- EXPECT_NO_THROW(updater_->install());
+ EXPECT_NO_THROW(reloader_->install());
install_called_ = false;
// But we can't call it second time now
- EXPECT_THROW(updater_->install(), isc::Unexpected);
+ EXPECT_THROW(reloader_->install(), isc::Unexpected);
EXPECT_FALSE(load_called_);
EXPECT_FALSE(install_called_);
}
// We check we can clean without installing first and nothing bad
// happens. We also misuse the testcase to check we can't install
// after cleanup.
-TEST_F(ZoneUpdaterLocalTest, cleanWithoutInstall) {
- EXPECT_NO_THROW(updater_->load());
- EXPECT_NO_THROW(updater_->cleanup());
+TEST_F(ZoneReloaderLocalTest, cleanWithoutInstall) {
+ EXPECT_NO_THROW(reloader_->load());
+ EXPECT_NO_THROW(reloader_->cleanup());
EXPECT_TRUE(load_called_);
EXPECT_FALSE(install_called_);
// We cleaned up, no way to install now
- EXPECT_THROW(updater_->install(), isc::Unexpected);
+ EXPECT_THROW(reloader_->install(), isc::Unexpected);
EXPECT_FALSE(install_called_);
}
// Test the case when load callback throws
-TEST_F(ZoneUpdaterLocalTest, loadThrows) {
+TEST_F(ZoneReloaderLocalTest, loadThrows) {
load_throw_ = true;
- EXPECT_THROW(updater_->load(), TestException);
+ EXPECT_THROW(reloader_->load(), TestException);
// We can't install now
- EXPECT_THROW(updater_->install(), isc::Unexpected);
+ EXPECT_THROW(reloader_->install(), isc::Unexpected);
EXPECT_TRUE(load_called_);
EXPECT_FALSE(install_called_);
// But we can cleanup
- EXPECT_NO_THROW(updater_->cleanup());
+ EXPECT_NO_THROW(reloader_->cleanup());
}
// Test we free all our memory even when we throw from install
-TEST_F(ZoneUpdaterLocalTest, installThrows) {
+TEST_F(ZoneReloaderLocalTest, installThrows) {
install_throw_ = true;
- EXPECT_NO_THROW(updater_->load());
+ EXPECT_NO_THROW(reloader_->load());
- EXPECT_THROW(updater_->install(), TestException);
+ EXPECT_THROW(reloader_->install(), TestException);
EXPECT_TRUE(load_called_);
EXPECT_TRUE(install_called_);
// We can't try again
install_throw_ = false;
- EXPECT_THROW(updater_->install(), isc::Unexpected);
+ EXPECT_THROW(reloader_->install(), isc::Unexpected);
// But it is not completely broken
- EXPECT_NO_THROW(updater_->cleanup());
+ EXPECT_NO_THROW(reloader_->cleanup());
}
}