Files
swift-mirror/test/Interop/Cxx/class/access/non-public-inheritance-executable.swift

120 lines
2.8 KiB
Swift

//--- blessed.swift
// Test that all accessible inherited methods can be called.
//
// RUN: split-file %s %t
// RUN: %target-build-swift -module-name main %t/blessed.swift -I %S/Inputs -o %t/out -Xfrontend -cxx-interoperability-mode=default
// RUN: %target-codesign %t/out
// RUN: %target-run %t/out
//
// REQUIRES: executable_test
import StdlibUnittest
import NonPublicInheritance
var Tests = TestSuite("NonPublicInheritance")
Tests.test("Base") { Base().ext() }
Tests.test("PublBase") { PublBase().ext() }
Tests.test("ProtBase") { ProtBase().ext() }
Tests.test("PrivBase") { PrivBase().ext() }
Tests.test("PublPublBase") { PublPublBase().ext() }
Tests.test("ProtPublBase") { ProtPublBase().ext() }
Tests.test("PrivPublBase") { PrivPublBase().ext() }
Tests.test("PublProtBase") { PublProtBase().ext() }
Tests.test("ProtProtBase") { ProtProtBase().ext() }
Tests.test("PrivProtBase") { PrivProtBase().ext() }
Tests.test("PublPrivBase") { PublPrivBase().ext() }
Tests.test("ProtPrivBase") { ProtPrivBase().ext() }
Tests.test("PrivPrivBase") { PrivPrivBase().ext() }
extension Base {
func ext() {
expectEqual(publ(), PUBL_RETURN_VAL)
expectEqual(prot(), PROT_RETURN_VAL)
expectEqual(priv(), PRIV_RETURN_VAL)
}
}
extension PublBase {
func ext() {
expectEqual(publ(), PUBL_RETURN_VAL)
expectEqual(prot(), PROT_RETURN_VAL)
}
}
extension PublPublBase {
func ext() {
expectEqual(publ(), PUBL_RETURN_VAL)
expectEqual(prot(), PROT_RETURN_VAL)
}
}
extension ProtPublBase {
func ext() {
expectEqual(publ(), PUBL_RETURN_VAL)
expectEqual(prot(), PROT_RETURN_VAL)
}
}
extension PrivPublBase {
func ext() {
expectEqual(publ(), PUBL_RETURN_VAL)
expectEqual(prot(), PROT_RETURN_VAL)
}
}
extension ProtBase {
func ext() {
expectEqual(publ(), PUBL_RETURN_VAL)
expectEqual(prot(), PROT_RETURN_VAL)
}
}
extension PublProtBase {
func ext() {
expectEqual(publ(), PUBL_RETURN_VAL)
expectEqual(prot(), PROT_RETURN_VAL)
}
}
extension ProtProtBase {
func ext() {
expectEqual(publ(), PUBL_RETURN_VAL)
expectEqual(prot(), PROT_RETURN_VAL)
}
}
extension PrivProtBase {
func ext() {
expectEqual(publ(), PUBL_RETURN_VAL)
expectEqual(prot(), PROT_RETURN_VAL)
}
}
extension PrivBase {
func ext() {
expectEqual(publ(), PUBL_RETURN_VAL)
expectEqual(prot(), PROT_RETURN_VAL)
}
}
extension PublPrivBase {
func ext() {
// Nothing to test (nothing is accessible)
}
}
extension ProtPrivBase {
func ext() {
// Nothing to test (nothing is accessible)
}
}
extension PrivPrivBase {
func ext() {
// Nothing to test (nothing is accessible)
}
}
runAllTests()