configuration_test.cc 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. #include <apt-pkg/configuration.h>
  2. #include <string>
  3. #include <vector>
  4. #include "assert.h"
  5. int main() {
  6. Configuration Cnf;
  7. std::vector<std::string> fds;
  8. Cnf.Set("APT::Keep-Fds::",28);
  9. Cnf.Set("APT::Keep-Fds::",17);
  10. Cnf.Set("APT::Keep-Fds::2",47);
  11. Cnf.Set("APT::Keep-Fds::","broken");
  12. fds = Cnf.FindVector("APT::Keep-Fds");
  13. equals(fds[0], "28");
  14. equals(fds[1], "17");
  15. equals(fds[2], "47");
  16. equals(fds[3], "broken");
  17. equals(fds.size(), 4);
  18. equals(Cnf.Exists("APT::Keep-Fds::2"), true);
  19. equals(Cnf.Find("APT::Keep-Fds::2"), "47");
  20. equals(Cnf.FindI("APT::Keep-Fds::2"), 47);
  21. equals(Cnf.Exists("APT::Keep-Fds::3"), false);
  22. equals(Cnf.Find("APT::Keep-Fds::3"), "");
  23. equals(Cnf.FindI("APT::Keep-Fds::3", 56), 56);
  24. equals(Cnf.Find("APT::Keep-Fds::3", "not-set"), "not-set");
  25. Cnf.Clear("APT::Keep-Fds::2");
  26. fds = Cnf.FindVector("APT::Keep-Fds");
  27. equals(fds[0], "28");
  28. equals(fds[1], "17");
  29. equals(fds[2], "");
  30. equals(fds[3], "broken");
  31. equals(fds.size(), 4);
  32. equals(Cnf.Exists("APT::Keep-Fds::2"), true);
  33. Cnf.Clear("APT::Keep-Fds",28);
  34. fds = Cnf.FindVector("APT::Keep-Fds");
  35. equals(fds[0], "17");
  36. equals(fds[1], "");
  37. equals(fds[2], "broken");
  38. equals(fds.size(), 3);
  39. Cnf.Clear("APT::Keep-Fds","");
  40. equals(Cnf.Exists("APT::Keep-Fds::2"), false);
  41. Cnf.Clear("APT::Keep-Fds",17);
  42. Cnf.Clear("APT::Keep-Fds","broken");
  43. fds = Cnf.FindVector("APT::Keep-Fds");
  44. equals(fds.empty(), true);
  45. Cnf.Set("APT::Keep-Fds::",21);
  46. Cnf.Set("APT::Keep-Fds::",42);
  47. fds = Cnf.FindVector("APT::Keep-Fds");
  48. equals(fds[0], "21");
  49. equals(fds[1], "42");
  50. equals(fds.size(), 2);
  51. Cnf.Clear("APT::Keep-Fds");
  52. fds = Cnf.FindVector("APT::Keep-Fds");
  53. equals(fds.empty(), true);
  54. Cnf.CndSet("APT::Version", 42);
  55. Cnf.CndSet("APT::Version", "66");
  56. equals(Cnf.Find("APT::Version"), "42");
  57. equals(Cnf.FindI("APT::Version"), 42);
  58. equals(Cnf.Find("APT::Version", "33"), "42");
  59. equals(Cnf.FindI("APT::Version", 33), 42);
  60. equals(Cnf.Find("APT2::Version", "33"), "33");
  61. equals(Cnf.FindI("APT2::Version", 33), 33);
  62. equals(Cnf.FindFile("Dir::State"), "");
  63. equals(Cnf.FindFile("Dir::Aptitude::State"), "");
  64. Cnf.Set("Dir", "/srv/sid");
  65. equals(Cnf.FindFile("Dir::State"), "");
  66. Cnf.Set("Dir::State", "var/lib/apt");
  67. Cnf.Set("Dir::Aptitude::State", "var/lib/aptitude");
  68. equals(Cnf.FindFile("Dir::State"), "/srv/sid/var/lib/apt");
  69. equals(Cnf.FindFile("Dir::Aptitude::State"), "/srv/sid/var/lib/aptitude");
  70. Cnf.Set("RootDir", "/");
  71. equals(Cnf.FindFile("Dir::State"), "/srv/sid/var/lib/apt");
  72. equals(Cnf.FindFile("Dir::Aptitude::State"), "/srv/sid/var/lib/aptitude");
  73. Cnf.Set("RootDir", "//./////.////");
  74. equals(Cnf.FindFile("Dir::State"), "/srv/sid/var/lib/apt");
  75. equals(Cnf.FindFile("Dir::Aptitude::State"), "/srv/sid/var/lib/aptitude");
  76. Cnf.Set("RootDir", "/rootdir");
  77. equals(Cnf.FindFile("Dir::State"), "/rootdir/srv/sid/var/lib/apt");
  78. equals(Cnf.FindFile("Dir::Aptitude::State"), "/rootdir/srv/sid/var/lib/aptitude");
  79. Cnf.Set("RootDir", "/rootdir/");
  80. equals(Cnf.FindFile("Dir::State"), "/rootdir/srv/sid/var/lib/apt");
  81. equals(Cnf.FindFile("Dir::Aptitude::State"), "/rootdir/srv/sid/var/lib/aptitude");
  82. Cnf.Set("Dir::State", "/dev/null");
  83. Cnf.Set("Dir::State::lists", "lists/");
  84. equals(Cnf.FindDir("Dir::State"), "/rootdir/dev/null");
  85. equals(Cnf.FindDir("Dir::State::lists"), "/rootdir/dev/null");
  86. Cnf.Set("Moo::Bar", "1");
  87. Cnf.Clear();
  88. equals(Cnf.Find("Moo::Bar"), "");
  89. std::vector<std::string> vec = Cnf.FindVector("Test::Vector", "");
  90. equals(vec.size(), 0);
  91. vec = Cnf.FindVector("Test::Vector", "foo");
  92. equals(vec.size(), 1);
  93. equals(vec[0], "foo");
  94. vec = Cnf.FindVector("Test::Vector", "foo,bar");
  95. equals(vec.size(), 2);
  96. equals(vec[0], "foo");
  97. equals(vec[1], "bar");
  98. Cnf.Set("Test::Vector::", "baz");
  99. Cnf.Set("Test::Vector::", "bob");
  100. Cnf.Set("Test::Vector::", "dob");
  101. vec = Cnf.FindVector("Test::Vector");
  102. equals(vec.size(), 3);
  103. equals(vec[0], "baz");
  104. equals(vec[1], "bob");
  105. equals(vec[2], "dob");
  106. vec = Cnf.FindVector("Test::Vector", "foo,bar");
  107. equals(vec.size(), 3);
  108. equals(vec[0], "baz");
  109. equals(vec[1], "bob");
  110. equals(vec[2], "dob");
  111. Cnf.Set("Test::Vector", "abel,bravo");
  112. vec = Cnf.FindVector("Test::Vector", "foo,bar");
  113. equals(vec.size(), 2);
  114. equals(vec[0], "abel");
  115. equals(vec[1], "bravo");
  116. //FIXME: Test for configuration file parsing;
  117. // currently only integration/ tests test them implicitly
  118. return 0;
  119. }