testFindPackageCommand.cxx 2.8 KB

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