Files
swift-mirror/validation-test/StdlibUnittest/FoundationExtras.swift
Mike Ash ea6a2e26f2 [Test] Remove stdlib/NSStringAPI.swift and some supporting code.
This is testing the Foundation overlay, which is no longer part of the Swift project.
2023-07-12 12:18:58 -04:00

47 lines
1.2 KiB
Swift

// RUN: %target-run-simple-swift
// REQUIRES: executable_test
// REQUIRES: objc_interop
import StdlibUnittest
import Foundation
import StdlibUnittestFoundationExtras
var FoundationExtrasTests = TestSuite("FoundationExtras")
@_silgen_name("objc_autorelease")
func objc_autorelease(_ ref: __owned AnyObject)
FoundationExtrasTests.test("objc_autorelease()") {
autoreleasepool {
// Check that objc_autorelease indeed autoreleases.
objc_autorelease(LifetimeTracked(101))
expectEqual(1, LifetimeTracked.instances)
}
}
FoundationExtrasTests.test("autoreleasepoolIfUnoptimizedReturnAutoreleased()/autorelease") {
autoreleasepool {
autoreleasepoolIfUnoptimizedReturnAutoreleased {
objc_autorelease(LifetimeTracked(103))
expectEqual(1, LifetimeTracked.instances)
}
}
}
FoundationExtrasTests.test("autoreleasepoolIfUnoptimizedReturnAutoreleased()/return-autoreleased") {
autoreleasepool {
autoreleasepoolIfUnoptimizedReturnAutoreleased {
let nsa = [ LifetimeTracked(104) ] as NSArray
expectEqual(1, LifetimeTracked.instances)
_blackHole(nsa[0])
}
expectEqual(0, LifetimeTracked.instances)
}
}
runAllTests()