blob: 3355f6b0894fcf5920189666224da220c4f03443 [file] [log] [blame]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (C) 2019 Apple Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import unittest
import webkitpy.xcode.sdk as sdk
from webkitpy.common.system.executive_mock import MockExecutive2
class SDKTest(unittest.TestCase):
TEST_XCODEBUILD_SHOWSDKS_OUTPUT = """\
iOS SDKs:
\tiOS 12.0 \t-sdk iphoneos12.0
\tiOS 12.0 Internal \t-sdk iphoneos12.0.internal
iOS Simulator SDKs:
\tSimulator - iOS 12.0 \t-sdk iphonesimulator12.0
macOS SDKs:
\tmacOS 10.13 \t-sdk macosx10.13
\tmacOS 10.13 Internal \t-sdk macosx10.13internal
\tmacOS 10.14 \t-sdk macosx10.14
\tmacOS 10.14 Internal \t-sdk macosx10.14internal
tvOS SDKs:
\ttvOS 12.0 \t-sdk appletvos12.0
\ttvOS 12.0 Internal \t-sdk appletvos12.0.internal
tvOS Simulator SDKs:
\tSimulator - tvOS 12.0 \t-sdk appletvsimulator12.0
watchOS SDKs:
\twatchOS 4.0 \t-sdk watchos4.0
\twatchOS 4.0 Internal \t-sdk watchos4.0.internal
watchOS Simulator SDKs:
\tSimulator - watchOS 4.0 \t-sdk watchsimulator4.0
"""
@classmethod
def setUpClass(cls):
cls.executive = MockExecutive2(output=cls.TEST_XCODEBUILD_SHOWSDKS_OUTPUT)
@classmethod
def tearDownClass(cls):
cls.executive = None
def test_iphoneos(self):
preferred_sdk = sdk.SDK.get_preferred_sdk_for_platform("iphoneos", self.executive)
self.assertEqual("iphoneos", preferred_sdk.platform)
self.assertEqual("12.0", preferred_sdk.version)
self.assertTrue(preferred_sdk.internal)
def test_iphonesim(self):
preferred_sdk = sdk.SDK.get_preferred_sdk_for_platform("iphonesimulator", self.executive)
self.assertEqual("iphonesimulator", preferred_sdk.platform)
self.assertEqual("12.0", preferred_sdk.version)
self.assertFalse(preferred_sdk.internal)
def test_macos(self):
preferred_sdk = sdk.SDK.get_preferred_sdk_for_platform("macosx", self.executive)
self.assertEqual("macosx", preferred_sdk.platform)
self.assertEqual("10.14", preferred_sdk.version)
self.assertTrue(preferred_sdk.internal)
def test_appletvos(self):
preferred_sdk = sdk.SDK.get_preferred_sdk_for_platform("appletvos", self.executive)
self.assertEqual("appletvos", preferred_sdk.platform)
self.assertEqual("12.0", preferred_sdk.version)
self.assertTrue(preferred_sdk.internal)
def test_appletvsim(self):
preferred_sdk = sdk.SDK.get_preferred_sdk_for_platform("appletvsimulator", self.executive)
self.assertEqual("appletvsimulator", preferred_sdk.platform)
self.assertEqual("12.0", preferred_sdk.version)
self.assertFalse(preferred_sdk.internal)
def test_watchos(self):
preferred_sdk = sdk.SDK.get_preferred_sdk_for_platform("watchos", self.executive)
self.assertEqual("watchos", preferred_sdk.platform)
self.assertEqual("4.0", preferred_sdk.version)
self.assertTrue(preferred_sdk.internal)
def test_watchsimulator(self):
preferred_sdk = sdk.SDK.get_preferred_sdk_for_platform("watchsimulator", self.executive)
self.assertEqual("watchsimulator", preferred_sdk.platform)
self.assertEqual("4.0", preferred_sdk.version)
self.assertFalse(preferred_sdk.internal)
def test_prodos(self):
preferred_sdk = sdk.SDK.get_preferred_sdk_for_platform("prodos", self.executive)
self.assertEqual("prodos", preferred_sdk.platform)
self.assertEqual(None, preferred_sdk.version)
self.assertEqual(None, preferred_sdk.internal)