configuration_test.cc 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #include <apt-pkg/configuration.h>
  2. #include <string>
  3. #include <vector>
  4. #include "assert.h"
  5. int main(int argc,const char *argv[]) {
  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. //FIXME: Test for configuration file parsing;
  87. // currently only integration/ tests test them implicitly
  88. return 0;
  89. }