| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| file Copyright.txt or https://cmake.org/licensing for details. */ |
| |
| #include <cmConfigure.h> // IWYU pragma: keep |
| |
| #include <iostream> |
| #include <string> |
| #include <vector> |
| |
| #include "cmFindPackageCommand.h" |
| |
| #define cmPassed(m) std::cout << "Passed: " << (m) << "\n" |
| #define cmFailed(m) \ |
| std::cout << "FAILED: " << (m) << "\n"; \ |
| failed = 1 |
| |
| int testFindPackageCommand(int /*unused*/, char* /*unused*/ []) |
| { |
| int failed = 0; |
| |
| // ---------------------------------------------------------------------- |
| // Test cmFindPackage::Sort |
| std::vector<std::string> testString; |
| testString.push_back("lib-0.0"); |
| testString.push_back("lib-1.2"); |
| testString.push_back("lib-2.0"); |
| testString.push_back("lib-19.0.1"); |
| testString.push_back("lib-20.01.1"); |
| testString.push_back("lib-20.2.2a"); |
| |
| cmFindPackageCommand::Sort(testString.begin(), testString.end(), |
| cmFindPackageCommand::Natural, |
| cmFindPackageCommand::Asc); |
| if (!(testString[0] == "lib-0.0" && testString[1] == "lib-1.2" && |
| testString[2] == "lib-2.0" && testString[3] == "lib-19.0.1" && |
| testString[4] == "lib-20.01.1" && testString[5] == "lib-20.2.2a")) { |
| cmFailed("cmSystemTools::Sort fail with Natural ASC"); |
| } |
| |
| cmFindPackageCommand::Sort(testString.begin(), testString.end(), |
| cmFindPackageCommand::Natural, |
| cmFindPackageCommand::Dec); |
| if (!(testString[5] == "lib-0.0" && testString[4] == "lib-1.2" && |
| testString[3] == "lib-2.0" && testString[2] == "lib-19.0.1" && |
| testString[1] == "lib-20.01.1" && testString[0] == "lib-20.2.2a")) { |
| cmFailed("cmSystemTools::Sort fail with Natural ASC"); |
| } |
| |
| cmFindPackageCommand::Sort(testString.begin(), testString.end(), |
| cmFindPackageCommand::Name_order, |
| cmFindPackageCommand::Dec); |
| if (!(testString[5] == "lib-0.0" && testString[4] == "lib-1.2" && |
| testString[3] == "lib-19.0.1" && testString[2] == "lib-2.0" && |
| testString[1] == "lib-20.01.1" && testString[0] == "lib-20.2.2a")) { |
| cmFailed("cmSystemTools::Sort fail with Name DEC"); |
| } |
| |
| cmFindPackageCommand::Sort(testString.begin(), testString.end(), |
| cmFindPackageCommand::Name_order, |
| cmFindPackageCommand::Asc); |
| if (!(testString[0] == "lib-0.0" && testString[1] == "lib-1.2" && |
| testString[2] == "lib-19.0.1" && testString[3] == "lib-2.0" && |
| testString[4] == "lib-20.01.1" && testString[5] == "lib-20.2.2a")) { |
| cmFailed("cmSystemTools::Sort fail with Natural ASC"); |
| } |
| |
| if (!failed) { |
| cmPassed("cmSystemTools::Sort working"); |
| } |
| return failed; |
| } |