@@ -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