indexcopytosourcelist_test.cc 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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 <gtest/gtest.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*/) APT_OVERRIDE { return false; }
  15. bool RewriteEntry(FileFd & /*Target*/, std::string const &/*File*/) APT_OVERRIDE { return false; }
  16. const char *GetFileName() APT_OVERRIDE { return NULL; }
  17. const char *Type() APT_OVERRIDE { return NULL; }
  18. };
  19. TEST(IndexCopyTest, ConvertToSourceList)
  20. {
  21. NoCopy ic;
  22. std::string const CD("/media/cdrom/");
  23. char const * Releases[] = { "unstable", "wheezy-updates", NULL };
  24. char const * Components[] = { "main", "non-free", NULL };
  25. for (char const ** Release = Releases; *Release != NULL; ++Release)
  26. {
  27. SCOPED_TRACE(std::string("Release ") + *Release);
  28. for (char const ** Component = Components; *Component != NULL; ++Component)
  29. {
  30. SCOPED_TRACE(std::string("Component ") + *Component);
  31. std::string const Path = std::string("dists/") + *Release + "/" + *Component + "/";
  32. std::string const Binary = Path + "binary-";
  33. std::string const A = Binary + "armel/";
  34. std::string const B = Binary + "mips/";
  35. std::string const C = Binary + "kfreebsd-mips/";
  36. std::string const S = Path + "source/";
  37. std::string const List = std::string(*Release) + " " + *Component;
  38. _config->Clear("APT");
  39. APT::Configuration::getArchitectures(false);
  40. EXPECT_EQ(A, ic.ConvertToSourceList("/media/cdrom/", CD + A));
  41. EXPECT_EQ(B, ic.ConvertToSourceList("/media/cdrom/", CD + B));
  42. EXPECT_EQ(C, ic.ConvertToSourceList("/media/cdrom/", CD + C));
  43. EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S));
  44. _config->Clear("APT");
  45. _config->Set("APT::Architecture", "mips");
  46. _config->Set("APT::Architectures::", "mips");
  47. APT::Configuration::getArchitectures(false);
  48. EXPECT_EQ(A, ic.ConvertToSourceList("/media/cdrom/", CD + A));
  49. EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + B));
  50. EXPECT_EQ(C, ic.ConvertToSourceList("/media/cdrom/", CD + C));
  51. EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S));
  52. _config->Clear("APT");
  53. _config->Set("APT::Architecture", "kfreebsd-mips");
  54. _config->Set("APT::Architectures::", "kfreebsd-mips");
  55. APT::Configuration::getArchitectures(false);
  56. EXPECT_EQ(A, ic.ConvertToSourceList("/media/cdrom/", CD + A));
  57. EXPECT_EQ(B, ic.ConvertToSourceList("/media/cdrom/", CD + B));
  58. EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + C));
  59. EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S));
  60. _config->Clear("APT");
  61. _config->Set("APT::Architecture", "armel");
  62. _config->Set("APT::Architectures::", "armel");
  63. APT::Configuration::getArchitectures(false);
  64. EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + A));
  65. EXPECT_EQ(B, ic.ConvertToSourceList("/media/cdrom/", CD + B));
  66. EXPECT_EQ(C, ic.ConvertToSourceList("/media/cdrom/", CD + C));
  67. EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S));
  68. _config->Clear("APT");
  69. _config->Set("APT::Architecture", "armel");
  70. _config->Set("APT::Architectures::", "armel");
  71. _config->Set("APT::Architectures::", "mips");
  72. APT::Configuration::getArchitectures(false);
  73. EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + A));
  74. EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + B));
  75. EXPECT_EQ(C, ic.ConvertToSourceList("/media/cdrom/", CD + C));
  76. EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S));
  77. }
  78. }
  79. }