1 //===- VersionTupleTests.cpp - Version Number Handling Tests --------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "llvm/Support/VersionTuple.h" 11 #include "gtest/gtest.h" 12 13 using namespace llvm; 14 15 TEST(VersionTuple, getAsString) { 16 EXPECT_EQ("0", VersionTuple().getAsString()); 17 EXPECT_EQ("1", VersionTuple(1).getAsString()); 18 EXPECT_EQ("1.2", VersionTuple(1, 2).getAsString()); 19 EXPECT_EQ("1.2.3", VersionTuple(1, 2, 3).getAsString()); 20 EXPECT_EQ("1.2.3.4", VersionTuple(1, 2, 3, 4).getAsString()); 21 } 22 23 TEST(VersionTuple, tryParse) { 24 VersionTuple VT; 25 26 EXPECT_FALSE(VT.tryParse("1")); 27 EXPECT_EQ("1", VT.getAsString()); 28 29 EXPECT_FALSE(VT.tryParse("1.2")); 30 EXPECT_EQ("1.2", VT.getAsString()); 31 32 EXPECT_FALSE(VT.tryParse("1.2.3")); 33 EXPECT_EQ("1.2.3", VT.getAsString()); 34 35 EXPECT_FALSE(VT.tryParse("1.2.3.4")); 36 EXPECT_EQ("1.2.3.4", VT.getAsString()); 37 38 EXPECT_TRUE(VT.tryParse("")); 39 EXPECT_TRUE(VT.tryParse("1.")); 40 EXPECT_TRUE(VT.tryParse("1.2.")); 41 EXPECT_TRUE(VT.tryParse("1.2.3.")); 42 EXPECT_TRUE(VT.tryParse("1.2.3.4.")); 43 EXPECT_TRUE(VT.tryParse("1.2.3.4.5")); 44 EXPECT_TRUE(VT.tryParse("1-2")); 45 EXPECT_TRUE(VT.tryParse("1+2")); 46 EXPECT_TRUE(VT.tryParse(".1")); 47 EXPECT_TRUE(VT.tryParse(" 1")); 48 EXPECT_TRUE(VT.tryParse("1 ")); 49 EXPECT_TRUE(VT.tryParse(".")); 50 } 51