indexcopytosourcelist_test.cc 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #include <config.h>
  2. #include <apt-pkg/configuration.h>
  3. #include <apt-pkg/aptconfiguration.h>
  4. #include <apt-pkg/indexcopy.h>
  5. #include <string>
  6. #include <stdio.h>
  7. #include "assert.h"
  8. class NoCopy : public IndexCopy {
  9. public:
  10. std::string ConvertToSourceList(std::string CD,std::string Path) {
  11. IndexCopy::ConvertToSourceList(CD, Path);
  12. return Path;
  13. }
  14. bool GetFile(std::string &/*Filename*/, unsigned long long &/*Size*/) { return false; }
  15. bool RewriteEntry(FILE * /*Target*/, std::string /*File*/) { return false; }
  16. const char *GetFileName() { return NULL; }
  17. const char *Type() { return NULL; }
  18. };
  19. int main() {
  20. NoCopy ic;
  21. std::string const CD("/media/cdrom/");
  22. char const * Releases[] = { "unstable", "wheezy-updates", NULL };
  23. char const * Components[] = { "main", "non-free", NULL };
  24. for (char const ** Release = Releases; *Release != NULL; ++Release) {
  25. for (char const ** Component = Components; *Component != NULL; ++Component) {
  26. std::string const Path = std::string("dists/") + *Release + "/" + *Component + "/";
  27. std::string const Binary = Path + "binary-";
  28. std::string const A = Binary + "armel/";
  29. std::string const B = Binary + "mips/";
  30. std::string const C = Binary + "kfreebsd-mips/";
  31. std::string const S = Path + "source/";
  32. std::string const List = std::string(*Release) + " " + *Component;
  33. _config->Clear("APT");
  34. APT::Configuration::getArchitectures(false);
  35. equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), A);
  36. equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), B);
  37. equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C);
  38. equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List);
  39. _config->Clear("APT");
  40. _config->Set("APT::Architecture", "mips");
  41. _config->Set("APT::Architectures::", "mips");
  42. APT::Configuration::getArchitectures(false);
  43. equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), A);
  44. equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), List);
  45. equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C);
  46. equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List);
  47. _config->Clear("APT");
  48. _config->Set("APT::Architecture", "kfreebsd-mips");
  49. _config->Set("APT::Architectures::", "kfreebsd-mips");
  50. APT::Configuration::getArchitectures(false);
  51. equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), A);
  52. equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), B);
  53. equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), List);
  54. equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List);
  55. _config->Clear("APT");
  56. _config->Set("APT::Architecture", "armel");
  57. _config->Set("APT::Architectures::", "armel");
  58. APT::Configuration::getArchitectures(false);
  59. equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), List);
  60. equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), B);
  61. equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C);
  62. equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List);
  63. _config->Clear("APT");
  64. _config->Set("APT::Architecture", "armel");
  65. _config->Set("APT::Architectures::", "armel");
  66. _config->Set("APT::Architectures::", "mips");
  67. APT::Configuration::getArchitectures(false);
  68. equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), List);
  69. equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), List);
  70. equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C);
  71. equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List);
  72. }
  73. }
  74. return 0;
  75. }