1 //===-- PlatformDarwinTest.cpp ----------------------------------*- C++ -*-===// 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 "gtest/gtest.h" 11 12 #include "Plugins/Platform/MacOSX/PlatformDarwin.h" 13 14 #include "llvm/ADT/StringRef.h" 15 16 #include <tuple> 17 18 using namespace lldb; 19 using namespace lldb_private; 20 21 TEST(PlatformDarwinTest, TestParseVersionBuildDir) { 22 uint32_t A, B, C; 23 llvm::StringRef D; 24 25 std::tie(A, B, C, D) = PlatformDarwin::ParseVersionBuildDir("1.2.3 (test1)"); 26 EXPECT_EQ(1u, A); 27 EXPECT_EQ(2u, B); 28 EXPECT_EQ(3u, C); 29 EXPECT_EQ("test1", D); 30 31 std::tie(A, B, C, D) = PlatformDarwin::ParseVersionBuildDir("2.3 (test2)"); 32 EXPECT_EQ(2u, A); 33 EXPECT_EQ(3u, B); 34 EXPECT_EQ("test2", D); 35 36 std::tie(A, B, C, D) = PlatformDarwin::ParseVersionBuildDir("3 (test3)"); 37 EXPECT_EQ(3u, A); 38 EXPECT_EQ("test3", D); 39 40 std::tie(A, B, C, D) = PlatformDarwin::ParseVersionBuildDir("1.2.3 (test"); 41 EXPECT_EQ(1u, A); 42 EXPECT_EQ(2u, B); 43 EXPECT_EQ(3u, C); 44 EXPECT_EQ("test", D); 45 46 std::tie(A, B, C, D) = PlatformDarwin::ParseVersionBuildDir("2.3.4 test"); 47 EXPECT_EQ(2u, A); 48 EXPECT_EQ(3u, B); 49 EXPECT_EQ(4u, C); 50 EXPECT_EQ("", D); 51 52 std::tie(A, B, C, D) = PlatformDarwin::ParseVersionBuildDir("3.4.5"); 53 EXPECT_EQ(3u, A); 54 EXPECT_EQ(4u, B); 55 EXPECT_EQ(5u, C); 56 } 57