Skip to content

Commit 5035fee

Browse files
authored
Merge pull request swiftlang#165 from swiftwasm/main
[pull] swiftwasm from main
2 parents 5a5e766 + fc09501 commit 5035fee

File tree

3 files changed

+81
-5
lines changed

3 files changed

+81
-5
lines changed

Sources/Foundation/NSError.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1412,8 +1412,8 @@ func _convertErrorToNSError(_ error: Error) -> NSError {
14121412
code = error.errorCode
14131413
userInfo = error.errorUserInfo
14141414
} else {
1415-
domain = "SwiftError"
1416-
code = 0
1415+
domain = error._domain
1416+
code = error._code
14171417
userInfo = (_swift_Foundation_getErrorDefaultUserInfo(error) as? [String : Any]) ?? [:]
14181418
}
14191419

Tests/Foundation/Tests/TestFileManager.swift

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,9 @@ class TestFileManager : XCTestCase {
208208
func test_isReadableFile() {
209209
let fm = FileManager.default
210210
let path = NSTemporaryDirectory() + "test_isReadableFile\(NSUUID().uuidString)"
211+
defer {
212+
try? fm.removeItem(atPath: path)
213+
}
211214

212215
do {
213216
// create test file
@@ -233,6 +236,9 @@ class TestFileManager : XCTestCase {
233236
func test_isWritableFile() {
234237
let fm = FileManager.default
235238
let path = NSTemporaryDirectory() + "test_isWritableFile\(NSUUID().uuidString)"
239+
defer {
240+
try? fm.removeItem(atPath: path)
241+
}
236242

237243
do {
238244
// create test file
@@ -253,6 +259,9 @@ class TestFileManager : XCTestCase {
253259
func test_isExecutableFile() {
254260
let fm = FileManager.default
255261
let path = NSTemporaryDirectory() + "test_isExecutableFile\(NSUUID().uuidString)"
262+
defer {
263+
try? fm.removeItem(atPath: path)
264+
}
256265

257266
do {
258267
// create test file
@@ -280,6 +289,9 @@ class TestFileManager : XCTestCase {
280289

281290
do {
282291
let dir_path = NSTemporaryDirectory() + "/test_isDeletableFile_dir/"
292+
defer {
293+
try? fm.removeItem(atPath: dir_path)
294+
}
283295
let file_path = dir_path + "test_isDeletableFile\(NSUUID().uuidString)"
284296
// create test directory
285297
try fm.createDirectory(atPath: dir_path, withIntermediateDirectories: true)
@@ -452,8 +464,9 @@ class TestFileManager : XCTestCase {
452464
let itemPath = NSTemporaryDirectory() + "\(testDirName)/item"
453465
let basePath2 = NSTemporaryDirectory() + "\(testDirName)/path2"
454466
let itemPath2 = NSTemporaryDirectory() + "\(testDirName)/path2/item"
455-
456-
try? fm.removeItem(atPath: basePath)
467+
defer {
468+
try? fm.removeItem(atPath: basePath)
469+
}
457470

458471
do {
459472
try fm.createDirectory(atPath: basePath, withIntermediateDirectories: false, attributes: nil)
@@ -786,6 +799,10 @@ class TestFileManager : XCTestCase {
786799
try? fm.removeItem(atPath: destPath)
787800
}
788801

802+
defer {
803+
cleanup()
804+
}
805+
789806
func createDirectory(atPath path: String) {
790807
do {
791808
try fm.createDirectory(atPath: path, withIntermediateDirectories: false, attributes: nil)

Tests/Foundation/Tests/TestNSError.swift

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@ class TestNSError : XCTestCase {
2222
("test_CustomNSError_errorCode", test_CustomNSError_errorCode),
2323
("test_CustomNSError_errorCodeRawInt", test_CustomNSError_errorCodeRawInt),
2424
("test_CustomNSError_errorCodeRawUInt", test_CustomNSError_errorCodeRawUInt),
25-
("test_errorConvenience", test_errorConvenience)
25+
("test_errorConvenience", test_errorConvenience),
26+
("test_ConvertErrorToNSError_domain", test_ConvertErrorToNSError_domain),
27+
("test_ConvertErrorToNSError_errorCode", test_ConvertErrorToNSError_errorCode),
28+
("test_ConvertErrorToNSError_errorCodeRawInt", test_ConvertErrorToNSError_errorCodeRawInt),
29+
("test_ConvertErrorToNSError_errorCodeRawUInt", test_ConvertErrorToNSError_errorCodeRawUInt),
30+
("test_ConvertErrorToNSError_errorCodeWithAssosiatedValue", test_ConvertErrorToNSError_errorCodeWithAssosiatedValue),
2631
]
2732
}
2833

@@ -106,6 +111,60 @@ class TestNSError : XCTestCase {
106111
XCTFail()
107112
}
108113
}
114+
115+
func test_ConvertErrorToNSError_domain() {
116+
struct CustomSwiftError: Error {
117+
}
118+
XCTAssertTrue((CustomSwiftError() as NSError).domain.contains("CustomSwiftError"))
119+
}
120+
121+
func test_ConvertErrorToNSError_errorCode() {
122+
enum SwiftError: Error {
123+
case zero
124+
case one
125+
case two
126+
}
127+
128+
XCTAssertEqual((SwiftError.zero as NSError).code, 0)
129+
XCTAssertEqual((SwiftError.one as NSError).code, 1)
130+
XCTAssertEqual((SwiftError.two as NSError).code, 2)
131+
}
132+
133+
func test_ConvertErrorToNSError_errorCodeRawInt() {
134+
enum SwiftError: Int, Error {
135+
case minusOne = -1
136+
case fortyTwo = 42
137+
}
138+
139+
XCTAssertEqual((SwiftError.minusOne as NSError).code, -1)
140+
XCTAssertEqual((SwiftError.fortyTwo as NSError).code, 42)
141+
}
142+
143+
func test_ConvertErrorToNSError_errorCodeRawUInt() {
144+
enum SwiftError: UInt, Error {
145+
case fortyTwo = 42
146+
}
147+
148+
XCTAssertEqual((SwiftError.fortyTwo as NSError).code, 42)
149+
}
150+
151+
func test_ConvertErrorToNSError_errorCodeWithAssosiatedValue() {
152+
// Default error code for enum case is based on EnumImplStrategy::getTagIndex
153+
enum SwiftError: Error {
154+
case one // 2
155+
case two // 3
156+
case three(String) // 0
157+
case four // 4
158+
case five(String) // 1
159+
}
160+
161+
XCTAssertEqual((SwiftError.one as NSError).code, 2)
162+
XCTAssertEqual((SwiftError.two as NSError).code, 3)
163+
XCTAssertEqual((SwiftError.three("three") as NSError).code, 0)
164+
XCTAssertEqual((SwiftError.four as NSError).code, 4)
165+
XCTAssertEqual((SwiftError.five("five") as NSError).code, 1)
166+
}
167+
109168
}
110169

111170
class TestURLError: XCTestCase {

0 commit comments

Comments
 (0)