
Only platform specific darwin OS values (e.g. macosx, ios, watchos, ...) can be mapped to an LC_BUILD_VERSION platform. For all other values return an empty optional to indicate that the load command can't be constructed. Also fixes the simulator conditions to return the correct platform, and adds a testcase.
57 lines
2.1 KiB
C++
57 lines
2.1 KiB
C++
//===---------- 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);
|
|
}
|