Skip to content

Commit 1e22b92

Browse files
committed
Switch Test to the Mock SDK
This test used to rely on the overlays. There's a lot of problems with that approach 1) The overlays are not meant to be stable 2) AnyObject lookup is... absolutely buck wild 3) And extremely dependent upon platform-specific results. Hence this test has had a rocky history of being turned on and off for various configurations. Anchor it to the mock SDK so we have complete control over its contents across platforms. Resolves rdar://78797454
1 parent 05645a1 commit 1e22b92

File tree

1 file changed

+67
-26
lines changed

1 file changed

+67
-26
lines changed

test/Incremental/Verifier/single-file-private/AnyObject.swift

Lines changed: 67 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,41 @@
88
// REQUIRES: objc_interop
99

1010
// RUN: %empty-directory(%t)
11-
// RUN: %{python} %S/../gen-output-file-map.py -o %t %S
12-
// RUN: cd %t && %target-swiftc_driver -typecheck -output-file-map %t/output.json -incremental -module-name main -verify-incremental-dependencies %s
13-
14-
// This test is overly sensitive to the evolving contents of the Foundation
15-
// overlay in the SDK.
16-
// REQUIRES: rdar78797454
11+
// RUN: cd %t && %target-swift-frontend(mock-sdk: %clang-importer-sdk) -c -module-name main -verify-incremental-dependencies -primary-file %s -o /dev/null
1712

1813
import Foundation
1914

