From: Mukund Sivaraman Date: Wed, 3 Oct 2012 04:51:17 +0000 (+0530) Subject: [2206] Use a fixture in tests X-Git-Tag: trac2351_base~22 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a6748eee324ebb4cf4ba99aa225df51d71458c81;p=thirdparty%2Fkea.git [2206] Use a fixture in tests --- diff --git a/src/lib/datasrc/tests/memory/zone_table_segment_unittest.cc b/src/lib/datasrc/tests/memory/zone_table_segment_unittest.cc index f8c58fe9e1..f023b6b20d 100644 --- a/src/lib/datasrc/tests/memory/zone_table_segment_unittest.cc +++ b/src/lib/datasrc/tests/memory/zone_table_segment_unittest.cc @@ -22,40 +22,52 @@ using namespace std; namespace { -TEST(ZoneTableSegment, create) { - const ElementPtr config = Element::fromJSON("{}"); - ZoneTableSegment* seg = ZoneTableSegment::create((*config.get())); +class ZoneTableSegmentTest : public ::testing::Test { +protected: + ZoneTableSegmentTest() : + config_(Element::fromJSON("{}")), + segment_(ZoneTableSegment::create((*config_.get()))) + {} - // By default, a local zone table segment is created. - EXPECT_NE(static_cast(NULL), seg); + ~ZoneTableSegmentTest() { + if (segment_ != NULL) { + ZoneTableSegment::destroy(segment_); + } + } + + void TearDown() { + // Catch any future leaks here. + const MemorySegment& mem_sgmt = segment_->getMemorySegment(); + EXPECT_TRUE(mem_sgmt.allMemoryDeallocated()); + + ZoneTableSegment::destroy(segment_); + segment_ = NULL; + } + + const ElementPtr config_; + ZoneTableSegment* segment_; +}; - ZoneTableSegment::destroy(seg); -} -TEST(ZoneTableSegment, getHeader) { - const ElementPtr config = Element::fromJSON("{}"); - ZoneTableSegment* seg = ZoneTableSegment::create((*config.get())); +TEST_F(ZoneTableSegmentTest, create) { + // By default, a local zone table segment is created. + EXPECT_NE(static_cast(NULL), segment_); +} +TEST_F(ZoneTableSegmentTest, getHeader) { // getHeader() should never return NULL. - ZoneTableHeader* header = seg->getHeader(); + ZoneTableHeader* header = segment_->getHeader(); EXPECT_NE(static_cast(NULL), header); // The zone table is unset. ZoneTable* table = header->getTable(); EXPECT_EQ(static_cast(NULL), table); - - ZoneTableSegment::destroy(seg); } -TEST(ZoneTableSegment, getMemorySegment) { +TEST_F(ZoneTableSegmentTest, getMemorySegment) { // This doesn't do anything fun except test the API. - const ElementPtr config = Element::fromJSON("{}"); - ZoneTableSegment* seg = ZoneTableSegment::create((*config.get())); - - MemorySegment& mem_sgmt = seg->getMemorySegment(); + MemorySegment& mem_sgmt = segment_->getMemorySegment(); EXPECT_TRUE(mem_sgmt.allMemoryDeallocated()); - - ZoneTableSegment::destroy(seg); } } // anonymous namespace