180814287SRaphael Isemann //===-- PlatformDarwinTest.cpp --------------------------------------------===//
26fa7681bSZachary Turner //
32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
66fa7681bSZachary Turner //
76fa7681bSZachary Turner //===----------------------------------------------------------------------===//
86fa7681bSZachary Turner
96fa7681bSZachary Turner #include "gtest/gtest.h"
106fa7681bSZachary Turner
116fa7681bSZachary Turner #include "Plugins/Platform/MacOSX/PlatformDarwin.h"
126fa7681bSZachary Turner
136fa7681bSZachary Turner #include "llvm/ADT/StringRef.h"
146fa7681bSZachary Turner
156fa7681bSZachary Turner #include <tuple>
166fa7681bSZachary Turner
176fa7681bSZachary Turner using namespace lldb;
186fa7681bSZachary Turner using namespace lldb_private;
196fa7681bSZachary Turner
2010deee99SAdrian Prantl struct PlatformDarwinTester : public PlatformDarwin {
217aa28995SJonas Devlieghere public:
22*5ffb30fdSJonas Devlieghere using PlatformDarwin::FindComponentInPath;
2310deee99SAdrian Prantl };
2410deee99SAdrian Prantl
TEST(PlatformDarwinTest,TestParseVersionBuildDir)256fa7681bSZachary Turner TEST(PlatformDarwinTest, TestParseVersionBuildDir) {
262272c481SPavel Labath llvm::VersionTuple V;
276fa7681bSZachary Turner llvm::StringRef D;
286fa7681bSZachary Turner
292272c481SPavel Labath std::tie(V, D) = PlatformDarwin::ParseVersionBuildDir("1.2.3 (test1)");
302272c481SPavel Labath EXPECT_EQ(llvm::VersionTuple(1, 2, 3), V);
316fa7681bSZachary Turner EXPECT_EQ("test1", D);
326fa7681bSZachary Turner
332272c481SPavel Labath std::tie(V, D) = PlatformDarwin::ParseVersionBuildDir("2.3 (test2)");
342272c481SPavel Labath EXPECT_EQ(llvm::VersionTuple(2, 3), V);
356fa7681bSZachary Turner EXPECT_EQ("test2", D);
366fa7681bSZachary Turner
372272c481SPavel Labath std::tie(V, D) = PlatformDarwin::ParseVersionBuildDir("3 (test3)");
382272c481SPavel Labath EXPECT_EQ(llvm::VersionTuple(3), V);
396fa7681bSZachary Turner EXPECT_EQ("test3", D);
406fa7681bSZachary Turner
412272c481SPavel Labath std::tie(V, D) = PlatformDarwin::ParseVersionBuildDir("1.2.3 (test");
422272c481SPavel Labath EXPECT_EQ(llvm::VersionTuple(1, 2, 3), V);
436fa7681bSZachary Turner EXPECT_EQ("test", D);
446fa7681bSZachary Turner
452272c481SPavel Labath std::tie(V, D) = PlatformDarwin::ParseVersionBuildDir("2.3.4 test");
462272c481SPavel Labath EXPECT_EQ(llvm::VersionTuple(2, 3, 4), V);
476fa7681bSZachary Turner EXPECT_EQ("", D);
486fa7681bSZachary Turner
492272c481SPavel Labath std::tie(V, D) = PlatformDarwin::ParseVersionBuildDir("3.4.5");
502272c481SPavel Labath EXPECT_EQ(llvm::VersionTuple(3, 4, 5), V);
516fa7681bSZachary Turner }
527aa28995SJonas Devlieghere
TEST(PlatformDarwinTest,FindComponentInPath)53*5ffb30fdSJonas Devlieghere TEST(PlatformDarwinTest, FindComponentInPath) {
54*5ffb30fdSJonas Devlieghere EXPECT_EQ("/path/to/foo",
55*5ffb30fdSJonas Devlieghere PlatformDarwinTester::FindComponentInPath("/path/to/foo/", "foo"));
56*5ffb30fdSJonas Devlieghere
57*5ffb30fdSJonas Devlieghere EXPECT_EQ("/path/to/foo",
58*5ffb30fdSJonas Devlieghere PlatformDarwinTester::FindComponentInPath("/path/to/foo", "foo"));
59*5ffb30fdSJonas Devlieghere
60*5ffb30fdSJonas Devlieghere EXPECT_EQ("/path/to/foobar", PlatformDarwinTester::FindComponentInPath(
61*5ffb30fdSJonas Devlieghere "/path/to/foobar", "foo"));
62*5ffb30fdSJonas Devlieghere
63*5ffb30fdSJonas Devlieghere EXPECT_EQ("/path/to/foobar", PlatformDarwinTester::FindComponentInPath(
64*5ffb30fdSJonas Devlieghere "/path/to/foobar", "bar"));
65*5ffb30fdSJonas Devlieghere
66*5ffb30fdSJonas Devlieghere EXPECT_EQ("",
67*5ffb30fdSJonas Devlieghere PlatformDarwinTester::FindComponentInPath("/path/to/foo", "bar"));
68*5ffb30fdSJonas Devlieghere }
69