//===---------- MachOPlatformTest.cpp - MachPlatform API Tests ------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "llvm/ExecutionEngine/Orc/MachOPlatform.h" #include "llvm/BinaryFormat/MachO.h" #include "gtest/gtest.h" using namespace llvm; using namespace llvm::orc; TEST(MachOPlatformTests, BuildVersionOptsFromTriple) { auto darwinOS = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple( Triple("arm64-apple-darwin"), 0, 0); EXPECT_FALSE(darwinOS); auto macOS = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple( Triple("arm64-apple-macosx"), 0, 0); EXPECT_TRUE(macOS); EXPECT_EQ(macOS->Platform, MachO::PLATFORM_MACOS); auto iOS = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple( Triple("arm64-apple-ios"), 0, 0); EXPECT_TRUE(iOS); EXPECT_EQ(iOS->Platform, MachO::PLATFORM_IOS); auto iOSSim = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple( Triple("arm64-apple-ios-simulator"), 0, 0); EXPECT_TRUE(iOSSim); EXPECT_EQ(iOSSim->Platform, MachO::PLATFORM_IOSSIMULATOR); auto tvOS = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple( Triple("arm64-apple-tvos"), 0, 0); EXPECT_TRUE(tvOS); EXPECT_EQ(tvOS->Platform, MachO::PLATFORM_TVOS); auto tvOSSim = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple( Triple("arm64-apple-tvos-simulator"), 0, 0); EXPECT_TRUE(tvOSSim); EXPECT_EQ(tvOSSim->Platform, MachO::PLATFORM_TVOSSIMULATOR); auto watchOS = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple( Triple("arm64-apple-watchos"), 0, 0); EXPECT_TRUE(watchOS); EXPECT_EQ(watchOS->Platform, MachO::PLATFORM_WATCHOS); auto watchOSSim = MachOPlatform::HeaderOptions::BuildVersionOpts::fromTriple( Triple("arm64-apple-watchos-simulator"), 0, 0); EXPECT_TRUE(watchOSSim); EXPECT_EQ(watchOSSim->Platform, MachO::PLATFORM_WATCHOSSIMULATOR); }