From c29dbdffcb6f67812f823f1f844b87320cf6b437 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 20 Aug 2015 10:40:45 +0200 Subject: Add basic (non weight adjusted) shuffling for SrvRecords selection Also add "Debug::Acquire::SrvRecs" debug option and the option "Acquire::EnableSrvRecods" to allow disabling this lookup. --- test/libapt/srvrecs_test.cc | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 test/libapt/srvrecs_test.cc (limited to 'test/libapt/srvrecs_test.cc') diff --git a/test/libapt/srvrecs_test.cc b/test/libapt/srvrecs_test.cc new file mode 100644 index 000000000..7e43cc757 --- /dev/null +++ b/test/libapt/srvrecs_test.cc @@ -0,0 +1,33 @@ +#include + +#include + +#include +#include + +#include + +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 selected; + for(int i=0;i<100;i++) + { + std::vector 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); + + EXPECT_EQ(Meep.size(), 2); + SrvRec result = PopFromSrvRecs(Meep); + selected.insert(result.target); + // ensure that pop removed one element + EXPECT_EQ(Meep.size(), 1); + } + + // ensure that after enough runs we end up with both selected + EXPECT_EQ(selected.size(), 2); +} -- cgit v1.2.3