xref: /llvm-project/llvm/unittests/ExecutionEngine/Orc/MachOPlatformTest.cpp (revision e40bc8e509cdad67926fcd208c320cb4d50f6aec)
1*e40bc8e5SLang Hames //===---------- MachOPlatformTest.cpp - MachPlatform API Tests ------------===//
2*e40bc8e5SLang Hames //
3*e40bc8e5SLang Hames // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*e40bc8e5SLang Hames // See https://llvm.org/LICENSE.txt for license information.
5*e40bc8e5SLang Hames // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*e40bc8e5SLang Hames //
7*e40bc8e5SLang Hames //===----------------------------------------------------------------------===//
8*e40bc8e5SLang Hames 
9*e40bc8e5SLang Hames #include "llvm/ExecutionEngine/Orc/MachOPlatform.h"
10*e40bc8e5SLang Hames #include "llvm/BinaryFormat/MachO.h"
11*e40bc8e5SLang Hames #include "gtest/gtest.h"
12*e40bc8e5SLang Hames 
13*e40bc8e5SLang Hames using namespace llvm;
14*e40bc8e5SLang Hames using namespace llvm::orc;
15*e40bc8e5SLang Hames 
TEST(MachOPlatformTests,BuildVersionOptsFromTriple)16*e40bc8e5SLang Hames TEST(MachOPlatformTests, BuildVersionOptsFromTriple) {
17*e40bc8e5SLang Hames 
18*e40bc8e5SLang Hames   auto darwinOS = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple(
19*e40bc8e5SLang Hames       Triple("arm64-apple-darwin"), 0, 0);
20*e40bc8e5SLang Hames   EXPECT_FALSE(darwinOS);
21*e40bc8e5SLang Hames 
22*e40bc8e5SLang Hames   auto macOS = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple(
23*e40bc8e5SLang Hames       Triple("arm64-apple-macosx"), 0, 0);
24*e40bc8e5SLang Hames   EXPECT_TRUE(macOS);
25*e40bc8e5SLang Hames   EXPECT_EQ(macOS->Platform, MachO::PLATFORM_MACOS);
26*e40bc8e5SLang Hames 
27*e40bc8e5SLang Hames   auto iOS = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple(
28*e40bc8e5SLang Hames       Triple("arm64-apple-ios"), 0, 0);
29*e40bc8e5SLang Hames   EXPECT_TRUE(iOS);
30*e40bc8e5SLang Hames   EXPECT_EQ(iOS->Platform, MachO::PLATFORM_IOS);
31*e40bc8e5SLang Hames 
32*e40bc8e5SLang Hames   auto iOSSim = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple(
33*e40bc8e5SLang Hames       Triple("arm64-apple-ios-simulator"), 0, 0);
34*e40bc8e5SLang Hames   EXPECT_TRUE(iOSSim);
35*e40bc8e5SLang Hames   EXPECT_EQ(iOSSim->Platform, MachO::PLATFORM_IOSSIMULATOR);
36*e40bc8e5SLang Hames 
37*e40bc8e5SLang Hames   auto tvOS = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple(
38*e40bc8e5SLang Hames       Triple("arm64-apple-tvos"), 0, 0);
39*e40bc8e5SLang Hames   EXPECT_TRUE(tvOS);
40*e40bc8e5SLang Hames   EXPECT_EQ(tvOS->Platform, MachO::PLATFORM_TVOS);
41*e40bc8e5SLang Hames 
42*e40bc8e5SLang Hames   auto tvOSSim = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple(
43*e40bc8e5SLang Hames       Triple("arm64-apple-tvos-simulator"), 0, 0);
44*e40bc8e5SLang Hames   EXPECT_TRUE(tvOSSim);
45*e40bc8e5SLang Hames   EXPECT_EQ(tvOSSim->Platform, MachO::PLATFORM_TVOSSIMULATOR);
46*e40bc8e5SLang Hames 
47*e40bc8e5SLang Hames   auto watchOS = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple(
48*e40bc8e5SLang Hames       Triple("arm64-apple-watchos"), 0, 0);
49*e40bc8e5SLang Hames   EXPECT_TRUE(watchOS);
50*e40bc8e5SLang Hames   EXPECT_EQ(watchOS->Platform, MachO::PLATFORM_WATCHOS);
51*e40bc8e5SLang Hames 
52*e40bc8e5SLang Hames   auto watchOSSim = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple(
53*e40bc8e5SLang Hames       Triple("arm64-apple-watchos-simulator"), 0, 0);
54*e40bc8e5SLang Hames   EXPECT_TRUE(watchOSSim);
55*e40bc8e5SLang Hames   EXPECT_EQ(watchOSSim->Platform, MachO::PLATFORM_WATCHOSSIMULATOR);
56*e40bc8e5SLang Hames }
57