configuration_test.cc 4.3 KB

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