Browse Source

Tests: Add cases for cmSystemTools::VersionCompare

David Gobbi 2 years ago
parent
commit
7e730d8f7f
1 changed files with 29 additions and 0 deletions
  1. 29 0
      Tests/CMakeLib/testSystemTools.cxx

+ 29 - 0
Tests/CMakeLib/testSystemTools.cxx

@@ -35,6 +35,35 @@ int testSystemTools(int /*unused*/, char* /*unused*/[])
   cmAssert(cmSystemTools::UpperCase(str) == strupper,
            "cmSystemTools::UpperCase");
 
+  // ----------------------------------------------------------------------
+  // Test cmSystemTools::VersionCompare
+  cmAssert(cmSystemTools::VersionCompareEqual("", ""),
+           "VersionCompareEqual empty string");
+  cmAssert(!cmSystemTools::VersionCompareGreater("", ""),
+           "VersionCompareGreater empty string");
+  cmAssert(cmSystemTools::VersionCompareEqual("1", "1a"),
+           "VersionCompareEqual letters");
+  cmAssert(!cmSystemTools::VersionCompareGreater("1", "1a"),
+           "VersionCompareGreater letters");
+  cmAssert(cmSystemTools::VersionCompareEqual("001", "1"),
+           "VersionCompareEqual leading zeros equal");
+  cmAssert(!cmSystemTools::VersionCompareGreater("001", "1"),
+           "VersionCompareGreater leading zeros equal");
+  cmAssert(!cmSystemTools::VersionCompareEqual("002", "1"),
+           "VersionCompareEqual leading zeros greater");
+  cmAssert(cmSystemTools::VersionCompareGreater("002", "1"),
+           "VersionCompareGreater leading zeros greater");
+  cmAssert(!cmSystemTools::VersionCompareEqual("6.2.1", "6.3.1"),
+           "VersionCompareEqual components less");
+  cmAssert(!cmSystemTools::VersionCompareGreater("6.2.1", "6.3.1"),
+           "VersionCompareGreater components less");
+  cmAssert(!cmSystemTools::VersionCompareEqual("6.2.1", "6.2"),
+           "VersionCompareEqual different length");
+  cmAssert(cmSystemTools::VersionCompareGreater("6.2.1", "6.2"),
+           "VersionCompareGreater different length");
+  cmAssert(cmSystemTools::VersionCompareGreater("3.141592653", "3.14159265"),
+           "VersionCompareGreater more digits");
+
   // ----------------------------------------------------------------------
   // Test cmSystemTools::strverscmp
   cmAssert(cmSystemTools::strverscmp("", "") == 0, "strverscmp empty string");