Skip to content

Commit 1a600f4

Browse files
authored
Merge pull request #42351 from tshortli/adopt-interface-verification-in-more-tests
ModuleInterface: Enable interface verification in more tests
2 parents 9365af6 + 747f286 commit 1a600f4

File tree

70 files changed

+260
-151
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+260
-151
lines changed

docs/Testing.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,17 @@ code for the target that is not the build machine:
338338
* ``%target-swift-autolink-extract``: run ``swift-autolink-extract`` for the
339339
target to extract its autolink flags on platforms that support them (when the
340340
autolink-extract feature flag is set)
341+
342+
* ``%target-swift-emit-module-interface(`` *swift interface path* ``)``
343+
*other arguments*: run ``swift-frontend`` for the target, emitting a
344+
swiftinterface to the given path and passing additional default flags
345+
appropriate for resilient frameworks.
346+
347+
* ``%target-swift-typecheck-module-from-interface(`` *swift interface path*
348+
``)`` *other arguments*: run ``swift-frontend`` for the target, verifying
349+
the swiftinterface at the given path and passing additional default flags
350+
appropriate for resilient frameworks. Designed to be used in combination with
351+
``%target-swift-emit-module-interface()``.
341352

342353
* ``%target-clang``: run the system's ``clang++`` for the target.
343354

test/AutoDiff/ModuleInterface/differentiation.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
// RUN: %target-swift-frontend -typecheck -emit-module-interface-path %t.swiftinterface -enable-library-evolution %s
1+
// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %s
2+
// RUN: %target-swift-typecheck-module-from-interface(%t.swiftinterface)
23
// RUN: %FileCheck %s < %t.swiftinterface
34

45
import _Differentiation

test/ClangImporter/clang-function-types.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-swift-frontend -typecheck -swift-version 5 -emit-module-interface-path - -sdk %clang-importer-sdk -enable-library-evolution %s -experimental-print-full-convention -use-clang-function-types | %FileCheck %s
1+
// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %s -sdk %clang-importer-sdk -experimental-print-full-convention -use-clang-function-types
2+
// RUN: %target-swift-typecheck-module-from-interface(%t.swiftinterface) -sdk %clang-importer-sdk
3+
// RUN: %FileCheck %s < %t.swiftinterface
24

35
import ctypes
46

test/CrossImport/module-interface.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,22 @@
77
// Should pass with -enable-cross-import-overlays
88
//
99

10-
// RUN: %target-swift-frontend -enable-cross-import-overlays -I %t/lib/swift -typecheck -emit-module-interface-path %t.swiftinterface %s -module-name ClientLibrary -swift-version 5 -enable-library-evolution
10+
// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %s -enable-cross-import-overlays -I %t/lib/swift -module-name ClientLibrary
11+
// RUN: %target-swift-typecheck-module-from-interface(%t.swiftinterface) -enable-cross-import-overlays -I %t/lib/swift -module-name ClientLibrary
1112
// RUN: %FileCheck %s < %t.swiftinterface
1213
// RUN: %FileCheck -check-prefix NEGATIVE %s < %t.swiftinterface
1314

1415
//
1516
// Should fail with -disable-cross-import-overlays
1617
//
1718

18-
// RUN: not %target-swift-frontend -disable-cross-import-overlays -I %t/lib/swift -typecheck -emit-module-interface-path %t.swiftinterface %s -module-name ClientLibrary -swift-version 5 -enable-library-evolution 2>/dev/null
19+
// RUN: not %target-swift-emit-module-interface(%t.swiftinterface) %s -disable-cross-import-overlays -I %t/lib/swift -module-name ClientLibrary 2>/dev/null
1920

2021
//
2122
// Should fail by default
2223
//
2324

24-
// RUN: not %target-swift-frontend -I %t/lib/swift -typecheck -emit-module-interface-path %t.swiftinterface %s -module-name ClientLibrary -swift-version 5 -enable-library-evolution 2>/dev/null
25+
// RUN: not %target-swift-emit-module-interface(%t.swiftinterface) %s -I %t/lib/swift -module-name ClientLibrary -swift-version 5 2>/dev/null
2526

2627

2728
import DeclaringLibrary

test/ModuleInterface/ConstKeyword.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
// RUN: %empty-directory(%t)
22

33
// Ensure the attribute is printed in swiftinterface files
4-
// RUN: %target-swift-frontend-typecheck -emit-module-interface-path %t/Foo.swiftinterface %s -module-name Foo
4+
// RUN: %target-swift-emit-module-interface(%t/Foo.swiftinterface) %s -module-name Foo
5+
// RUN: %target-swift-typecheck-module-from-interface(%t/Foo.swiftinterface) -module-name Foo
56
// RUN: %FileCheck %s < %t/Foo.swiftinterface
67

78
// Ensure the attribute is in .swiftmodule files

test/ModuleInterface/access-filter.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
// RUN: %target-swift-frontend -typecheck -emit-module-interface-path %t.swiftinterface %s -module-name AccessFilter -requirement-machine-inferred-signatures=on
1+
// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %s -module-name AccessFilter -requirement-machine-inferred-signatures=on
2+
// RUN: %target-swift-typecheck-module-from-interface(%t.swiftinterface) -module-name AccessFilter
23
// RUN: %FileCheck %s < %t.swiftinterface
34
// RUN: %FileCheck -check-prefix NEGATIVE %s < %t.swiftinterface
45

