Skip to content

Commit 6651025

Browse files
authored
Merge pull request #688 from JGiola/add-test-coverage-objc-runtime
2 parents fcff708 + d1263d1 commit 6651025

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed

Foundation.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,7 @@
337337
EA08126B1DA80C3600651B70 /* TestNSProgressFraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA08126A1DA80C3600651B70 /* TestNSProgressFraction.swift */; };
338338
EA08126C1DA810BE00651B70 /* ProgressFraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0812681DA71C8A00651B70 /* ProgressFraction.swift */; };
339339
EA418C261D57257D005EAD0D /* NSKeyedArchiverHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA418C251D57257D005EAD0D /* NSKeyedArchiverHelpers.swift */; };
340+
EA54A6FB1DB16D53009E0809 /* TestObjCRuntime.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA54A6FA1DB16D53009E0809 /* TestObjCRuntime.swift */; };
340341
EA66F6361BEED03E00136161 /* TargetConditionals.h in Headers */ = {isa = PBXBuildFile; fileRef = EA66F6351BEED03E00136161 /* TargetConditionals.h */; settings = {ATTRIBUTES = (Public, ); }; };
341342
EA66F6481BF1619600136161 /* NSURLTestData.plist in Resources */ = {isa = PBXBuildFile; fileRef = EA66F63B1BF1619600136161 /* NSURLTestData.plist */; };
342343
EA66F6671BF2F2F100136161 /* CoreFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = EA66F6651BF2F2E800136161 /* CoreFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -782,6 +783,7 @@
782783
EA313DFE1BE7F2E90060A403 /* CFURLComponents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = CFURLComponents.c; sourceTree = "<group>"; };
783784
EA313DFF1BE7F2E90060A403 /* CFURLComponents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFURLComponents.h; sourceTree = "<group>"; };
784785
EA418C251D57257D005EAD0D /* NSKeyedArchiverHelpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSKeyedArchiverHelpers.swift; sourceTree = "<group>"; };
786+
EA54A6FA1DB16D53009E0809 /* TestObjCRuntime.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestObjCRuntime.swift; sourceTree = "<group>"; };
785787
EA66F6351BEED03E00136161 /* TargetConditionals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TargetConditionals.h; path = CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h; sourceTree = SOURCE_ROOT; };
786788
EA66F6381BF1619600136161 /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = "<group>"; };
787789
EA66F63B1BF1619600136161 /* NSURLTestData.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = NSURLTestData.plist; sourceTree = "<group>"; };
@@ -1375,6 +1377,7 @@
13751377
5B6F17961C48631C00935030 /* TestUtils.swift */,
13761378
0383A1741D2E558A0052E5D1 /* TestNSStream.swift */,
13771379
5B1FD9E21D6D17B80080E83C /* TestNSURLSession.swift */,
1380+
EA54A6FA1DB16D53009E0809 /* TestObjCRuntime.swift */,
13781381
);
13791382
name = Tests;
13801383
sourceTree = "<group>";
@@ -2208,6 +2211,7 @@
22082211
5B13B3331C582D4C00651CE2 /* TestNSJSONSerialization.swift in Sources */,
22092212
5B13B33C1C582D4C00651CE2 /* TestNSOrderedSet.swift in Sources */,
22102213
5B13B34A1C582D4C00651CE2 /* TestNSURL.swift in Sources */,
2214+
EA54A6FB1DB16D53009E0809 /* TestObjCRuntime.swift in Sources */,
22112215
5B13B34D1C582D4C00651CE2 /* TestNSUUID.swift in Sources */,
22122216
5B13B3281C582D4C00651CE2 /* TestNSBundle.swift in Sources */,
22132217
5B13B32A1C582D4C00651CE2 /* TestNSCharacterSet.swift in Sources */,

TestFoundation/TestObjCRuntime.swift

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// This source file is part of the Swift.org open source project
2+
//
3+
// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
4+
// Licensed under Apache License v2.0 with Runtime Library Exception
5+
//
6+
// See http://swift.org/LICENSE.txt for license information
7+
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
8+
//
9+
10+
#if DEPLOYMENT_RUNTIME_OBJC || os(Linux)
11+
import Foundation
12+
import XCTest
13+
#else
14+
import SwiftFoundation
15+
import SwiftXCTest
16+
#endif
17+
18+
class SwiftClass {
19+
class InnerClass {}
20+
}
21+
22+
struct SwfitStruct {}
23+
24+
enum SwiftEnum {}
25+
26+
class TestObjCRuntime: XCTestCase {
27+
static var allTests: [(String, (TestObjCRuntime) -> () throws -> Void)] {
28+
return [
29+
("testStringFromClass", testStringFromClass),
30+
("testClassFromString", testClassFromString),
31+
]
32+
}
33+
34+
func testStringFromClass() {
35+
XCTAssertEqual(NSStringFromClass(NSObject.self), "NSObject")
36+
XCTAssertEqual(NSStringFromClass(SwiftClass.self), "TestFoundation.SwiftClass")
37+
#if DEPLOYMENT_RUNTIME_OBJC || os(Linux)
38+
XCTAssertEqual(NSStringFromClass(XCTestCase.self), "XCTest.XCTestCase");
39+
#else
40+
XCTAssertEqual(NSStringFromClass(XCTestCase.self), "SwiftXCTest.XCTestCase");
41+
#endif
42+
}
43+
44+
func testClassFromString() {
45+
XCTAssertNotNil(NSClassFromString("NSObject"))
46+
XCTAssertNotNil(NSClassFromString("TestFoundation.SwiftClass"))
47+
XCTAssertNil(NSClassFromString("TestFoundation.SwiftClass.InnerClass"))
48+
XCTAssertNil(NSClassFromString("SwiftClass"))
49+
XCTAssertNil(NSClassFromString("MadeUpClassName"))
50+
XCTAssertNil(NSClassFromString("SwiftStruct"));
51+
XCTAssertNil(NSClassFromString("SwiftEnum"));
52+
}
53+
}

TestFoundation/main.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,5 @@ XCTMain([
8686
testCase(TestUnitConverter.allTests),
8787
testCase(TestProgressFraction.allTests),
8888
testCase(TestProgress.allTests),
89+
testCase(TestObjCRuntime.allTests),
8990
])

0 commit comments

Comments
 (0)