indexcopytosourcelist_test.cc 3.4 KB

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