srvrecs_test.cc 885 B

12345678910111213141516171819202122232425262728293031323334
  1. #include <config.h>
  2. #include <apt-pkg/srvrec.h>
  3. #include <string>
  4. #include <iostream>
  5. #include <gtest/gtest.h>
  6. TEST(SrvRecTest, PopFromSrvRecs)
  7. {
  8. // the PopFromSrvRecs() is using a random number so we must
  9. // run it a bunch of times to ensure we are not fooled by randomness
  10. std::set<std::string> selected;
  11. for(int i=0;i<100;i++)
  12. {
  13. std::vector<SrvRec> Meep;
  14. SrvRec foo = {target:"foo", priority: 20, weight: 0, port: 80};
  15. Meep.push_back(foo);
  16. SrvRec bar = {target:"bar", priority: 20, weight: 0, port: 80};
  17. Meep.push_back(bar);
  18. EXPECT_EQ(Meep.size(), 2);
  19. SrvRec result = PopFromSrvRecs(Meep);
  20. selected.insert(result.target);
  21. // ensure that pop removed one element
  22. EXPECT_EQ(Meep.size(), 1);
  23. }
  24. // ensure that after enough runs we end up with both selected
  25. EXPECT_EQ(selected.size(), 2);
  26. }