BIND 10 trac2850_2, updated. eda6761d2607385c10bb6a9e8bdc5c1209405093 [2850] Add CREATE over corrupted file testcase
BIND 10 source code commits
bind10-changes at lists.isc.org
Thu May 9 09:28:30 UTC 2013
The branch, trac2850_2 has been updated
via eda6761d2607385c10bb6a9e8bdc5c1209405093 (commit)
via 8d9a833a05515867753578af948c537a4d8ad127 (commit)
from 14a35130eaf81efdc8483fdfb1b8eabbc97653be (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit eda6761d2607385c10bb6a9e8bdc5c1209405093
Author: Mukund Sivaraman <muks at isc.org>
Date: Thu May 9 14:58:15 2013 +0530
[2850] Add CREATE over corrupted file testcase
commit 8d9a833a05515867753578af948c537a4d8ad127
Author: Mukund Sivaraman <muks at isc.org>
Date: Thu May 9 14:50:40 2013 +0530
[2850] Check that the old data is still available after the corruption tests
-----------------------------------------------------------------------
Summary of changes:
.../memory/zone_table_segment_mapped_unittest.cc | 52 ++++++++++++++++++++
1 file changed, 52 insertions(+)
-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/tests/memory/zone_table_segment_mapped_unittest.cc b/src/lib/datasrc/tests/memory/zone_table_segment_mapped_unittest.cc
index 47b122d..d7bffa1 100644
--- a/src/lib/datasrc/tests/memory/zone_table_segment_mapped_unittest.cc
+++ b/src/lib/datasrc/tests/memory/zone_table_segment_mapped_unittest.cc
@@ -426,6 +426,10 @@ TEST_F(ZoneTableSegmentMappedTest, resetFailedCorruptedChecksum) {
EXPECT_THROW({
ztable_segment_->reset(ZoneTableSegment::READ_WRITE, config_params2_);
}, ResetFailed);
+
+ // Check for the old data in the segment to make sure it is still
+ // available and correct.
+ EXPECT_TRUE(verifyData(ztable_segment_->getMemorySegment()));
}
TEST_F(ZoneTableSegmentMappedTest, resetFailedMissingChecksum) {
@@ -446,6 +450,10 @@ TEST_F(ZoneTableSegmentMappedTest, resetFailedMissingChecksum) {
EXPECT_THROW({
ztable_segment_->reset(ZoneTableSegment::READ_ONLY, config_params2_);
}, ResetFailed);
+
+ // Check for the old data in the segment to make sure it is still
+ // available and correct.
+ EXPECT_TRUE(verifyData(ztable_segment_->getMemorySegment()));
}
TEST_F(ZoneTableSegmentMappedTest, resetFailedMissingHeader) {
@@ -466,6 +474,50 @@ TEST_F(ZoneTableSegmentMappedTest, resetFailedMissingHeader) {
EXPECT_THROW({
ztable_segment_->reset(ZoneTableSegment::READ_ONLY, config_params2_);
}, ResetFailed);
+
+ // Check for the old data in the segment to make sure it is still
+ // available and correct.
+ EXPECT_TRUE(verifyData(ztable_segment_->getMemorySegment()));
+}
+
+TEST_F(ZoneTableSegmentMappedTest, resetCreateOverCorruptedFile) {
+ setupMappedFiles();
+
+ // Corrupt mapped file 1.
+ scoped_ptr<MemorySegmentMapped> segment
+ (new MemorySegmentMapped(mapped_file,
+ MemorySegmentMapped::OPEN_OR_CREATE));
+ EXPECT_TRUE(verifyData(*segment));
+ corruptChecksum(*segment);
+ segment.reset();
+
+ // Resetting mapped file 1 in CREATE mode over a corrupted file
+ // should pass.
+ EXPECT_NO_THROW(ztable_segment_->reset(ZoneTableSegment::CREATE,
+ config_params_));
+
+ // Check for the old data in the segment. It should not be present
+ // (as we opened the segment in CREATE mode).
+ EXPECT_FALSE(verifyData(ztable_segment_->getMemorySegment()));
+
+ // Now try the same with missing checksum.
+ setupMappedFiles();
+
+ // Corrupt mapped file 1.
+ segment.reset(new MemorySegmentMapped(mapped_file,
+ MemorySegmentMapped::OPEN_OR_CREATE));
+ EXPECT_TRUE(verifyData(*segment));
+ deleteChecksum(*segment);
+ segment.reset();
+
+ // Resetting mapped file 1 in CREATE mode over a file missing
+ // checksum should pass.
+ EXPECT_NO_THROW(ztable_segment_->reset(ZoneTableSegment::CREATE,
+ config_params_));
+
+ // Check for the old data in the segment. It should not be present
+ // (as we opened the segment in CREATE mode).
+ EXPECT_FALSE(verifyData(ztable_segment_->getMemorySegment()));
}
TEST_F(ZoneTableSegmentMappedTest, resetHeaderUninitialized) {
More information about the bind10-changes
mailing list