Skip to content

Commit 72f0785

Browse files
committed
Add TimePoint Tests
1 parent 78ace71 commit 72f0785

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

Tests/SwiftDriverTests/IncrementalCompilationTests.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1232,8 +1232,7 @@ extension IncrementalCompilationTests {
12321232
start + TimePoint(seconds: (end - start).seconds / 2, nanoseconds: .zero)
12331233
}(buildRecord.buildStartTime, buildRecord.buildEndTime)
12341234

1235-
let ti = (TimeInterval(goodModTime.seconds) - kCFAbsoluteTimeIntervalSince1970) + (1.0e-9 * TimeInterval(goodModTime.nanoseconds))
1236-
let goodModDate = Date(timeIntervalSinceReferenceDate: ti)
1235+
let goodModDate = Date(timeIntervalSinceReferenceDate: TimeInterval(goodModTime.seconds))
12371236
try setModTime(of: .absolute(priorsPath), to: goodModDate)
12381237
}
12391238

Tests/SwiftDriverTests/NonincrementalCompilationTests.swift

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,35 @@ final class NonincrementalCompilationTests: XCTestCase {
215215
XCTAssertEqual(sn.nanoseconds, 8000)
216216
}
217217

218+
func testZeroDuration() {
219+
XCTAssertEqual(TimePoint.zero, TimePoint.seconds(0))
220+
XCTAssertEqual(TimePoint.zero, TimePoint.nanoseconds(0))
221+
}
222+
223+
func testDurationSecondsArithmetic() {
224+
let x = TimePoint.seconds(1)
225+
XCTAssertEqual(TimePoint.zero + x, x)
226+
XCTAssertEqual(x + TimePoint.zero, x)
227+
XCTAssertEqual(x - TimePoint.zero, x)
228+
229+
let y = TimePoint.nanoseconds(1)
230+
let z = TimePoint.nanoseconds(2_000_000)
231+
XCTAssertEqual(x + (y + z), (x + y) + z)
232+
}
233+
234+
func testDurationComparison() {
235+
let x = TimePoint.seconds(1)
236+
let y = TimePoint.nanoseconds(500)
237+
238+
XCTAssertEqual(x < y, !(x >= y))
239+
}
240+
241+
func testDurationOverflow() {
242+
XCTAssertEqual(TimePoint.nanoseconds(1_000_000_000), TimePoint.seconds(1))
243+
XCTAssertEqual(TimePoint.nanoseconds(500_000_000) + TimePoint.nanoseconds(500_000_000), TimePoint.seconds(1))
244+
XCTAssertEqual(TimePoint.nanoseconds(1_500_000_000) + TimePoint.nanoseconds(500_000_000), TimePoint.seconds(2))
245+
}
246+
218247
func testReadAndWriteBuildRecord() throws {
219248
let version = "Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7)"
220249
let options = "abbbfbcaf36b93e58efaadd8271ff142"

0 commit comments

Comments
 (0)