aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/test/shell/bazel/apple/bazel_apple_test.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/test/shell/bazel/apple/bazel_apple_test.sh b/src/test/shell/bazel/apple/bazel_apple_test.sh
index 7a8df9ac5d..36d7413eaf 100755
--- a/src/test/shell/bazel/apple/bazel_apple_test.sh
+++ b/src/test/shell/bazel/apple/bazel_apple_test.sh
@@ -834,4 +834,43 @@ EOF
//ios:swiftmodule >$TEST_log 2>&1 || fail "should build"
}
+function test_swift_whole_module_optimization() {
+ rm -rf ios
+ mkdir -p ios
+
+ cat >ios/main.swift <<EOF
+import Foundation
+import ios_util
+
+public class SwiftClass {
+ public func bar() -> String {
+ return Utility().foo()
+ }
+}
+EOF
+
+ cat >ios/Utility.swift <<EOF
+public class Utility {
+ public init() {}
+ public func foo() -> String { return "foo" }
+}
+EOF
+
+ cat >ios/BUILD <<EOF
+load("//tools/build_defs/apple:swift.bzl", "swift_library")
+
+swift_library(name = "swift_lib",
+ srcs = ["main.swift"],
+ deps = [":util"],
+ copts = ["-wmo"])
+
+swift_library(name = "util",
+ srcs = ['Utility.swift'],
+ copts = ["-whole-module-optimization"])
+EOF
+
+ bazel build --verbose_failures --xcode_version=$XCODE_VERSION \
+ //ios:swift_lib >$TEST_log 2>&1 || fail "should build"
+}
+
run_suite "apple_tests"