aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Dmitry Shevchenko <dmishe@google.com>2016-12-15 19:30:34 +0000
committerGravatar John Cater <jcater@google.com>2016-12-15 20:39:49 +0000
commit001380d01003e8a393c5eccbe1f8b88ac265284f (patch)
tree83e13784aa0cacab44f63a4645ac8f59b0b7e7a6 /src
parentd405c8a191688c3f9caf5bab821d79ab31a94200 (diff)
Add an option to enable Whole Module Optimization
This is not production ready, but allows us to collect user feedback on this option. -- PiperOrigin-RevId: 142166665 MOS_MIGRATED_REVID=142166665
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"