summaryrefslogtreecommitdiff
path: root/test/xcode_version_test.bzl
blob: 19b38b275be03701e5f493e80be68731249ce7bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Copyright 2024 The Bazel Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Tests for the `xcode_version` rule."""

load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
load(
    "@build_bazel_apple_support//xcode:xcode_version.bzl",
    "xcode_version",
)
load(":test_helpers.bzl", "FIXTURE_TAGS", "make_all_tests")

visibility("private")

# ------------------------------------------------------------------------------

def _read_version_from_providers(namer):
    xcode_version(
        name = namer("my_xcode"),
        default_ios_sdk_version = "9.0",
        default_macos_sdk_version = "9.3",
        default_tvos_sdk_version = "9.2",
        default_visionos_sdk_version = "9.4",
        default_watchos_sdk_version = "9.1",
        version = "8",
        tags = FIXTURE_TAGS,
    )

    _read_version_from_provider_test(
        name = "read_version_from_provider",
        target_under_test = namer("my_xcode"),
    )
    return ["read_version_from_provider"]

def _read_version_from_provider_test_impl(ctx):
    env = analysistest.begin(ctx)

    target_under_test = analysistest.target_under_test(env)
    xcode_properties = target_under_test[apple_common.XcodeProperties]

    asserts.equals(env, "8", xcode_properties.xcode_version)
    asserts.equals(env, "9.0", xcode_properties.default_ios_sdk_version)
    asserts.equals(env, "9.1", xcode_properties.default_watchos_sdk_version)
    asserts.equals(env, "9.2", xcode_properties.default_tvos_sdk_version)
    asserts.equals(env, "9.3", xcode_properties.default_macos_sdk_version)
    asserts.equals(env, "9.4", xcode_properties.default_visionos_sdk_version)

    return analysistest.end(env)

_read_version_from_provider_test = analysistest.make(
    _read_version_from_provider_test_impl,
)

# ------------------------------------------------------------------------------

def xcode_version_test(name):
    make_all_tests(
        name = name,
        tests = [
            _read_version_from_providers,
        ],
    )