Skip to content

Commit f5a8781

Browse files
committed
wait for tools to quit before continuing - faster and more reliable
1 parent a2e0008 commit f5a8781

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

jstests/tool/tool1.js

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,45 @@ dbPath = "/data/db/" + baseName + "/";
55
externalPath = "/data/db/" + baseName + "_external/"
66
externalFile = externalPath + "export.json"
77

8+
function fileSize(){
9+
var l = listFiles( externalPath );
10+
for ( var i=0; i<l.length; i++ ){
11+
if ( l[i].name == externalFile )
12+
return l[i].size;
13+
}
14+
return -1;
15+
}
16+
17+
818
port = allocatePorts( 1 )[ 0 ];
919
resetDbpath( externalPath );
1020

1121
m = startMongod( "--port", port, "--dbpath", dbPath, "--nohttpinterface", "--bind_ip", "127.0.0.1" );
1222
c = m.getDB( baseName ).getCollection( baseName );
1323
c.save( { a: 1 } );
24+
assert( c.findOne() );
1425

15-
startMongoProgramNoConnect( "mongodump", "--host", "127.0.0.1:" + port, "--out", externalPath );
16-
sleep( 3000 );
26+
runMongoProgram( "mongodump", "--host", "127.0.0.1:" + port, "--out", externalPath );
1727
c.drop();
18-
startMongoProgramNoConnect( "mongorestore", "--host", "127.0.0.1:" + port, "--dir", externalPath );
19-
assert.soon( function() { return c.findOne() && 1 == c.findOne().a; } );
28+
runMongoProgram( "mongorestore", "--host", "127.0.0.1:" + port, "--dir", externalPath );
29+
assert( c.findOne() && 1 == c.findOne().a , "mongodump then restore has no data" );
2030

2131
resetDbpath( externalPath );
2232

23-
startMongoProgramNoConnect( "mongoexport", "--host", "127.0.0.1:" + port, "-d", baseName, "-c", baseName, "--out", externalFile );
24-
sleep( 3000 );
33+
assert.eq( -1 , fileSize() , "mongoexport prep invalid" );
34+
runMongoProgram( "mongoexport", "--host", "127.0.0.1:" + port, "-d", baseName, "-c", baseName, "--out", externalFile );
35+
assert.lt( 10 , fileSize() , "file size changed" );
36+
2537
c.drop();
26-
startMongoProgramNoConnect( "mongoimportjson", "--host", "127.0.0.1:" + port, "-d", baseName, "-c", baseName, "--file", externalFile );
27-
assert.soon( function() { return c.findOne() && 1 == c.findOne().a; } );
38+
runMongoProgram( "mongoimportjson", "--host", "127.0.0.1:" + port, "-d", baseName, "-c", baseName, "--file", externalFile );
39+
assert( c.findOne() && 1 == c.findOne().a );
2840

2941
stopMongod( port );
3042
resetDbpath( externalPath );
3143

32-
startMongoProgramNoConnect( "mongodump", "--dbpath", dbPath, "--out", externalPath );
33-
sleep( 3000 );
44+
runMongoProgram( "mongodump", "--dbpath", dbPath, "--out", externalPath );
3445
resetDbpath( dbPath );
35-
startMongoProgramNoConnect( "mongorestore", "--dbpath", dbPath, "--dir", externalPath );
36-
sleep( 5000 );
46+
runMongoProgram( "mongorestore", "--dbpath", dbPath, "--dir", externalPath );
3747
m = startMongoProgram( "mongod", "--port", port, "--dbpath", dbPath, "--nohttpinterface", "--bind_ip", "127.0.0.1" );
3848
c = m.getDB( baseName ).getCollection( baseName );
3949
assert( c.findOne(), "object missing a" );
@@ -42,11 +52,9 @@ assert( 1 == c.findOne().a, "object wrong" );
4252
stopMongod( port );
4353
resetDbpath( externalPath );
4454

45-
startMongoProgramNoConnect( "mongoexport", "--dbpath", dbPath, "-d", baseName, "-c", baseName, "--out", externalFile );
46-
sleep( 3000 );
55+
runMongoProgram( "mongoexport", "--dbpath", dbPath, "-d", baseName, "-c", baseName, "--out", externalFile );
4756
resetDbpath( dbPath );
48-
startMongoProgramNoConnect( "mongoimportjson", "--dbpath", dbPath, "-d", baseName, "-c", baseName, "--file", externalFile );
49-
sleep( 5000 );
57+
runMongoProgram( "mongoimportjson", "--dbpath", dbPath, "-d", baseName, "-c", baseName, "--file", externalFile );
5058
m = startMongoProgram( "mongod", "--port", port, "--dbpath", dbPath, "--nohttpinterface", "--bind_ip", "127.0.0.1" );
5159
c = m.getDB( baseName ).getCollection( baseName );
5260
assert( c.findOne(), "object missing b" );

0 commit comments

Comments
 (0)