diff options
author | Michael Vogt <mvo@debian.org> | 2015-08-20 10:40:45 +0200 |
---|---|---|
committer | Michael Vogt <mvo@debian.org> | 2015-08-20 11:41:51 +0200 |
commit | c29dbdffcb6f67812f823f1f844b87320cf6b437 (patch) | |
tree | 41a98cd8af9886a4cf68b68a4034d635b94737b2 /test/libapt | |
parent | 9b70edba6796ebff3935af1cfb5c9bbc98d020b4 (diff) |
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.
Diffstat (limited to 'test/libapt')
-rw-r--r-- | test/libapt/srvrecs_test.cc | 33 |
1 files changed, 33 insertions, 0 deletions
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 <config.h> + +#include <apt-pkg/srvrec.h> + +#include <string> +#include <iostream> + +#include <gtest/gtest.h> + +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++) + { + 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); + + 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); +} |