2015
// expected-provides {{LookupFactory}}
2116
// expected-provides {{NSObject}}
17+
// expected-provides {{Selector}}
18+
// expected-provides {{Bool}}
19+
// expected-provides {{==}}
20+
// expected-provides {{Equatable}}
21+
// expected-provides {{Hasher}}
22+
// expected-provides {{_ObjectiveCBridgeable}}
23+
// expected-provides{{Hashable}}
24+
// expected-member {{ObjectiveC.NSObject.NSObject}}
2225
// expected-superclass {{ObjectiveC.NSObject}}
2326
// expected-conformance {{ObjectiveC.NSObjectProtocol}}
24-
// expected-conformance {{Foundation._KeyValueCodingAndObserving}}
25-
// expected-conformance {{Foundation._KeyValueCodingAndObservingPublishing}}
26-
// expected-conformance {{Foundation._KeyValueCodingAndObservingSequence}}
27+
// expected-member {{ObjectiveC.NSObjectProtocol.NSObject}}
28+
// expected-member {{ObjectiveC.NSObject.Bool}}
2729
// expected-conformance {{Swift.Hashable}}
2830
// expected-conformance {{Swift.Equatable}}
2931
// expected-conformance {{Swift.CustomDebugStringConvertible}}
30-
// expected-conformance {{Swift.CVarArg}}
3132
// expected-conformance {{Swift.CustomStringConvertible}}
33+
// expected-conformance {{Swift.LosslessStringConvertible}}
34+
// expected-conformance {{Swift.Sequence}}
35+
// expected-conformance {{Swift.Comparable}}
36+
// expected-conformance {{Swift.ExpressibleByArrayLiteral}}
37+
// expected-conformance {{Swift.TextOutputStream}}
38+
// expected-conformance {{Swift.Encodable}}
39+
// expected-conformance {{Swift.Decodable}}
40+
// expected-conformance {{Swift.SIMDStorage}}
41+
// expected-conformance {{Swift.TextOutputStreamable}}
42+
// expected-conformance {{Swift.AdditiveArithmetic}}
43+
// expected-conformance {{Swift.ExpressibleByStringInterpolation}}
44+
// expected-conformance {{Swift.ExpressibleByExtendedGraphemeClusterLiteral}}
45+
// expected-conformance {{Swift.SignedNumeric}}
3246
// expected-member {{Swift._ExpressibleByBuiltinIntegerLiteral.init}}
3347
@objc private class LookupFactory: NSObject {
3448
// expected-provides {{AssignmentPrecedence}}
@@ -46,7 +60,9 @@ import Foundation
4660
@objc func someMethod() {}
4761

4862
// expected-member {{ObjectiveC.NSObject.init}}
63+
// expected-member {{ObjectiveC.NSObject.deinit}}
4964
// expected-member {{ObjectiveC.NSObjectProtocol.init}}
65+
// expected-member {{ObjectiveC.NSObjectProtocol.deinit}}
5066
// expected-member {{main.LookupFactory.init}}
5167
// expected-member {{main.LookupFactory.deinit}}
5268
// expected-member {{main.LookupFactory.someMember}}
@@ -63,28 +79,53 @@ import Foundation
6379
// expected-member {{Swift.Encodable.callAsFunction}}
6480
// expected-member {{Swift.Decodable.callAsFunction}}
6581

82+
// expected-member {{Swift.Hashable._rawHashValue}}
83+
// expected-member {{ObjectiveC.NSObject.hash}}
84+
// expected-member {{Swift.Equatable.hashValue}}
85+
// expected-member{{Swift.Hashable.hashValue}}
86+
// expected-member{{Swift.Hashable.hash}}
87+
// expected-member{{ObjectiveC.NSObjectProtocol.==}}
88+
// expected-member {{ObjectiveC.NSObjectProtocol.hashValue}}
89+
// expected-member {{ObjectiveC.NSObjectProtocol.Hasher}}
90+
// expected-member {{Swift.Equatable._rawHashValue}}
91+
// expected-member {{ObjectiveC.NSObject.hashValue}}
92+
// expected-member {{ObjectiveC.NSObjectProtocol.Bool}}
93+
// expected-member {{ObjectiveC.NSObject.==}}
94+
// expected-member {{Swift.Equatable.==}}
95+
// expected-member {{ObjectiveC.NSObject.Hasher}}
96+
// expected-member {{ObjectiveC.NSObjectProtocol.hash}}
97+
98+
// expected-member {{Swift.Hashable.deinit}}
99+
// expected-member {{Swift.Equatable.deinit}}
100+
101+
// expected-conformance {{Swift.Strideable}}
102+
// expected-conformance {{Swift.Collection}}
103+
// expected-conformance {{Swift.BidirectionalCollection}}
104+
// expected-conformance {{Swift.ExpressibleByUnicodeScalarLiteral}}
105+
// expected-conformance {{Swift.ExpressibleByStringLiteral}}
106+
// expected-conformance {{Swift.CustomReflectable}}
107+
// expected-conformance {{Swift.ExpressibleByIntegerLiteral}}
108+
// expected-conformance {{Swift.Numeric}}
109+
110+
// expected-member {{Swift.Hashable.==}}
111+
// expected-member {{Swift.Equatable.hash}}
112+
// expected-member {{ObjectiveC.NSObject._rawHashValue}}
113+
// expected-member {{ObjectiveC.NSObjectProtocol._rawHashValue}}
114+
66115
// expected-provides {{AnyObject}}
67116
func lookupOnAnyObject(object: AnyObject) { // expected-provides {{lookupOnAnyObject}}
68117
_ = object.someMember // expected-dynamic-member {{someMember}}
69118
object.someMethod() // expected-dynamic-member {{someMethod}}
70119
}
71120

72121
// expected-member {{Swift.Hashable.someMethod}}
73-
// expected-member {{Foundation._KeyValueCodingAndObserving.someMethod}}
74-
// expected-member {{Foundation._KeyValueCodingAndObservingPublishing.someMethod}}
75122
// expected-member {{Swift.Equatable.someMethod}}
76-
// expected-member {{Swift.CVarArg.someMethod}}
77-
// expected-member {{Swift.CustomStringConvertible.someMethod}}
78-
// expected-member {{Swift.CustomDebugStringConvertible.someMethod}}
79123
// expected-member {{Swift.Equatable.someMember}}
80-
// expected-member{{Swift.CVarArg.someMember}}
81-
// expected-member{{Foundation._KeyValueCodingAndObservingPublishing.someMember}}
82-
// expected-member{{Foundation._KeyValueCodingAndObserving.someMember}}
83-
// expected-member{{Swift.CustomDebugStringConvertible.someMember}}
84-
// expected-member{{Swift.CustomStringConvertible.someMember}}
85-
// expected-member{{Swift.Hashable.someMember}}
86-
// expected-member{{Swift.Sendable.callAsFunction}}
87-
// expected-member{{Foundation._KeyValueCodingAndObservingSequence.someMethod}}
88-
// expected-member{{Foundation._KeyValueCodingAndObservingSequence.someMember}}
89-
// expected-member{{Foundation.EncodableWithConfiguration.callAsFunction}}
90-
// expected-member{{Foundation.DecodableWithConfiguration.callAsFunction}}
124+
// expected-member {{Swift.Hashable.someMember}}
125+
// expected-member {{Swift.Sendable.callAsFunction}}
126+
// expected-member {{ObjectiveC.NSObject.someMethodWithDeprecatedOptions}}
127+
// expected-member {{ObjectiveC.NSObject.someMethodWithPotentiallyUnavailableOptions}}
128+
// expected-member {{ObjectiveC.NSObject.someMethodWithUnavailableOptions}}
129+
// expected-member {{ObjectiveC.NSObjectProtocol.someMethodWithUnavailableOptions}}
130+
// expected-member {{ObjectiveC.NSObjectProtocol.someMethodWithPotentiallyUnavailableOptions}}
131+
// expected-member {{ObjectiveC.NSObjectProtocol.someMethodWithDeprecatedOptions}}

0 commit comments

Comments
 (0)