Skip to content

Commit aa657bf

Browse files
committed
Properly handle WASI not having write permission to the /tmp folder in the tests
1 parent 33f8c90 commit aa657bf

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

Tests/JSONLoggerTests/PipeHelper.swift

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,28 @@ typealias Pipe = FakePipe
88
final class FakePipe {
99

1010
init() {
11-
try! Data().write(to: fileURL)
12-
assert(FileManager.default.fileExists(atPath: fileURL.absoluteURL.path), "Created file does not exist!")
11+
/* For some reasons, creating the file with `FakePipe.fm.createFile(atPath: filepath, contents: nil)` fails.
12+
* Instead we use the Data.write(to:) method which works. */
13+
guard (try? Data().write(to: fileURL)) != nil else {
14+
fatalError("\u{1B}[91;1mCould not create temporary file.\u{1B}[0m\n\u{1B}[31;1mPlease make sure to run the test with the `--dir \"\(fileURL.deletingLastPathComponent().path)\"` option.\u{1B}[0m")
15+
}
1316
}
1417

1518
deinit {
16-
_ = try? FileManager.default.removeItem(at: fileURL)
19+
_ = try? FakePipe.fm.removeItem(at: fileURL)
1720
}
1821

1922
var fileHandleForWriting: FileHandle {
20-
return try! FileHandle(forWritingTo: fileURL)
23+
try! FileHandle(forWritingTo: fileURL)
2124
}
2225

2326
var fileHandleForReading: FileHandle {
24-
return try! FileHandle(forReadingFrom: fileURL)
27+
try! FileHandle(forReadingFrom: fileURL)
2528
}
2629

27-
private let fileURL = FileManager.default.temporaryDirectory.appendingPathComponent("json-logger-test-\(UUID()).txt")
28-
// private let fileURL = URL(fileURLWithPath: #filePath).deletingLastPathComponent().appendingPathComponent("json-logger-test-\(UUID()).txt")
30+
private static let fm = FileManager.default
31+
32+
private let fileURL = FakePipe.fm.temporaryDirectory.appendingPathComponent("json-logger-test-\(UUID()).txt")
2933
private var filepath: String {
3034
fileURL.absoluteURL.path
3135
}

0 commit comments

Comments
 (0)