Skip to content

Commit 4e6f614

Browse files
author
Dave Abrahams
committed
[stdlib] Simplify a test
1 parent f4b3149 commit 4e6f614

File tree

3 files changed

+85
-96
lines changed

3 files changed

+85
-96
lines changed

test/1_stdlib/ArrayBridge.swift

Lines changed: 68 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import StdlibUnittest
2727
let tests = TestSuite("ArrayBridge")
2828

2929
var trackedCount = 0
30-
var nextTrackedSerialNumber = 0
30+
var nextBaseSerialNumber = 0
3131

3232
@objc protocol Fooable {
3333
func foo()
@@ -41,13 +41,13 @@ var nextTrackedSerialNumber = 0
4141
func baz()
4242
}
4343

44-
class Tracked : NSObject, Fooable {
44+
class Base : NSObject, Fooable {
4545
func foo() { }
4646

4747
required init(_ value: Int) {
4848
trackedCount += 1
49-
nextTrackedSerialNumber += 1
50-
serialNumber = nextTrackedSerialNumber
49+
nextBaseSerialNumber += 1
50+
serialNumber = nextBaseSerialNumber
5151
self.value = value
5252
}
5353

@@ -58,7 +58,7 @@ class Tracked : NSObject, Fooable {
5858
}
5959

6060
override var description: String {
61-
assert(serialNumber > 0, "dead Tracked!")
61+
assert(serialNumber > 0, "dead Base!")
6262
return "Base#\(serialNumber)(\(value))"
6363
}
6464

@@ -67,46 +67,36 @@ class Tracked : NSObject, Fooable {
6767
}
6868

6969
override func isEqual(_ other: AnyObject?) -> Bool {
70-
return (other as? Tracked)?.value == self.value
70+
return (other as? Base)?.value == self.value
7171
}
7272

7373
var value: Int
7474
var serialNumber: Int
7575
}
7676

77-
typealias Base = Tracked
7877
class Derived : Base, Barable {
7978
func bar() { }
80-
8179
override var description: String {
82-
assert(serialNumber > 0, "dead Tracked!")
80+
assert(serialNumber > 0, "dead Base!")
8381
return "Derived#\(serialNumber)(\(value))"
8482
}
8583
}
8684

87-
class BridgedObjC : Base, Barable {
88-
func bar() { }
89-
override var description: String {
90-
assert(serialNumber > 0, "dead Tracked!")
91-
return "BridgedObjC#\(serialNumber)(\(value))"
92-
}
93-
}
94-
9585
var bridgeFromOperationCount = 0
9686
var bridgeToOperationCount = 0
9787

9888
struct BridgedSwift : CustomStringConvertible, _ObjectiveCBridgeable {
99-
func _bridgeToObjectiveC() -> BridgedObjC {
89+
func _bridgeToObjectiveC() -> Derived {
10090
bridgeToOperationCount += 1
101-
return BridgedObjC(trak.value)
91+
return Derived(trak.value)
10292
}
10393

10494
static func _isBridgedToObjectiveC() -> Bool {
10595
return true
10696
}
10797

10898
static func _forceBridgeFromObjectiveC(
109-
_ x: BridgedObjC,
99+
_ x: Derived,
110100
result: inout BridgedSwift?
111101
) {
112102
assert(x.value >= 0, "not bridged")
@@ -115,7 +105,7 @@ struct BridgedSwift : CustomStringConvertible, _ObjectiveCBridgeable {
115105
}
116106

117107
static func _conditionallyBridgeFromObjectiveC(
118-
_ x: BridgedObjC,
108+
_ x: Derived,
119109
result: inout BridgedSwift?
120110
) -> Bool {
121111
if x.value >= 0 {
@@ -127,20 +117,20 @@ struct BridgedSwift : CustomStringConvertible, _ObjectiveCBridgeable {
127117
return false
128118
}
129119

130-
static func _unconditionallyBridgeFromObjectiveC(_ source: BridgedObjC?)
120+
static func _unconditionallyBridgeFromObjectiveC(_ source: Derived?)
131121
-> BridgedSwift {
132122
var result: BridgedSwift? = nil
133123
_forceBridgeFromObjectiveC(source!, result: &result)
134124
return result!
135125
}
136126

137127
var description: String {
138-
assert(trak.serialNumber > 0, "dead Tracked!")
128+
assert(trak.serialNumber > 0, "dead Base!")
139129
return "BridgedSwift#\(trak.serialNumber)(\(trak.value))"
140130
}
141131

142132
init(_ value: Int) {
143-
self.trak = Tracked(value)
133+
self.trak = Base(value)
144134
}
145135

146136
func successor() -> BridgedSwift {
@@ -152,25 +142,25 @@ struct BridgedSwift : CustomStringConvertible, _ObjectiveCBridgeable {
152142
bridgeToOperationCount = 0
153143
}
154144

155-
var trak: Tracked
145+
var trak: Base
156146
}
157147

158148
// A class used to test various Objective-C thunks.
159149
class Thunks : NSObject {
160-
func createBridgedObjC(_ value: Int) -> AnyObject {
161-
return BridgedObjC(value)
150+
func createDerived(_ value: Int) -> AnyObject {
151+
return Derived(value)
162152
}
163153

164-
@objc func acceptBridgedObjCArray(_ x: [BridgedObjC]) {
165-
print("acceptBridgedObjCArray(\(x))")
154+
@objc func acceptDerivedArray(_ x: [Derived]) {
155+
print("acceptDerivedArray(\(x))")
166156
}
167157

168-
@objc func produceBridgedObjCArray(_ numItems: Int) -> [BridgedObjC] {
169-
var array: [BridgedObjC] = []
158+
@objc func produceDerivedArray(_ numItems: Int) -> [Derived] {
159+
var array: [Derived] = []
170160
for i in 0..<numItems {
171-
array.append(BridgedObjC(i))
161+
array.append(Derived(i))
172162
}
173-
print("produceBridgedObjCArray(\(array))")
163+
print("produceDerivedArray(\(array))")
174164
return array
175165
}
176166

@@ -195,7 +185,7 @@ class Thunks : NSObject {
195185
//===----------------------------------------------------------------------===//
196186

197187
tests.test("testBridgedVerbatim") {
198-
nextTrackedSerialNumber = 0
188+
nextBaseSerialNumber = 0
199189
let bases: [Base] = [Base(100), Base(200), Base(300)]
200190

201191
//===--- Implicit conversion to/from NSArray ------------------------------===//
@@ -280,23 +270,22 @@ tests.test("testBridgedVerbatim") {
280270
expectEmpty(derivedAsAnyObjectArray as? [protocol<Barable, Bazable>])
281271
}
282272

283-
func doTestBridgedObjC() {
284-
// CHECK: doTestBridgedObjC
285-
print("doTestBridgedObjC")
273+
func doTestDerived() {
274+
// CHECK: doTestDerived
275+
print("doTestDerived")
286276

287-
testBridgedObjC(Thunks())
288-
// CHECK-NEXT: produceBridgedObjCArray([BridgedObjC[[A:#[0-9]+]](0), BridgedObjC[[B:#[0-9]+]](1), BridgedObjC[[C:#[0-9]+]](2), BridgedObjC[[D:#[0-9]+]](3), BridgedObjC[[E:#[0-9]+]](4)])
289-
testBridgedObjC(Thunks())
277+
// CHECK-NEXT: produceDerivedArray([Derived[[A:#[0-9]+]](0), Derived[[B:#[0-9]+]](1), Derived[[C:#[0-9]+]](2), Derived[[D:#[0-9]+]](3), Derived[[E:#[0-9]+]](4)])
278+
testDerived(Thunks())
290279
// CHECK-NEXT: 5 elements in the array
291-
// CHECK-NEXT: BridgedObjC[[A]](0)
292-
// CHECK-NEXT: BridgedObjC[[B]](1)
293-
// CHECK-NEXT: BridgedObjC[[C]](2)
294-
// CHECK-NEXT: BridgedObjC[[D]](3)
295-
// CHECK-NEXT: BridgedObjC[[E]](4)
280+
// CHECK-NEXT: Derived[[A]](0)
281+
// CHECK-NEXT: Derived[[B]](1)
282+
// CHECK-NEXT: Derived[[C]](2)
283+
// CHECK-NEXT: Derived[[D]](3)
284+
// CHECK-NEXT: Derived[[E]](4)
296285

297-
// CHECK-NEXT: acceptBridgedObjCArray([BridgedObjC[[A:#[0-9]+]](10), BridgedObjC[[B:#[0-9]+]](11), BridgedObjC[[C:#[0-9]+]](12), BridgedObjC[[D:#[0-9]+]](13), BridgedObjC[[E:#[0-9]+]](14)])
286+
// CHECK-NEXT: acceptDerivedArray([Derived[[A:#[0-9]+]](10), Derived[[B:#[0-9]+]](11), Derived[[C:#[0-9]+]](12), Derived[[D:#[0-9]+]](13), Derived[[E:#[0-9]+]](14)])
298287
}
299-
doTestBridgedObjC()
288+
doTestDerived()
300289

301290
//===--- Explicitly Bridged -----------------------------------------------===//
302291
// BridgedSwift conforms to _ObjectiveCBridgeable
@@ -308,7 +297,7 @@ func testExplicitlyBridged() {
308297
let bridgedSwifts = [BridgedSwift(42), BridgedSwift(17)]
309298

310299
let bridgedSwiftsAsNSArray = bridgedSwifts as NSArray
311-
// CHECK-NEXT: [BridgedObjC#{{[0-9]+}}(42), BridgedObjC#{{[0-9]+}}(17)]
300+
// CHECK-NEXT: [Derived#{{[0-9]+}}(42), Derived#{{[0-9]+}}(17)]
312301
print("bridgedSwiftsAsNSArray = \(bridgedSwiftsAsNSArray as [AnyObject]))")
313302

314303
// Make sure we can bridge back.
@@ -336,77 +325,77 @@ func testExplicitlyBridged() {
336325
// defining @objc method taking [T] and returning [T]
337326

338327
// Up-casts.
339-
let bridgedSwiftsAsBridgedObjCs: [BridgedObjC] = bridgedSwifts
340-
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
341-
print(bridgedSwiftsAsBridgedObjCs[0])
342-
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
343-
print(bridgedSwiftsAsBridgedObjCs[1])
328+
let bridgedSwiftsAsDeriveds: [Derived] = bridgedSwifts
329+
// CHECK-NEXT: Derived#[[ID0:[0-9]+]](42)
330+
print(bridgedSwiftsAsDeriveds[0])
331+
// CHECK-NEXT: Derived#[[ID1:[0-9]+]](17)
332+
print(bridgedSwiftsAsDeriveds[1])
344333

345334
let bridgedSwiftsAsBases: [Base] = bridgedSwifts
346-
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
335+
// CHECK-NEXT: Derived#[[ID0:[0-9]+]](42)
347336
print(bridgedSwiftsAsBases[0])
348-
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
337+
// CHECK-NEXT: Derived#[[ID1:[0-9]+]](17)
349338
print(bridgedSwiftsAsBases[1])
350339

351340
let bridgedSwiftsAsAnyObjects: [AnyObject] = bridgedSwifts
352-
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
341+
// CHECK-NEXT: Derived#[[ID0:[0-9]+]](42)
353342
print(bridgedSwiftsAsAnyObjects[0])
354-
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
343+
// CHECK-NEXT: Derived#[[ID1:[0-9]+]](17)
355344
print(bridgedSwiftsAsAnyObjects[1])
356345

357346
// Downcasts of non-verbatim bridged value types to objects.
358347
do {
359-
let downcasted = bridgedSwifts as [BridgedObjC]
360-
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
348+
let downcasted = bridgedSwifts as [Derived]
349+
// CHECK-NEXT: Derived#[[ID0:[0-9]+]](42)
361350
print(downcasted[0])
362-
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
351+
// CHECK-NEXT: Derived#[[ID1:[0-9]+]](17)
363352
print(downcasted[1])
364353
}
365354

366355
do {
367356
let downcasted = bridgedSwifts as [Base]
368-
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
357+
// CHECK-NEXT: Derived#[[ID0:[0-9]+]](42)
369358
print(downcasted[0])
370-
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
359+
// CHECK-NEXT: Derived#[[ID1:[0-9]+]](17)
371360
print(downcasted[1])
372361
}
373362

374363
do {
375364
let downcasted = bridgedSwifts as [AnyObject]
376-
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
365+
// CHECK-NEXT: Derived#[[ID0:[0-9]+]](42)
377366
print(downcasted[0])
378-
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
367+
// CHECK-NEXT: Derived#[[ID1:[0-9]+]](17)
379368
print(downcasted[1])
380369
}
381370

382371
// Downcasts of up-casted arrays.
383-
if let downcasted = bridgedSwiftsAsAnyObjects as? [BridgedObjC] {
384-
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
372+
if let downcasted = bridgedSwiftsAsAnyObjects as? [Derived] {
373+
// CHECK-NEXT: Derived#[[ID0:[0-9]+]](42)
385374
print(downcasted[0])
386-
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
375+
// CHECK-NEXT: Derived#[[ID1:[0-9]+]](17)
387376
print(downcasted[1])
388377
} else {
389-
print("Could not downcast [AnyObject] to [BridgedObjC]?")
378+
print("Could not downcast [AnyObject] to [Derived]?")
390379
}
391380

392381
if let downcasted = bridgedSwiftsAsAnyObjects as? [Base] {
393-
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
382+
// CHECK-NEXT: Derived#[[ID0:[0-9]+]](42)
394383
print(downcasted[0])
395-
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
384+
// CHECK-NEXT: Derived#[[ID1:[0-9]+]](17)
396385
print(downcasted[1])
397386
} else {
398387
print("Could not downcast [AnyObject] to [Base]?")
399388
}
400389

401390
// Downcast of Cocoa array to an array of classes.
402391
let wrappedCocoaBridgedSwifts = cocoaBridgedSwifts as [AnyObject]
403-
if let downcasted = wrappedCocoaBridgedSwifts as? [BridgedObjC] {
404-
// CHECK-NEXT: BridgedObjC#[[ID0:[0-9]+]](42)
392+
if let downcasted = wrappedCocoaBridgedSwifts as? [Derived] {
393+
// CHECK-NEXT: Derived#[[ID0:[0-9]+]](42)
405394
print(downcasted[0])
406-
// CHECK-NEXT: BridgedObjC#[[ID1:[0-9]+]](17)
395+
// CHECK-NEXT: Derived#[[ID1:[0-9]+]](17)
407396
print(downcasted[1])
408397
} else {
409-
print("Could not downcast [AnyObject] to [BridgedObjC]?")
398+
print("Could not downcast [AnyObject] to [Derived]?")
410399
}
411400

412401
// Downcast of Cocoa array to an array of values.
@@ -470,11 +459,11 @@ func testExplicitlyBridged() {
470459
// CHECK-NEXT: produceBridgedSwiftArray([BridgedSwift[[A:#[0-9]+]](0), BridgedSwift[[B:#[0-9]+]](1), BridgedSwift[[C:#[0-9]+]](2), BridgedSwift[[D:#[0-9]+]](3), BridgedSwift[[E:#[0-9]+]](4)])
471460
testBridgedSwift(Thunks())
472461
// CHECK-NEXT: 5 elements in the array
473-
// CHECK-NEXT: BridgedObjC[[A:#[0-9]+]](0)
474-
// CHECK-NEXT: BridgedObjC[[B:#[0-9]+]](1)
475-
// CHECK-NEXT: BridgedObjC[[C:#[0-9]+]](2)
476-
// CHECK-NEXT: BridgedObjC[[D:#[0-9]+]](3)
477-
// CHECK-NEXT: BridgedObjC[[E:#[0-9]+]](4)
462+
// CHECK-NEXT: Derived[[A:#[0-9]+]](0)
463+
// CHECK-NEXT: Derived[[B:#[0-9]+]](1)
464+
// CHECK-NEXT: Derived[[C:#[0-9]+]](2)
465+
// CHECK-NEXT: Derived[[D:#[0-9]+]](3)
466+
// CHECK-NEXT: Derived[[E:#[0-9]+]](4)
478467

479468
// CHECK-NEXT: acceptBridgedSwiftArray([BridgedSwift[[A:#[0-9]+]](10), BridgedSwift[[B:#[0-9]+]](11), BridgedSwift[[C:#[0-9]+]](12), BridgedSwift[[D:#[0-9]+]](13), BridgedSwift[[E:#[0-9]+]](14)])
480469
}

test/1_stdlib/Inputs/ArrayBridge/ArrayBridge.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@
1414
id arrayAsID(NSArray* a);
1515
NSArray* idAsArray(id a);
1616

17-
void testBridgedObjC(id thunks);
17+
void testDerived(id thunks);
1818
void testBridgedSwift(id thunks);

test/1_stdlib/Inputs/ArrayBridge/ArrayBridge.m

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
#include <stdio.h>
1818

1919
@interface Thunks : NSObject
20-
- (id)createBridgedObjC:(NSInteger)value;
21-
- (void)acceptBridgedObjCArray:(NSArray *)x;
22-
- (NSArray *)produceBridgedObjCArray:(NSInteger)numItems;
20+
- (id)createDerived:(NSInteger)value;
21+
- (void)acceptDerivedArray:(NSArray *)x;
22+
- (NSArray *)produceDerivedArray:(NSInteger)numItems;
2323
- (void)acceptBridgedSwiftArray:(NSArray *)x;
2424
- (NSArray *)produceBridgedSwiftArray:(NSInteger)numItems;
2525
@end
@@ -32,9 +32,9 @@ id arrayAsID(NSArray* a) {
3232
return a;
3333
}
3434

35-
void testBridgedObjC(id thunks) {
35+
void testDerived(id thunks) {
3636
// Retrieve an array from Swift.
37-
NSArray *fromObjCArr = [thunks produceBridgedObjCArray: 5];
37+
NSArray *fromObjCArr = [thunks produceDerivedArray: 5];
3838
printf("%d elements in the array\n", (int)fromObjCArr.count);
3939

4040
for (id obj in fromObjCArr) {
@@ -43,12 +43,12 @@ void testBridgedObjC(id thunks) {
4343

4444
// Send an array to swift.
4545
NSMutableArray *toObjCArr = [[NSMutableArray alloc] init];
46-
[toObjCArr addObject: [thunks createBridgedObjC:10]];
47-
[toObjCArr addObject: [thunks createBridgedObjC:11]];
48-
[toObjCArr addObject: [thunks createBridgedObjC:12]];
49-
[toObjCArr addObject: [thunks createBridgedObjC:13]];
50-
[toObjCArr addObject: [thunks createBridgedObjC:14]];
51-
[thunks acceptBridgedObjCArray: toObjCArr];
46+
[toObjCArr addObject: [thunks createDerived:10]];
47+
[toObjCArr addObject: [thunks createDerived:11]];
48+
[toObjCArr addObject: [thunks createDerived:12]];
49+
[toObjCArr addObject: [thunks createDerived:13]];
50+
[toObjCArr addObject: [thunks createDerived:14]];
51+
[thunks acceptDerivedArray: toObjCArr];
5252
}
5353

5454
void testBridgedSwift(id thunks) {
@@ -62,10 +62,10 @@ void testBridgedSwift(id thunks) {
6262

6363
// Send an array to swift.
6464
NSMutableArray *toSwiftArr = [[NSMutableArray alloc] init];
65-
[toSwiftArr addObject: [thunks createBridgedObjC:10]];
66-
[toSwiftArr addObject: [thunks createBridgedObjC:11]];
67-
[toSwiftArr addObject: [thunks createBridgedObjC:12]];
68-
[toSwiftArr addObject: [thunks createBridgedObjC:13]];
69-
[toSwiftArr addObject: [thunks createBridgedObjC:14]];
65+
[toSwiftArr addObject: [thunks createDerived:10]];
66+
[toSwiftArr addObject: [thunks createDerived:11]];
67+
[toSwiftArr addObject: [thunks createDerived:12]];
68+
[toSwiftArr addObject: [thunks createDerived:13]];
69+
[toSwiftArr addObject: [thunks createDerived:14]];
7070
[thunks acceptBridgedSwiftArray: toSwiftArr];
7171
}

0 commit comments

Comments
 (0)