13
13
// RUN-DISABLED: %target-run-simple-swift | FileCheck %s
14
14
// RUN: rm -rf %t && mkdir -p %t && %S/../../utils/gyb %s -o %t/NewArray.swift
15
15
// RUN: %S/../../utils/line-directive %t/NewArray.swift -- %target-build-swift %t/NewArray.swift -o %t/a.out -Xfrontend -disable-access-control
16
- // RUN: %target-run %t/a.out 2>&1 | %S/../../utils/line-directive %t/NewArray.swift -- FileCheck %t/NewArray.swift
16
+ // RUN: %target-run %t/a.out 2>&1 | %S/../../utils/line-directive %t/NewArray.swift -- FileCheck %t/NewArray.swift --check-prefix=CHECK --check-prefix=CHECK-%target-runtime
17
17
// REQUIRES: executable_test
18
18
19
- // XFAIL: linux
20
-
21
19
import StdlibUnittest
22
20
import StdlibCollectionUnittest
23
21
@@ -185,6 +183,7 @@ func testAsArray() {
185
183
}
186
184
testAsArray ( )
187
185
186
+ #if _runtime(_ObjC)
188
187
import Foundation
189
188
190
189
func nsArrayOfStrings( ) -> Array < NSString > {
@@ -198,51 +197,52 @@ func nsArrayOfStrings() -> Array<NSString> {
198
197
199
198
func testCocoa( ) {
200
199
print ( " == Cocoa == " )
201
- // CHECK: == Cocoa ==
200
+ // CHECK-objc : == Cocoa ==
202
201
203
202
var a = nsArrayOfStrings ( )
204
203
printSequence ( a)
205
- // CHECK-NEXT: [foo, bar, baz]
204
+ // CHECK-objc- NEXT: [foo, bar, baz]
206
205
207
206
a. append ( " qux " )
208
207
printSequence ( a)
209
- // CHECK-NEXT: [foo, bar, baz, qux]
208
+ // CHECK-objc- NEXT: [foo, bar, baz, qux]
210
209
211
210
a = nsArrayOfStrings ( )
212
211
printSequence ( a)
213
- // CHECK-NEXT: [foo, bar, baz]
212
+ // CHECK-objc- NEXT: [foo, bar, baz]
214
213
215
214
let b = a
216
215
217
216
a [ 1 ] = " garply "
218
217
printSequence ( a)
219
- // CHECK-NEXT: [foo, garply, baz]
218
+ // CHECK-objc- NEXT: [foo, garply, baz]
220
219
221
220
// Mutating an element in a has no effect on b
222
221
printSequence ( b)
223
- // CHECK-NEXT: [foo, bar, baz]
222
+ // CHECK-objc- NEXT: [foo, bar, baz]
224
223
225
224
a = nsArrayOfStrings ( )
226
225
a. insert ( " bag " , at: 2 )
227
226
printSequence ( a)
228
- // CHECK-NEXT: [foo, bar, bag, baz]
227
+ // CHECK-objc- NEXT: [foo, bar, bag, baz]
229
228
230
229
a = nsArrayOfStrings ( )
231
230
a. reserveCapacity ( 30 )
232
231
printSequence ( a)
233
- // CHECK-NEXT: [foo, bar, baz]
232
+ // CHECK-objc- NEXT: [foo, bar, baz]
234
233
235
234
print ( a. capacity >= 30 )
236
- // CHECK-NEXT: true
235
+ // CHECK-objc- NEXT: true
237
236
238
237
// Prove that we create contiguous storage for an opaque NSArray
239
238
a. withUnsafeBufferPointer {
240
239
( p) -> ( ) in
241
240
print ( p [ 0 ] )
242
- // CHECK-NEXT: foo
241
+ // CHECK-objc- NEXT: foo
243
242
}
244
243
}
245
244
testCocoa ( )
245
+ #endif // _runtime(_ObjC)
246
246
247
247
extension ArraySlice {
248
248
mutating func qsort( _ compare: ( Element , Element ) -> Bool ) {
@@ -280,29 +280,31 @@ func testSlice() {
280
280
printSequence ( b) // CHECK-NEXT: [0, 1, 2, 3, 5, 6, 7, 8, 9, 41]
281
281
printSequence ( c) // CHECK-NEXT: [0, 1, 2, 3, 41, 5, 6, 7, 8, 9]
282
282
283
+ #if _runtime(_ObjC)
283
284
// Now a bridged slice
284
285
var a = Array < NSString > (
285
286
_ArrayBuffer ( nsArray: nsArrayOfStrings ( ) . _buffer. _asCocoaArray ( ) ) )
286
287
287
- printSequence ( a) // CHECK-NEXT: [foo, bar, baz]
288
+ printSequence ( a) // CHECK-objc- NEXT: [foo, bar, baz]
288
289
289
- var aSlice = a [ 1 ..< 3 ] // CHECK-NEXT: [bar, baz]
290
+ var aSlice = a [ 1 ..< 3 ] // CHECK-objc- NEXT: [bar, baz]
290
291
printSequence ( aSlice)
291
292
292
293
// Writing into aSlice works
293
- aSlice [ 1 ] = " buzz " // CHECK-NEXT: [buzz, baz]
294
+ aSlice [ 1 ] = " buzz " // CHECK-objc- NEXT: [buzz, baz]
294
295
printSequence ( aSlice)
295
296
296
297
// ...and doesn't affect a
297
- printSequence ( a) // CHECK-NEXT: [foo, bar, baz]
298
+ printSequence ( a) // CHECK-objc- NEXT: [foo, bar, baz]
298
299
299
300
// Appending to aSlice works...
300
301
aSlice. append ( " fodder " )
301
- print ( " < \( aSlice. count) > " ) // CHECK-NEXT: <3>
302
- printSequence ( aSlice) // CHECK-NEXT: [buzz, baz, fodder]
302
+ print ( " < \( aSlice. count) > " ) // CHECK-objc- NEXT: <3>
303
+ printSequence ( aSlice) // CHECK-objc- NEXT: [buzz, baz, fodder]
303
304
304
305
// And doesn't change a
305
- printSequence ( a) // CHECK-NEXT: [foo, bar, baz]
306
+ printSequence ( a) // CHECK-objc-NEXT: [foo, bar, baz]
307
+ #endif
306
308
}
307
309
testSlice ( )
308
310
@@ -454,6 +456,7 @@ func rdar16958865() {
454
456
}
455
457
rdar16958865()
456
458
459
+ #if _runtime(_ObjC)
457
460
#if os(OSX)
458
461
import AppKit
459
462
typealias OSColor = NSColor
@@ -472,7 +475,8 @@ class Rdar16914909 : NSObject {
472
475
}
473
476
474
477
Rdar16914909().doColorStuff()
475
- // CHECK-NEXT: appended
478
+ // CHECK-objc-NEXT: appended
479
+ #endif
476
480
477
481
print( " leaks = \( LifetimeTracked . instances) " )
478
482
// CHECK-NEXT: leaks = 0
0 commit comments