diff options
Diffstat (limited to 'test/libapt/srvrecs_test.cc')
-rw-r--r-- | test/libapt/srvrecs_test.cc | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/test/libapt/srvrecs_test.cc b/test/libapt/srvrecs_test.cc index 7e43cc757..4b63d2ccd 100644 --- a/test/libapt/srvrecs_test.cc +++ b/test/libapt/srvrecs_test.cc @@ -12,20 +12,28 @@ TEST(SrvRecTest, PopFromSrvRecs) // the PopFromSrvRecs() is using a random number so we must // run it a bunch of times to ensure we are not fooled by randomness std::set<std::string> selected; - for(int i=0;i<100;i++) + for(size_t i = 0; i < 100; ++i) { std::vector<SrvRec> Meep; - SrvRec foo = {target:"foo", priority: 20, weight: 0, port: 80}; - Meep.push_back(foo); - - SrvRec bar = {target:"bar", priority: 20, weight: 0, port: 80}; - Meep.push_back(bar); + Meep.emplace_back("foo", 20, 0, 80); + Meep.emplace_back("bar", 20, 0, 80); + Meep.emplace_back("baz", 30, 0, 80); - EXPECT_EQ(Meep.size(), 2); - SrvRec result = PopFromSrvRecs(Meep); + EXPECT_EQ(Meep.size(), 3); + SrvRec const result = PopFromSrvRecs(Meep); selected.insert(result.target); // ensure that pop removed one element + EXPECT_EQ(Meep.size(), 2); + EXPECT_NE(result.target, "baz"); + + SrvRec const result2 = PopFromSrvRecs(Meep); + EXPECT_NE(result.target, result2.target); + EXPECT_NE(result2.target, "baz"); EXPECT_EQ(Meep.size(), 1); + + SrvRec const result3 = PopFromSrvRecs(Meep); + EXPECT_EQ(result3.target, "baz"); + EXPECT_TRUE(Meep.empty()); } // ensure that after enough runs we end up with both selected |