summaryrefslogtreecommitdiff
path: root/jstests/multiVersion/1_test_launching_replset.js
blob: a71e4b276c0c4201b1b6711efe35ae3050e32f29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//
// Tests launching multi-version ReplSetTest replica sets
//

var verifyVersion = function( mongo, version ){
    
    var result = mongo.getDB( "admin" ).runCommand({ serverStatus : 1 })
    
    if( result.version != version ) printjson( result  )
    
    assert.eq( result.version, version )
}

var versionsToCheck = [ "1.8.5",
                        "2.0.6" ]
                       
jsTest.log( "Testing legacy versions..." )

for( var i = 0; i < versionsToCheck.length; i++ ){

    var version = versionsToCheck[ i ]
    
    // Set up a replica set
    
    var rst = new ReplSetTest({ nodes : 2 })
    
    rst.startSet({ binVersion : version })
        
    var nodes = rst.nodes
    
    // Make sure the started versions are actually the correct versions
    for( var j = 0; j < nodes.length; j++ ) verifyVersion( nodes[j], version )
    
    rst.stopSet()
}

jsTest.log( "Testing mixed versions..." )

// Set up a multi-version replica set

var rst = new ReplSetTest({ nodes : 2 })

rst.startSet({ binVersion : versionsToCheck })

var nodes = rst.nodes

var getVersion = function( mongo ){
 var result = mongo.getDB( "admin" ).runCommand({ serverStatus : 1 })
 return result.version
}

var verifyAllVersionsFound = function( versionsFound ){
 for( var j = 0; j < versionsToCheck.length; j++ )
     assert( versionsFound[ versionsToCheck[j] ] )
}

//Make sure we have hosts of all the different versions
var versionsFound = {}
for( var j = 0; j < nodes.length; j++ ) 
    versionsFound[ getVersion( nodes[j] ) ] = true

verifyAllVersionsFound( versionsFound )

rst.stopSet()

jsTest.log( "Done!" )




//
// End
//