Files
swift-mirror/validation-test/Evolution/test_class_add_override.swift
Slava Pestov 9c6cd08a9b IRGen: Fix lowering of alloc_ref for resilient classes
We were inlining the size and alignment, which was not correct.
This was the cause of a long-standing ASAN failure in some
library evolution tests.

Fixes <rdar://problem/24540778>.
2017-09-15 00:24:52 -07:00

63 lines
1.3 KiB
Swift

// RUN: %target-resilience-test
// REQUIRES: executable_test
import StdlibUnittest
import class_add_override
var ClassAddOverrideTest = TestSuite("ClassAddOverride")
ClassAddOverrideTest.test("AddOverrideGeneric") {
let g = AddOverrideGeneric<Int>()
if getVersion() == 0 {
expectEqual("Base", g.description)
} else {
expectEqual("Generic", g.description)
}
}
class AddOverrideGenericSubclass<T> : AddOverrideGeneric<T> {
func meaningOfLife() -> Int { return 42 }
}
ClassAddOverrideTest.test("AddOverrideGenericSubclass") {
let g = AddOverrideGenericSubclass<Int>()
expectEqual(42, g.meaningOfLife())
if getVersion() == 0 {
expectEqual("Base", g.description)
} else {
expectEqual("Generic", g.description)
}
}
ClassAddOverrideTest.test("AddOverrideConcrete") {
let c = AddOverrideConcrete()
if getVersion() == 0 {
expectEqual("Base", c.description)
} else {
expectEqual("Concrete", c.description)
}
}
class AddOverrideConcreteSubclass : AddOverrideConcrete {
func meaningOfLife() -> Int { return 42 }
}
ClassAddOverrideTest.test("AddOverrideConcreteSubclass") {
let c = AddOverrideConcreteSubclass()
expectEqual(42, c.meaningOfLife())
if getVersion() == 0 {
expectEqual("Base", c.description)
} else {
expectEqual("Concrete", c.description)
}
}
runAllTests()