Skip to content

Commit ddfe1c3

Browse files
authored
Fix running auth tests (#1206)
* Fix running auth tests * Fix flaky tests on replica sets * Remove arbiters from replica set config This was done for auth due to a bug fixed in 3.7.7, but the change was not reverted (see mongodb-labs/drivers-evergreen-tools#38). * Harden test against non-deterministic return order
1 parent fa45c54 commit ddfe1c3

File tree

5 files changed

+122
-14
lines changed

5 files changed

+122
-14
lines changed

.evergreen/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ tasks:
513513
- func: "bootstrap mongo-orchestration"
514514
vars:
515515
TOPOLOGY: "server"
516-
AUTH: "yes"
516+
AUTH: "auth"
517517
- func: "run tests"
518518

519519
- name: "test-standalone-ssl"
@@ -554,7 +554,7 @@ tasks:
554554
- func: "bootstrap mongo-orchestration"
555555
vars:
556556
TOPOLOGY: "replica_set"
557-
AUTH: "yes"
557+
AUTH: "auth"
558558
- func: "run tests"
559559

560560
- name: "test-replicaset-old"
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{
2+
"id": "repl0",
3+
"members": [
4+
{
5+
"procParams": {
6+
"ipv6": true,
7+
"bind_ip": "127.0.0.1,::1",
8+
"journal": true,
9+
"oplogSize": 500,
10+
"port": 27017
11+
},
12+
"rsParams": {
13+
"tags": {
14+
"ordinal": "one",
15+
"dc": "ny"
16+
}
17+
}
18+
},
19+
{
20+
"procParams": {
21+
"ipv6": true,
22+
"bind_ip": "127.0.0.1,::1",
23+
"journal": true,
24+
"oplogSize": 500,
25+
"port": 27018
26+
},
27+
"rsParams": {
28+
"tags": {
29+
"ordinal": "two",
30+
"dc": "pa"
31+
}
32+
}
33+
},
34+
{
35+
"procParams": {
36+
"ipv6": true,
37+
"bind_ip": "127.0.0.1,::1",
38+
"journal": true,
39+
"port": 27019
40+
},
41+
"rsParams": {
42+
}
43+
}
44+
],
45+
"sslParams": {
46+
"sslOnNormalPorts": true,
47+
"sslPEMKeyFile": "ABSOLUTE_PATH_REPLACEMENT_TOKEN/.evergreen/x509gen/server.pem",
48+
"sslCAFile": "ABSOLUTE_PATH_REPLACEMENT_TOKEN/.evergreen/x509gen/ca.pem",
49+
"sslWeakCertificateValidation" : true
50+
}
51+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{
2+
"id": "repl0",
3+
"members": [
4+
{
5+
"procParams": {
6+
"ipv6": true,
7+
"bind_ip": "127.0.0.1,::1",
8+
"journal": true,
9+
"oplogSize": 500,
10+
"port": 27017
11+
},
12+
"rsParams": {
13+
"tags": {
14+
"ordinal": "one",
15+
"dc": "ny"
16+
}
17+
}
18+
},
19+
{
20+
"procParams": {
21+
"ipv6": true,
22+
"bind_ip": "127.0.0.1,::1",
23+
"journal": true,
24+
"oplogSize": 500,
25+
"port": 27018
26+
},
27+
"rsParams": {
28+
"tags": {
29+
"ordinal": "two",
30+
"dc": "pa"
31+
}
32+
}
33+
},
34+
{
35+
"procParams": {
36+
"ipv6": true,
37+
"bind_ip": "127.0.0.1,::1",
38+
"journal": true,
39+
"port": 27019
40+
},
41+
"rsParams": {
42+
}
43+
}
44+
]
45+
}

tests/server/server-executeQuery-008.phpt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ $manager = new MongoDB\Driver\Manager(URI);
1313

1414
$primaryRp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
1515
$primary = $manager->selectServer($primaryRp);
16+
$serverCount = count($manager->getServers());
1617

1718
$bulk = new \MongoDB\Driver\BulkWrite;
1819
$bulk->insert(['_id' => 1, 'x' => 1]);
19-
$primary->executeBulkWrite(NS, $bulk, new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY));
20+
$primary->executeBulkWrite(NS, $bulk, new MongoDB\Driver\WriteConcern($serverCount));
2021

2122
$secondaryRp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY);
2223
$secondary = $manager->selectServer($secondaryRp);

tests/server/server-getTags-002.phpt

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,32 @@ MongoDB\Driver\Server::getTags() with replica set
99
require_once __DIR__ . "/../utils/basic.inc";
1010

1111
$manager = new MongoDB\Driver\Manager(URI);
12+
$command = new MongoDB\Driver\Command(['ping' => 1]);
13+
$manager->executeCommand(DATABASE_NAME, $command);
1214

13-
$tags = $manager->selectServer(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY))->getTags();
14-
echo "dc: ", array_key_exists('dc', $tags) ? $tags['dc'] : 'not set', "\n";
15-
echo "ordinal: ", array_key_exists('ordinal', $tags) ? $tags['ordinal'] : 'not set', "\n";
15+
function assertSomeServerHasTags(array $servers, array $expectedTags) {
16+
foreach ($servers as $server) {
17+
/* Using a non-strict comparison guards against tags being returned in
18+
* a different order than expected. */
19+
if ($expectedTags == $server->getTags()) {
20+
printf("Found server with tags: %s\n", json_encode($expectedTags));
21+
return;
22+
}
23+
}
1624

17-
$tags = $manager->selectServer(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY))->getTags();
18-
echo "dc: ", array_key_exists('dc', $tags) ? $tags['dc'] : 'not set', "\n";
19-
echo "ordinal: ", array_key_exists('ordinal', $tags) ? $tags['ordinal'] : 'not set', "\n";
25+
printf("No server has tags: %s\n", json_encode($expectedTags));
26+
}
27+
28+
$servers = $manager->getServers();
29+
assertSomeServerHasTags($servers, ['dc' => 'ny', 'ordinal' => 'one']);
30+
assertSomeServerHasTags($servers, ['dc' => 'pa', 'ordinal' => 'two']);
31+
assertSomeServerHasTags($servers, []);
2032

2133
?>
2234
===DONE===
2335
<?php exit(0); ?>
24-
--EXPECTF--
25-
dc: ny
26-
ordinal: one
27-
dc: pa
28-
ordinal: two
36+
--EXPECT--
37+
Found server with tags: {"dc":"ny","ordinal":"one"}
38+
Found server with tags: {"dc":"pa","ordinal":"two"}
39+
Found server with tags: []
2940
===DONE===

0 commit comments

Comments
 (0)