Skip to content

Commit bd024bd

Browse files
committed
[stdlib] Enable NewArray validation test on non-Darwin platforms
1 parent 05397e3 commit bd024bd

File tree

1 file changed

+25
-21
lines changed

1 file changed

+25
-21
lines changed

validation-test/stdlib/NewArray.swift.gyb

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@
1313
// RUN-DISABLED: %target-run-simple-swift | FileCheck %s
1414
// RUN: rm -rf %t && mkdir -p %t && %S/../../utils/gyb %s -o %t/NewArray.swift
1515
// 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
1717
// REQUIRES: executable_test
1818

19-
// XFAIL: linux
20-
2119
import StdlibUnittest
2220
import StdlibCollectionUnittest
2321

@@ -185,6 +183,7 @@ func testAsArray() {
185183
}
186184
testAsArray()
187185

186+
#if _runtime(_ObjC)
188187
import Foundation
189188

190189
func nsArrayOfStrings() -> Array<NSString> {
@@ -198,51 +197,52 @@ func nsArrayOfStrings() -> Array<NSString> {
198197

199198
func testCocoa() {
200199
print("== Cocoa ==")
201-
// CHECK: == Cocoa ==
200+
// CHECK-objc: == Cocoa ==
202201

203202
var a = nsArrayOfStrings()
204203
printSequence(a)
205-
// CHECK-NEXT: [foo, bar, baz]
204+
// CHECK-objc-NEXT: [foo, bar, baz]
206205

207206
a.append("qux")
208207
printSequence(a)
209-
// CHECK-NEXT: [foo, bar, baz, qux]
208+
// CHECK-objc-NEXT: [foo, bar, baz, qux]
210209

211210
a = nsArrayOfStrings()
212211
printSequence(a)
213-
// CHECK-NEXT: [foo, bar, baz]
212+
// CHECK-objc-NEXT: [foo, bar, baz]
214213

215214
let b = a
216215

217216
a[1] = "garply"
218217
printSequence(a)
219-
// CHECK-NEXT: [foo, garply, baz]
218+
// CHECK-objc-NEXT: [foo, garply, baz]
220219

221220
// Mutating an element in a has no effect on b
222221
printSequence(b)
223-
// CHECK-NEXT: [foo, bar, baz]
222+
// CHECK-objc-NEXT: [foo, bar, baz]
224223

225224
a = nsArrayOfStrings()
226225
a.insert("bag", at: 2)
227226
printSequence(a)
228-
// CHECK-NEXT: [foo, bar, bag, baz]
227+
// CHECK-objc-NEXT: [foo, bar, bag, baz]
229228

230229
a = nsArrayOfStrings()
231230
a.reserveCapacity(30)
232231
printSequence(a)
233-
// CHECK-NEXT: [foo, bar, baz]
232+
// CHECK-objc-NEXT: [foo, bar, baz]
234233

235234
print(a.capacity >= 30)
236-
// CHECK-NEXT: true
235+
// CHECK-objc-NEXT: true
237236

238237
// Prove that we create contiguous storage for an opaque NSArray
239238
a.withUnsafeBufferPointer {
240239
(p) -> () in
241240
print(p[0])
242-
// CHECK-NEXT: foo
241+
// CHECK-objc-NEXT: foo
243242
}
244243
}
245244
testCocoa()
245+
#endif // _runtime(_ObjC)
246246

247247
extension ArraySlice {
248248
mutating func qsort(_ compare: (Element, Element) -> Bool) {
@@ -280,29 +280,31 @@ func testSlice() {
280280
printSequence(b) // CHECK-NEXT: [0, 1, 2, 3, 5, 6, 7, 8, 9, 41]
281281
printSequence(c) // CHECK-NEXT: [0, 1, 2, 3, 41, 5, 6, 7, 8, 9]
282282

283+
#if _runtime(_ObjC)
283284
// Now a bridged slice
284285
var a = Array<NSString>(
285286
_ArrayBuffer(nsArray: nsArrayOfStrings()._buffer._asCocoaArray()))
286287

287-
printSequence(a) // CHECK-NEXT: [foo, bar, baz]
288+
printSequence(a) // CHECK-objc-NEXT: [foo, bar, baz]
288289

289-
var aSlice = a[1..<3] // CHECK-NEXT: [bar, baz]
290+
var aSlice = a[1..<3] // CHECK-objc-NEXT: [bar, baz]
290291
printSequence(aSlice)
291292

292293
// Writing into aSlice works
293-
aSlice[1] = "buzz" // CHECK-NEXT: [buzz, baz]
294+
aSlice[1] = "buzz" // CHECK-objc-NEXT: [buzz, baz]
294295
printSequence(aSlice)
295296

296297
// ...and doesn't affect a
297-
printSequence(a) // CHECK-NEXT: [foo, bar, baz]
298+
printSequence(a) // CHECK-objc-NEXT: [foo, bar, baz]
298299

299300
// Appending to aSlice works...
300301
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]
303304

304305
// And doesn't change a
305-
printSequence(a) // CHECK-NEXT: [foo, bar, baz]
306+
printSequence(a) // CHECK-objc-NEXT: [foo, bar, baz]
307+
#endif
306308
}
307309
testSlice()
308310

@@ -454,6 +456,7 @@ func rdar16958865() {
454456
}
455457
rdar16958865()
456458
459+
#if _runtime(_ObjC)
457460
#if os(OSX)
458461
import AppKit
459462
typealias OSColor = NSColor
@@ -472,7 +475,8 @@ class Rdar16914909 : NSObject {
472475
}
473476
474477
Rdar16914909().doColorStuff()
475-
// CHECK-NEXT: appended
478+
// CHECK-objc-NEXT: appended
479+
#endif
476480
477481
print("leaks = \(LifetimeTracked.instances)")
478482
// CHECK-NEXT: leaks = 0

0 commit comments

Comments
 (0)