Skip to content

Commit 3300ccb

Browse files
committed
Fix runOn for maxServerVersion
Ensure maxServerVersion includes all possible patch server versions as well.
1 parent c25ee4f commit 3300ccb

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

driver-core/src/test/functional/com/mongodb/JsonTestServerVersionChecker.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ public static boolean skipTest(final BsonDocument testDocument, final BsonDocume
4343

4444
private static boolean canRunTest(final BsonDocument document, final ServerVersion serverVersion) {
4545
if (document.containsKey("minServerVersion")
46-
&& serverVersion.compareTo(getServerVersionForField("minServerVersion", document)) < 0) {
46+
&& serverVersion.compareTo(getMinServerVersionForField("minServerVersion", document)) < 0) {
4747
return false;
4848
}
4949
if (document.containsKey("maxServerVersion")
50-
&& serverVersion.compareTo(getServerVersionForField("maxServerVersion", document)) > 0) {
50+
&& serverVersion.compareTo(getMaxServerVersionForField("maxServerVersion", document)) > 0) {
5151
return false;
5252
}
5353
if (document.containsKey("topology")) {
@@ -61,11 +61,11 @@ private static boolean canRunTest(final BsonDocument document, final ServerVersi
6161

6262
// Ignore certain matching types
6363
if (document.containsKey("ignore_if_server_version_less_than")
64-
&& serverVersion.compareTo(getServerVersionForField("ignore_if_server_version_less_than", document)) < 0) {
64+
&& serverVersion.compareTo(getMinServerVersionForField("ignore_if_server_version_less_than", document)) < 0) {
6565
return false;
6666
}
6767
if (document.containsKey("ignore_if_server_version_greater_than")
68-
&& serverVersion.compareTo(getServerVersionForField("ignore_if_server_version_greater_than", document)) > 0) {
68+
&& serverVersion.compareTo(getMaxServerVersionForField("ignore_if_server_version_greater_than", document)) > 0) {
6969
return false;
7070
}
7171
if (document.containsKey("ignore_if_topology_type")) {
@@ -102,10 +102,18 @@ private static boolean topologyMatches(final BsonArray topologyTypes) {
102102
return false;
103103
}
104104

105-
private static ServerVersion getServerVersionForField(final String fieldName, final BsonDocument document) {
105+
private static ServerVersion getMinServerVersionForField(final String fieldName, final BsonDocument document) {
106106
return new ServerVersion(getVersionList(document.getString(fieldName).getValue()));
107107
}
108108

109+
private static ServerVersion getMaxServerVersionForField(final String fieldName, final BsonDocument document) {
110+
List<Integer> versionList = getVersionList(document.getString(fieldName).getValue());
111+
if (versionList.size() > 2 && versionList.get(2).equals(0)) {
112+
versionList = asList(versionList.get(0), versionList.get(1), Integer.MAX_VALUE);
113+
}
114+
return new ServerVersion(versionList);
115+
}
116+
109117

110118
private JsonTestServerVersionChecker() {
111119
}

0 commit comments

Comments
 (0)