hyperion.ng/test/TestVersions.cpp

51 lines
1.8 KiB
C++

// STL includes
#include <iostream>
// QT includes
#include <QString>
#include <utils/version.hpp>
using namespace semver;
void test(const QString& a, const QString& b, char exp)
{
semver::version verA (a.toStdString());
semver::version verB (b.toStdString());
std::cout << "[" << a.toStdString() << "] : " << (verA.isValid() ? "" : "not ") << "valid" << std::endl;
std::cout << "[" << b.toStdString() << "] : " << (verB.isValid() ? "" : "not ") << "valid" << std::endl;
if ( verA.isValid() && verB.isValid())
{
std::cout << "[" << a.toStdString() << "] < [" << b.toStdString() << "]: " << (verA < verB) << " " << ((exp == '<') ? ((verA < verB) ? "OK" : "NOK") : "") << std::endl;
std::cout << "[" << a.toStdString() << "] > [" << b.toStdString() << "]: " << (verA > verB) << " " << ((exp == '>') ? ((verA > verB) ? "OK" : "NOK") : "") << std::endl;
std::cout << "[" << a.toStdString() << "] = [" << b.toStdString() << "]: " << (verA == verB) << " " << ((exp == '=') ? ((verA == verB) ? "OK" : "NOK") : "") << std::endl;
}
std::cout << "" << std::endl;
};
int main()
{
test ("2.12.0", "2.12.0", '=');
test ("2.0.0-alpha.11", "2.12.0", '<');
test ("2.11.1", "2.12.0", '<');
test ("2.12.0", "2.12.1", '<');
test ("2.12.0+PR4711", "2.12.0+PR4712", '=');
test ("2.12.0+nighly20211012ac1dad7", "2.12.0+nighly20211012ac1dad8", '=');
test ("2.0.0+nighly20211012ac1dad7", "2.0.12+nighly20211012ac1dad8", '<');
test ("2.0.0-alpha.11+nighly20211012ac1dad7", "2.0.0-alpha.11+nighly20211012ac1dad8", '=');
test ("2.0.0-alpha.11+PR1354", "2.0.0-alpha.11+PR1355", '=');
test ("2.0.0-alpha.11+nighly20211012ac1dad7", "2.0.12+nighly20211012ac1dad8", '<');
test ("2.0.0-alpha.11+nighly20211012ac1dad7", "2.0.12", '<');
test ("2.0.0-alpha-11", "2.12.0", '<');
test ("2.0.0-alpha.10.1", "2.0.0-alpha.10", '>');
return 0;
}