Skip to content

Commit 09b59c5

Browse files
committed
DI: More tests
1 parent 4b2f008 commit 09b59c5

6 files changed

+863
-145
lines changed

test/Interpreter/failable_initializers.swift

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,13 +263,28 @@ func mustFail<T>(f: () -> T?) {
263263
}
264264
}
265265

266+
FailableInitTestSuite.test("FailableInitSuccess_Root") {
267+
_ = Bear(n: 0, before: false)
268+
_ = Bear(n: 0, before: false, after: false)
269+
}
270+
266271
FailableInitTestSuite.test("FailableInitFailure_Root") {
267272
mustFail { Bear(n: 0, before: true) }
268273
mustFail { Bear(n: 0, after: true) }
269274
mustFail { Bear(n: 0, before: true, after: false) }
270275
mustFail { Bear(n: 0, before: false, after: true) }
271276
}
272277

278+
FailableInitTestSuite.test("FailableInitSuccess_Derived") {
279+
_ = PolarBear(n: 0, before: false)
280+
_ = PolarBear(n: 0, during: false)
281+
_ = PolarBear(n: 0, before: false, during: false)
282+
_ = PolarBear(n: 0, after: false)
283+
_ = PolarBear(n: 0, during: false, after: false)
284+
_ = PolarBear(n: 0, before: false, after: false)
285+
_ = PolarBear(n: 0, before: false, during: false, after: false)
286+
}
287+
273288
FailableInitTestSuite.test("FailableInitFailure_Derived") {
274289
mustFail { PolarBear(n: 0, before: true) }
275290
mustFail { PolarBear(n: 0, during: true) }
@@ -285,10 +300,27 @@ FailableInitTestSuite.test("FailableInitFailure_Derived") {
285300
mustFail { PolarBear(n: 0, before: false, during: false, after: true) }
286301
}
287302

303+
FailableInitTestSuite.test("DesignatedInitSuccess_DerivedGeneric") {
304+
_ = GuineaPig<LifetimeTracked>(t: LifetimeTracked(0), during: false)
305+
}
306+
288307
FailableInitTestSuite.test("DesignatedInitFailure_DerivedGeneric") {
289308
mustFail { GuineaPig<LifetimeTracked>(t: LifetimeTracked(0), during: true) }
290309
}
291310

311+
FailableInitTestSuite.test("ConvenienceInitSuccess_Root") {
312+
_ = Bear(before: false)
313+
_ = Bear(during: false)
314+
_ = Bear(before: false, during: false)
315+
_ = Bear(after: false)
316+
_ = Bear(before: false, after: false)
317+
_ = Bear(during: false, after: false)
318+
_ = Bear(before: false, during: false, after: false)
319+
320+
_ = Bear(IUO: false)
321+
_ = Bear(force: false)
322+
}
323+
292324
FailableInitTestSuite.test("ConvenienceInitFailure_Root") {
293325
mustFail { Bear(before: true) }
294326
mustFail { Bear(during: true) }
@@ -307,6 +339,16 @@ FailableInitTestSuite.test("ConvenienceInitFailure_Root") {
307339
_ = Bear(force: false)
308340
}
309341

342+
FailableInitTestSuite.test("ConvenienceInitSuccess_Derived") {
343+
_ = PolarBear(before: false)
344+
_ = PolarBear(during: false)
345+
_ = PolarBear(before: false, during: false)
346+
_ = PolarBear(after: false)
347+
_ = PolarBear(before: false, after: false)
348+
_ = PolarBear(during: false, after: false)
349+
_ = PolarBear(before: false, during: false, after: false)
350+
}
351+
310352
FailableInitTestSuite.test("ConvenienceInitFailure_Derived") {
311353
mustFail { PolarBear(before: true) }
312354
mustFail { PolarBear(during: true) }

test/Interpreter/objc_throwing_initializers.swift

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,14 @@ func mustThrow<T>(_ f: () throws -> T) {
196196
} catch {}
197197
}
198198

199+
ThrowingInitTestSuite.test("DesignatedInitSuccess_Root") {
200+
_ = try! Bear(n: 0, before: false)
201+
_ = try! Bear(n: 0, after: false)
202+
_ = try! Bear(n: 0, before: false, after: false)
203+
_ = try! Bear(n: 0, before: false, after: false)
204+
expectEqual(NSLifetimeTracked.count(), 0)
205+
}
206+
199207
ThrowingInitTestSuite.test("DesignatedInitFailure_Root") {
200208
mustThrow { try Bear(n: 0, before: true) }
201209
mustThrow { try Bear(n: 0, after: true) }
@@ -204,6 +212,17 @@ ThrowingInitTestSuite.test("DesignatedInitFailure_Root") {
204212
expectEqual(NSLifetimeTracked.count(), 0)
205213
}
206214

215+
ThrowingInitTestSuite.test("DesignatedInitSuccess_Derived") {
216+
_ = try! PolarBear(n: 0, before: false)
217+
_ = try! PolarBear(n: 0, during: false)
218+
_ = try! PolarBear(n: 0, before: false, during: false)
219+
_ = try! PolarBear(n: 0, after: false)
220+
_ = try! PolarBear(n: 0, during: false, after: false)
221+
_ = try! PolarBear(n: 0, before: false, after: false)
222+
_ = try! PolarBear(n: 0, before: false, during: false, after: false)
223+
expectEqual(NSLifetimeTracked.count(), 0)
224+
}
225+
207226
ThrowingInitTestSuite.test("DesignatedInitFailure_Derived") {
208227
mustThrow { try PolarBear(n: 0, before: true) }
209228
mustThrow { try PolarBear(n: 0, during: true) }
@@ -220,11 +239,30 @@ ThrowingInitTestSuite.test("DesignatedInitFailure_Derived") {
220239
expectEqual(NSLifetimeTracked.count(), 0)
221240
}
222241

242+
ThrowingInitTestSuite.test("DesignatedInitSuccess_DerivedGeneric") {
243+
_ = try! GuineaPig(t: LifetimeTracked(0), during: false)
244+
expectEqual(NSLifetimeTracked.count(), 0)
245+
}
246+
223247
ThrowingInitTestSuite.test("DesignatedInitFailure_DerivedGeneric") {
224248
mustThrow { try GuineaPig(t: LifetimeTracked(0), during: true) }
225249
expectEqual(NSLifetimeTracked.count(), 0)
226250
}
227251

252+
ThrowingInitTestSuite.test("ConvenienceInitSuccess_Root") {
253+
_ = try! Bear(before: false)
254+
_ = try! Bear(before2: false)
255+
_ = try! Bear(before: false, before2: false)
256+
_ = try! Bear(during: false)
257+
_ = try! Bear(before: false, during: false)
258+
_ = try! Bear(after: false)
259+
_ = try! Bear(before: false, after: false)
260+
_ = try! Bear(during: false, after: false)
261+
_ = try! Bear(before: false, during: false, after: false)
262+
_ = try! Bear(before: false, before2: false, during: false, after: false)
263+
expectEqual(NSLifetimeTracked.count(), 0)
264+
}
265+
228266
ThrowingInitTestSuite.test("ConvenienceInitFailure_Root") {
229267
mustThrow { try Bear(before: true) }
230268
mustThrow { try Bear(before2: true) }
@@ -248,6 +286,20 @@ ThrowingInitTestSuite.test("ConvenienceInitFailure_Root") {
248286
expectEqual(NSLifetimeTracked.count(), 0)
249287
}
250288

289+
ThrowingInitTestSuite.test("ConvenienceInitSuccess_Derived") {
290+
_ = try! PolarBear(before: false)
291+
_ = try! PolarBear(before2: false)
292+
_ = try! PolarBear(before: false, before2: false)
293+
_ = try! PolarBear(during: false)
294+
_ = try! PolarBear(before: false, during: false)
295+
_ = try! PolarBear(after: false)
296+
_ = try! PolarBear(before: false, after: false)
297+
_ = try! PolarBear(during: false, after: false)
298+
_ = try! PolarBear(before: false, during: false, after: false)
299+
_ = try! PolarBear(before: false, before2: false, during: false, after: false)
300+
expectEqual(NSLifetimeTracked.count(), 0)
301+
}
302+
251303
ThrowingInitTestSuite.test("ConvenienceInitFailure_Derived") {
252304
mustThrow { try PolarBear(before: true) }
253305
mustThrow { try PolarBear(before2: true) }

test/Interpreter/protocol_extensions.swift

Lines changed: 0 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -350,98 +350,4 @@ ProtocolExtensionTestSuite.test("WitnessSelf") {
350350
}
351351
}
352352

353-
protocol TrivialInit {
354-
init()
355-
init(throws: Bool) throws
356-
}
357-
358-
enum SillyError : Error {
359-
case error
360-
}
361-
362-
struct TrivialInitStruct : TrivialInit {
363-
let l = LifetimeTracked(0)
364-
365-
init() {}
366-
367-
init(throws: Bool) throws {
368-
if `throws` {
369-
throw SillyError.error
370-
}
371-
}
372-
}
373-
374-
extension TrivialInit {
375-
init(throwsFirst: Bool, throwsSecond: Bool, initThenInit: ()) throws {
376-
try self.init(throws: throwsFirst)
377-
try self.init(throws: throwsSecond)
378-
}
379-
380-
init(throwsFirst: Bool, throwsSecond: Bool, initThenAssign: ()) throws {
381-
try self.init(throws: throwsFirst)
382-
self = try Self(throws: throwsSecond)
383-
}
384-
385-
init(throwsFirst: Bool, throwsSecond: Bool, assignThenInit: ()) throws {
386-
self = try Self(throws: throwsFirst)
387-
try self.init(throws: throwsSecond)
388-
}
389-
390-
init(throwsFirst: Bool, throwsSecond: Bool, assignThenAssign: ()) throws {
391-
self = try Self(throws: throwsFirst)
392-
try self.init(throws: throwsSecond)
393-
}
394-
}
395-
396-
ProtocolExtensionTestSuite.test("ExtensionInitializer") {
397-
do {
398-
_ = try TrivialInitStruct(throwsFirst: false, throwsSecond: false, initThenInit: ())
399-
_ = try TrivialInitStruct(throwsFirst: false, throwsSecond: false, initThenAssign: ())
400-
_ = try TrivialInitStruct(throwsFirst: false, throwsSecond: false, assignThenInit: ())
401-
_ = try TrivialInitStruct(throwsFirst: false, throwsSecond: false, assignThenAssign: ())
402-
} catch {
403-
preconditionFailure()
404-
}
405-
406-
do {
407-
_ = try TrivialInitStruct(throwsFirst: true, throwsSecond: false, initThenInit: ())
408-
preconditionFailure()
409-
} catch { }
410-
411-
do {
412-
_ = try TrivialInitStruct(throwsFirst: false, throwsSecond: true, initThenInit: ())
413-
preconditionFailure()
414-
} catch { }
415-
416-
do {
417-
_ = try TrivialInitStruct(throwsFirst: true, throwsSecond: false, initThenAssign: ())
418-
preconditionFailure()
419-
} catch { }
420-
421-
do {
422-
_ = try TrivialInitStruct(throwsFirst: false, throwsSecond: true, initThenAssign: ())
423-
preconditionFailure()
424-
} catch { }
425-
426-
do {
427-
_ = try TrivialInitStruct(throwsFirst: true, throwsSecond: false, assignThenInit: ())
428-
preconditionFailure()
429-
} catch { }
430-
431-
do {
432-
_ = try TrivialInitStruct(throwsFirst: false, throwsSecond: true, assignThenInit: ())
433-
preconditionFailure()
434-
} catch { }
435-
436-
do {
437-
_ = try TrivialInitStruct(throwsFirst: true, throwsSecond: false, assignThenAssign: ())
438-
preconditionFailure()
439-
} catch { }
440-
441-
do {
442-
_ = try TrivialInitStruct(throwsFirst: false, throwsSecond: true, assignThenAssign: ())
443-
preconditionFailure()
444-
} catch { }
445-
}
446-
447353
runAllTests()

0 commit comments

Comments
 (0)