Skip to content

Commit 93f182a

Browse files
committed
[Test] Re-write the test for SR-13495 to use StblibUnitTest
1 parent 8bb3082 commit 93f182a

File tree

2 files changed

+40
-49
lines changed

2 files changed

+40
-49
lines changed

test/SILOptimizer/di_property_wrappers.swift

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -534,54 +534,6 @@ func testSR_12341() {
534534
_ = SR_12341(condition: true)
535535
}
536536

537-
class TestLeak: CustomStringConvertible {
538-
let val: Int
539-
init(val: Int) { self.val = val }
540-
deinit { print(" .. \(self).deinit") }
541-
var description: String { "TestLeak(\(val))" }
542-
}
543-
544-
struct SR_13495 {
545-
@Wrapper var wrapped: TestLeak
546-
var str: String
547-
548-
init() {
549-
wrapped = TestLeak(val: 42)
550-
str = ""
551-
wrapped = TestLeak(val: 27)
552-
}
553-
554-
init(conditionalInit: Bool) {
555-
if (conditionalInit) {
556-
wrapped = TestLeak(val: 42)
557-
}
558-
str = ""
559-
wrapped = TestLeak(val: 27)
560-
}
561-
}
562-
563-
func testSR_13495() {
564-
// CHECK: ## SR_13495
565-
print("\n## SR_13495")
566-
567-
// CHECK-NEXT: .. init TestLeak(42)
568-
// CHECK-NEXT: .. TestLeak(42).deinit
569-
// CHECK-NEXT: .. set TestLeak(27)
570-
// CHECK-NEXT: .. TestLeak(27).deinit
571-
_ = SR_13495()
572-
573-
// CHECK-NEXT: .. init TestLeak(42)
574-
// CHECK-NEXT: .. TestLeak(42).deinit
575-
// CHECK-NEXT: .. init TestLeak(27)
576-
// CHECK-NEXT: .. TestLeak(27).deinit
577-
_ = SR_13495(conditionalInit: true)
578-
579-
// CHECK-NEXT: .. init TestLeak(27)
580-
// CHECK-NEXT: .. TestLeak(27).deinit
581-
_ = SR_13495(conditionalInit: false)
582-
}
583-
584-
585537
@propertyWrapper
586538
struct NonMutatingSetterWrapper<Value> {
587539
var value: Value
@@ -620,5 +572,4 @@ testDefaultNilOptIntStruct()
620572
testComposed()
621573
testWrapperInitWithDefaultArg()
622574
testSR_12341()
623-
testSR_13495()
624575
testNonMutatingSetterStruct()
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: %target-build-swift %s -o %t/a.out
3+
// RUN: %target-codesign %t/a.out
4+
// RUN: %target-run %t/a.out
5+
6+
// REQUIRES: executable_test
7+
8+
import StdlibUnittest
9+
10+
@propertyWrapper
11+
struct Wrapper<T> {
12+
var wrappedValue: T
13+
}
14+
15+
struct TestWrappedValueLeak {
16+
@Wrapper var wrapped: LifetimeTracked = LifetimeTracked(0)
17+
var str: String
18+
19+
init() {
20+
wrapped = LifetimeTracked(42)
21+
str = ""
22+
wrapped = LifetimeTracked(27)
23+
}
24+
25+
init(conditionalInit: Bool) {
26+
if (conditionalInit) {
27+
wrapped = LifetimeTracked(42)
28+
}
29+
str = ""
30+
wrapped = LifetimeTracked(27)
31+
}
32+
}
33+
34+
TestSuite("Property Wrapper DI").test("test wrapped value leak") {
35+
_ = TestWrappedValueLeak()
36+
_ = TestWrappedValueLeak(conditionalInit: true)
37+
_ = TestWrappedValueLeak(conditionalInit: false)
38+
}
39+
40+
runAllTests()

0 commit comments

Comments
 (0)