/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include // IWYU pragma: keep #include #include #include #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 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; }