Skip to content

Commit 5b3f7eb

Browse files
test the "false" path of < (#264)
1 parent 6c8bcd6 commit 5b3f7eb

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

Tests/TSCUtilityTests/VersionTests.swift

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -918,19 +918,30 @@ class VersionTests: XCTestCase {
918918
XCTAssertEqual(try? Version(versionString: "1.2", usesLenientParsing: false), nil)
919919
}
920920

921+
// Don't refactor out either `XCTAssertGreaterThan` or `XCTAssertFalse(<)`.
922+
// The latter may seem redundant, but it tests a different thing.
923+
// `XCTAssertGreaterThan` asserts that the "true" path of `>` works, which implies that the "true" path of `<` works. However, it doesn't tests the "false" path.
924+
// `XCTAssertFalse(<)` asserts that the "false" path of `<` works.
921925
func testVersionComparison() {
922926

923927
// MARK: version core vs. version core
924928

925929
XCTAssertGreaterThan(Version(2, 1, 1), Version(1, 2, 3))
926930
XCTAssertGreaterThan(Version(1, 3, 1), Version(1, 2, 3))
927931
XCTAssertGreaterThan(Version(1, 2, 4), Version(1, 2, 3))
932+
933+
XCTAssertFalse(Version(2, 1, 1) < Version(1, 2, 3))
934+
XCTAssertFalse(Version(1, 3, 1) < Version(1, 2, 3))
935+
XCTAssertFalse(Version(1, 2, 4) < Version(1, 2, 3))
928936

929937
// MARK: version core vs. version core + pre-release
930938

931939
XCTAssertGreaterThan(Version(1, 2, 3), Version(1, 2, 3, prereleaseIdentifiers: [""]))
932940
XCTAssertGreaterThan(Version(1, 2, 3), Version(1, 2, 3, prereleaseIdentifiers: ["beta"]))
933941
XCTAssertLessThan(Version(1, 2, 2), Version(1, 2, 3, prereleaseIdentifiers: ["beta"]))
942+
943+
XCTAssertFalse(Version(1, 2, 3) < Version(1, 2, 3, prereleaseIdentifiers: [""]))
944+
XCTAssertFalse(Version(1, 2, 3) < Version(1, 2, 3, prereleaseIdentifiers: ["beta"]))
934945

935946
// MARK: version core + pre-release vs. version core + pre-release
936947

@@ -973,6 +984,10 @@ class VersionTests: XCTestCase {
973984
XCTAssertGreaterThan(Version(2, 2, 3, prereleaseIdentifiers: [""]), Version(1, 2, 3, buildMetadataIdentifiers: [""]))
974985
XCTAssertGreaterThan(Version(1, 3, 3, prereleaseIdentifiers: ["alpha"]), Version(1, 2, 3, buildMetadataIdentifiers: ["beta"]))
975986
XCTAssertGreaterThan(Version(1, 2, 4, prereleaseIdentifiers: ["223"]), Version(1, 2, 3, buildMetadataIdentifiers: ["123alpha"]))
987+
988+
XCTAssertFalse(Version(2, 2, 3, prereleaseIdentifiers: [""]) < Version(1, 2, 3, buildMetadataIdentifiers: [""]))
989+
XCTAssertFalse(Version(1, 3, 3, prereleaseIdentifiers: ["alpha"]) < Version(1, 2, 3, buildMetadataIdentifiers: ["beta"]))
990+
XCTAssertFalse(Version(1, 2, 4, prereleaseIdentifiers: ["223"]) < Version(1, 2, 3, buildMetadataIdentifiers: ["123alpha"]))
976991

977992
// MARK: version core + build metadata vs. version core + build metadata
978993

@@ -1001,6 +1016,11 @@ class VersionTests: XCTestCase {
10011016
XCTAssertGreaterThan(Version(1, 2, 3), Version(1, 2, 3, prereleaseIdentifiers: ["beta"], buildMetadataIdentifiers: ["123"]))
10021017
XCTAssertLessThan(Version(1, 2, 2), Version(1, 2, 3, prereleaseIdentifiers: ["beta"], buildMetadataIdentifiers: ["alpha", "beta"]))
10031018
XCTAssertLessThan(Version(1, 2, 2), Version(1, 2, 3, prereleaseIdentifiers: ["beta"], buildMetadataIdentifiers: ["alpha-"]))
1019+
1020+
XCTAssertFalse(Version(1, 2, 3) < Version(1, 2, 3, prereleaseIdentifiers: [""], buildMetadataIdentifiers: [""]))
1021+
XCTAssertFalse(Version(1, 2, 3) < Version(1, 2, 3, prereleaseIdentifiers: [""], buildMetadataIdentifiers: ["123alpha"]))
1022+
XCTAssertFalse(Version(1, 2, 3) < Version(1, 2, 3, prereleaseIdentifiers: ["alpha"], buildMetadataIdentifiers: ["alpha"]))
1023+
XCTAssertFalse(Version(1, 2, 3) < Version(1, 2, 3, prereleaseIdentifiers: ["beta"], buildMetadataIdentifiers: ["123"]))
10041024

10051025
// MARK: version core + pre-release vs. version core + pre-release + build metadata
10061026

@@ -1129,11 +1149,14 @@ class VersionTests: XCTestCase {
11291149
XCTAssertGreaterThan(v2, v1)
11301150
XCTAssertGreaterThanOrEqual(v2, v1)
11311151
XCTAssertNotEqual(v1, v2)
1152+
XCTAssertFalse(v2 < v1)
11321153

11331154
XCTAssertLessThanOrEqual(v1, v1)
11341155
XCTAssertGreaterThanOrEqual(v1, v1)
1156+
XCTAssertFalse(v1 < v1)
11351157
XCTAssertLessThanOrEqual(v2, v2)
11361158
XCTAssertGreaterThanOrEqual(v2, v2)
1159+
XCTAssertFalse(v2 < v2)
11371160
}
11381161

11391162
do {
@@ -1144,11 +1167,14 @@ class VersionTests: XCTestCase {
11441167
XCTAssertGreaterThan(v4, v3)
11451168
XCTAssertGreaterThanOrEqual(v4, v3)
11461169
XCTAssertNotEqual(v3, v4)
1170+
XCTAssertFalse(v4 < v3)
11471171

11481172
XCTAssertLessThanOrEqual(v3, v3)
11491173
XCTAssertGreaterThanOrEqual(v3, v3)
1174+
XCTAssertFalse(v3 < v3)
11501175
XCTAssertLessThanOrEqual(v4, v4)
11511176
XCTAssertGreaterThanOrEqual(v4, v4)
1177+
XCTAssertFalse(v4 < v4)
11521178
}
11531179

11541180
do {
@@ -1159,11 +1185,14 @@ class VersionTests: XCTestCase {
11591185
XCTAssertGreaterThan(v6, v5)
11601186
XCTAssertGreaterThanOrEqual(v6, v5)
11611187
XCTAssertNotEqual(v5, v6)
1188+
XCTAssertFalse(v6 < v5)
11621189

11631190
XCTAssertLessThanOrEqual(v5, v5)
11641191
XCTAssertGreaterThanOrEqual(v5, v5)
1192+
XCTAssertFalse(v5 < v5)
11651193
XCTAssertLessThanOrEqual(v6, v6)
11661194
XCTAssertGreaterThanOrEqual(v6, v6)
1195+
XCTAssertFalse(v6 < v6)
11671196
}
11681197

11691198
do {
@@ -1175,11 +1204,14 @@ class VersionTests: XCTestCase {
11751204
XCTAssertGreaterThan(v8, v7)
11761205
XCTAssertGreaterThanOrEqual(v8, v7)
11771206
XCTAssertNotEqual(v7, v8)
1207+
XCTAssertFalse(v8 < v7)
11781208

11791209
XCTAssertLessThanOrEqual(v7, v7)
11801210
XCTAssertGreaterThanOrEqual(v7, v7)
1211+
XCTAssertFalse(v7 < v7)
11811212
XCTAssertLessThanOrEqual(v8, v8)
11821213
XCTAssertGreaterThanOrEqual(v8, v8)
1214+
XCTAssertFalse(v8 < v8)
11831215
}
11841216

11851217
do {
@@ -1196,11 +1228,14 @@ class VersionTests: XCTestCase {
11961228
XCTAssertGreaterThan(v2, v1)
11971229
XCTAssertGreaterThanOrEqual(v2, v1)
11981230
XCTAssertNotEqual(v1, v2)
1231+
XCTAssertFalse(v2 < v1)
11991232

12001233
XCTAssertLessThanOrEqual(v1, v1)
12011234
XCTAssertGreaterThanOrEqual(v1, v1)
1235+
XCTAssertFalse(v1 < v1)
12021236
XCTAssertLessThanOrEqual(v2, v2)
12031237
XCTAssertGreaterThanOrEqual(v2, v2)
1238+
XCTAssertFalse(v2 < v2)
12041239

12051240
v1 = v2
12061241
}

0 commit comments

Comments
 (0)