@@ -109,7 +110,7 @@ extension UFIProto {
109110

110111
// CHECK: extension AccessFilter.PublicStruct {{[{]$}}
111112
extension PublicStruct {
112-
// CHECK: @_hasInitialValue public static var secretlySettable: Swift.Int {
113+
// CHECK: public static var secretlySettable: Swift.Int {
113114
// CHECK-NEXT: get
114115
// CHECK-NEXT: }
115116
public private(set) static var secretlySettable: Int = 0
@@ -123,12 +124,11 @@ extension InternalStruct_BAD: PublicProto {
123124
// CHECK: extension AccessFilter.UFIStruct : AccessFilter.PublicProto {{[{]$}}
124125
extension UFIStruct: PublicProto {
125126
// CHECK-NEXT: @usableFromInline
126-
// CHECK-NEXT: internal typealias Assoc = Swift.Int
127-
128-
// FIXME: Is it okay for this non-@usableFromInline implementation to satisfy
129-
// the protocol?
130-
func requirement() {}
127+
// CHECK-NEXT: internal func requirement()
128+
@usableFromInline func requirement() {}
131129
internal static var dummy: Int { return 0 }
130+
// CHECK-NEXT: @usableFromInline
131+
// CHECK-NEXT: internal typealias Assoc = Swift.Int
132132
} // CHECK-NEXT: {{^[}]$}}
133133

134134
// CHECK: public enum PublicEnum {{[{]$}}

test/ModuleInterface/actor_isolation.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
// RUN: %target-swift-frontend -emit-module -o %t/Test.swiftmodule -emit-module-interface-path %t/Test.swiftinterface -module-name Test -enable-experimental-concurrency -I %t %s
55
// RUN: %FileCheck %s < %t/Test.swiftinterface
66
// RUN: %FileCheck %s -check-prefix SYNTHESIZED < %t/Test.swiftinterface
7-
// RUN: %target-swift-frontend -typecheck-module-from-interface -module-name Test %t/Test.swiftinterface -I %t
7+
// RUN: %target-swift-typecheck-module-from-interface(%t/Test.swiftinterface) -module-name Test -I %t
88

99
// RUN: %target-swift-frontend -emit-module -o /dev/null -merge-modules %t/Test.swiftmodule -disable-objc-attr-requires-foundation-module -emit-module-interface-path %t/TestFromModule.swiftinterface -module-name Test -enable-experimental-concurrency -I %t
1010
// RUN: %FileCheck %s < %t/TestFromModule.swiftinterface
11-
// RUN: %target-swift-frontend -typecheck-module-from-interface -module-name Test %t/TestFromModule.swiftinterface -I %t
11+
// RUN: %target-swift-typecheck-module-from-interface(%t/TestFromModule.swiftinterface) -module-name Test -I %t
1212

1313
// REQUIRES: concurrency
1414
import Preconcurrency

test/ModuleInterface/actor_objc.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// RUN: %empty-directory(%t)
22
// RUN: %target-swift-frontend -emit-module -o %t/Test.swiftmodule -emit-module-interface-path %t/Test.swiftinterface -module-name Test %s
33
// RUN: %FileCheck %s < %t/Test.swiftinterface
4-
// RUN: %target-swift-frontend -typecheck-module-from-interface -module-name Test %t/Test.swiftinterface
4+
// RUN: %target-swift-typecheck-module-from-interface(%t/Test.swiftinterface) -module-name Test
55

66
// RUN: %target-swift-frontend -emit-module -o /dev/null -merge-modules %t/Test.swiftmodule -disable-objc-attr-requires-foundation-module -emit-module-interface-path %t/TestFromModule.swiftinterface -module-name Test
77
// RUN: %FileCheck %s < %t/TestFromModule.swiftinterface
8-
// RUN: %target-swift-frontend -typecheck-module-from-interface -module-name Test %t/TestFromModule.swiftinterface
8+
// RUN: %target-swift-typecheck-module-from-interface(%t/TestFromModule.swiftinterface) -module-name Test
99

1010
// REQUIRES: concurrency
1111
// REQUIRES: objc_interop

test/ModuleInterface/actor_protocol.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// RUN: %empty-directory(%t)
2-
// RUN: %target-swift-frontend -typecheck -enable-library-evolution -disable-availability-checking -emit-module-interface-path %t/Library.swiftinterface -module-name Library %s
2+
// RUN: %target-swift-emit-module-interface(%t/Library.swiftinterface) %s -disable-availability-checking -module-name Library
3+
// RUN: %target-swift-typecheck-module-from-interface(%t/Library.swiftinterface) -disable-availability-checking -module-name Library
34
// RUN: %FileCheck --check-prefix CHECK-EXTENSION %s <%t/Library.swiftinterface
45
// RUN: %FileCheck --check-prefix CHECK %s <%t/Library.swiftinterface
56
// REQUIRES: concurrency

test/ModuleInterface/attrs.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
// RUN: %target-swift-frontend -typecheck -emit-module-interface-path %t.swiftinterface -enable-library-evolution %s
1+
// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %s -module-name attrs
2+
// RUN: %target-swift-typecheck-module-from-interface(%t.swiftinterface) -module-name attrs
23
// RUN: %FileCheck %s < %t.swiftinterface
34

45
// CHECK: @_transparent public func glass() -> Swift.Int { return 0 }{{$}}

0 commit comments

Comments
 (0)