testFindPackageCommand.cxx 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #include "cmFindPackageCommand.h"
  4. #include <iostream>
  5. #include <string>
  6. #define cmPassed(m) std::cout << "Passed: " << (m) << "\n"
  7. #define cmFailed(m) \
  8. std::cout << "FAILED: " << (m) << "\n"; \
  9. failed = 1
  10. int testFindPackageCommand(int /*unused*/, char* /*unused*/ [])
  11. {
  12. int failed = 0;
  13. // ----------------------------------------------------------------------
  14. // Test cmFindPackage::Sort
  15. std::vector<std::string> testString;
  16. testString.push_back("lib-0.0");
  17. testString.push_back("lib-1.2");
  18. testString.push_back("lib-2.0");
  19. testString.push_back("lib-19.0.1");
  20. testString.push_back("lib-20.01.1");
  21. testString.push_back("lib-20.2.2a");
  22. cmFindPackageCommand::Sort(testString.begin(), testString.end(),
  23. cmFindPackageCommand::Natural,
  24. cmFindPackageCommand::Asc);
  25. if (!(testString[0] == "lib-0.0" && testString[1] == "lib-1.2" &&
  26. testString[2] == "lib-2.0" && testString[3] == "lib-19.0.1" &&
  27. testString[4] == "lib-20.01.1" && testString[5] == "lib-20.2.2a")) {
  28. cmFailed("cmSystemTools::Sort fail with Natural ASC");
  29. }
  30. cmFindPackageCommand::Sort(testString.begin(), testString.end(),
  31. cmFindPackageCommand::Natural,
  32. cmFindPackageCommand::Dec);
  33. if (!(testString[5] == "lib-0.0" && testString[4] == "lib-1.2" &&
  34. testString[3] == "lib-2.0" && testString[2] == "lib-19.0.1" &&
  35. testString[1] == "lib-20.01.1" && testString[0] == "lib-20.2.2a")) {
  36. cmFailed("cmSystemTools::Sort fail with Natural ASC");
  37. }
  38. cmFindPackageCommand::Sort(testString.begin(), testString.end(),
  39. cmFindPackageCommand::Name_order,
  40. cmFindPackageCommand::Dec);
  41. if (!(testString[5] == "lib-0.0" && testString[4] == "lib-1.2" &&
  42. testString[3] == "lib-19.0.1" && testString[2] == "lib-2.0" &&
  43. testString[1] == "lib-20.01.1" && testString[0] == "lib-20.2.2a")) {
  44. cmFailed("cmSystemTools::Sort fail with Name DEC");
  45. }
  46. cmFindPackageCommand::Sort(testString.begin(), testString.end(),
  47. cmFindPackageCommand::Name_order,
  48. cmFindPackageCommand::Asc);
  49. if (!(testString[0] == "lib-0.0" && testString[1] == "lib-1.2" &&
  50. testString[2] == "lib-19.0.1" && testString[3] == "lib-2.0" &&
  51. testString[4] == "lib-20.01.1" && testString[5] == "lib-20.2.2a")) {
  52. cmFailed("cmSystemTools::Sort fail with Natural ASC");
  53. }
  54. if (!failed) {
  55. cmPassed("cmSystemTools::Sort working");
  56. }
  57. return failed;
  58. }