The MongoDB C++ client driver now resides in a separate repo and is maintained independently of the server. The targets in this repo that used to build or test the driver will now print an error message explaining the change and referring users to the relevant documentation.
136 lines
5.8 KiB
Python
136 lines
5.8 KiB
Python
# -*- mode: python -*-
|
|
#
|
|
# This SConscript file describes the build rules for smoke tests (scons smoke,
|
|
# e.g.)
|
|
|
|
import os
|
|
from buildscripts import utils
|
|
|
|
Import( "has_option env shellEnv testEnv" )
|
|
|
|
def add_exe( v ):
|
|
return "${PROGPREFIX}%s${PROGSUFFIX}" % v
|
|
|
|
smokeEnv = testEnv.Clone()
|
|
smokeEnv['ENV']['PATH']=os.environ['PATH']
|
|
|
|
# copy in any envrionment variables beginning with MONGO_; these
|
|
# are used by buildscripts/buildlogger.py
|
|
for name, value in os.environ.items():
|
|
if name.startswith('MONGO_'):
|
|
smokeEnv['ENV'][name] = value
|
|
|
|
smokeEnv.Alias( "dummySmokeSideEffect", [], [] )
|
|
|
|
smokeFlags = []
|
|
|
|
# Ugh. Frobbing the smokeFlags must precede using them to construct
|
|
# actions, I think.
|
|
if has_option( 'smokedbprefix'):
|
|
smokeFlags += ['--smoke-db-prefix', GetOption( 'smokedbprefix')]
|
|
|
|
if 'startMongodSmallOplog' in COMMAND_LINE_TARGETS:
|
|
smokeFlags += ["--small-oplog"]
|
|
|
|
if has_option('smokeauth'):
|
|
smokeFlags += ['--auth']
|
|
|
|
def addTest(name, deps, actions):
|
|
smokeEnv.Alias( name, deps, actions )
|
|
smokeEnv.AlwaysBuild( name )
|
|
# Prevent smoke tests from running in parallel
|
|
smokeEnv.SideEffect( "dummySmokeSideEffect", name )
|
|
|
|
def addSmoketest( name, deps, extraSmokeArgs=[] ):
|
|
# Convert from smoke to test, smokeJs to js, and foo to foo
|
|
target = name
|
|
if name.startswith("smoke"):
|
|
if name == "smoke":
|
|
target = File("test").path
|
|
else:
|
|
target = name[5].lower() + name[6:]
|
|
|
|
smokeArgs = smokeFlags + [target] + extraSmokeArgs
|
|
addTest(name, deps, utils.run_smoke_command(*smokeArgs))
|
|
|
|
def addSmokeSuite( name, suitefile, needMongod=False ):
|
|
# Add a smoketest target which invokes smoke.py with
|
|
# --from-file, and passes the named suitefile as the
|
|
# command line argument.
|
|
|
|
# resolve an initial # in the suitefile
|
|
suitefile = str(env.File(suitefile))
|
|
|
|
smoke_args = ['--mode', 'files', '--from-file', suitefile]
|
|
if not needMongod:
|
|
smoke_args.append('--dont-start-mongod')
|
|
addTest(name, [suitefile], utils.run_smoke_command(*smoke_args))
|
|
|
|
addSmoketest( "smoke", [ add_exe( "test" ), add_exe( "mongod" ), add_exe( "mongo" ) ] )
|
|
addSmoketest( "smokePerf", [ add_exe("perftest") ] )
|
|
|
|
addSmoketest( "mongosTest", [ add_exe( 'mongos' ) ])
|
|
addSmokeSuite( "smokeCppUnittests", "$UNITTEST_LIST" )
|
|
addSmokeSuite( "smokeModuleTests", "$MODULETEST_LIST" )
|
|
|
|
# These tests require the mongo shell
|
|
if shellEnv is not None:
|
|
addSmoketest( "smokeJs", [add_exe("mongo"), add_exe("mongod")] )
|
|
addSmoketest( "smokeClone", [ add_exe("mongo"), add_exe("mongod") ] )
|
|
addSmoketest( "smokeRepl", [ add_exe("mongo"), add_exe("mongod"), add_exe("mongobridge") ] )
|
|
addSmoketest( "smokeReplSets", [ add_exe("mongo"), add_exe("mongod"), add_exe("mongobridge") ] )
|
|
addSmoketest( "smokeDur", [ add_exe( "mongo" ), add_exe( "mongod" ), add_exe('mongorestore') ] )
|
|
addSmoketest( "smokeDisk", [ add_exe( "mongo" ), add_exe( "mongod" ), add_exe( "mongodump" ), add_exe( "mongorestore" ) ] )
|
|
addSmoketest( "smokeAuth", [ add_exe( "mongo" ), add_exe( "mongod" ) ] )
|
|
addSmoketest( "smokeParallel", [ add_exe( "mongo" ), add_exe( "mongod" ) ] )
|
|
addSmoketest( "smokeSharding", [ add_exe("mongo"), add_exe("mongod"), add_exe("mongos"), add_exe('mongofiles') ] )
|
|
addSmoketest( "smokeJsPerf", [ add_exe("mongo"), add_exe("mongod") ] )
|
|
addSmoketest( "smokeJsSlowNightly", [add_exe("mongo"), add_exe("mongod"), add_exe("mongos") ])
|
|
addSmoketest( "smokeJsSlowWeekly", [add_exe("mongo"), add_exe("mongod"), add_exe("mongos") ])
|
|
addSmoketest( "smokeQuota", [ add_exe("mongo"), add_exe("mongod") ] )
|
|
addSmoketest( "smokeTool", [ add_exe( "mongo" ), add_exe("mongod"), add_exe("mongos"), "tools" ] )
|
|
addSmoketest( "smokeAggregation", [ add_exe( "mongo" ), add_exe( "mongod" ), add_exe( "mongos" ) ] )
|
|
addSmoketest( "smokeMultiVersion", [ add_exe( "mongo" ), add_exe( "mongod" ), add_exe( "mongos" ) ] )
|
|
addSmoketest( "smokeFailPoint", [ add_exe( "mongo" ), add_exe( "mongod" ), add_exe( "mongos" ) ] )
|
|
addSmoketest( "smokeSsl", [ add_exe("mongo"), add_exe("mongod"), add_exe("mongos"), "tools" ],
|
|
['--use-ssl','--use-x509'] )
|
|
|
|
addSmoketest( "smokeFailingTests", [ add_exe( "mongo" ), add_exe( "mongod" ) ], ['--only-old-fails', '--continue-on-failure'] )
|
|
addSmoketest( "smokeResetFails", [ add_exe( "mongo" ), add_exe( "mongod" ) ], ['--reset-old-fails'] )
|
|
|
|
smokeEnv.Alias( "startMongodSmallOplog", [add_exe("mongod")], [] );
|
|
smokeEnv.AlwaysBuild( "startMongodSmallOplog" );
|
|
smokeEnv.SideEffect( "dummySmokeSideEffect", "startMongodSmallOplog" )
|
|
|
|
def addMongodReqTargets( env, target, source ):
|
|
mongodReqTargets = [ "smokeJs" ]
|
|
for target in mongodReqTargets:
|
|
smokeEnv.Depends( target, "startMongod" )
|
|
smokeEnv.Depends( "smokeAll", target )
|
|
|
|
smokeEnv.Alias( "addMongodReqTargets", [], [addMongodReqTargets] )
|
|
smokeEnv.AlwaysBuild( "addMongodReqTargets" )
|
|
|
|
smokeEnv.Alias( "smokeAll", [ "smoke", "mongosTest", "smokeClone", "smokeRepl", "addMongodReqTargets", "smokeDisk", "smokeAuth", "smokeSharding", "smokeTool" ] )
|
|
smokeEnv.AlwaysBuild( "smokeAll" )
|
|
|
|
def addMongodReqNoJsTargets( env, target, source ):
|
|
mongodReqTargets = []
|
|
for target in mongodReqTargets:
|
|
smokeEnv.Depends( target, "startMongod" )
|
|
smokeEnv.Depends( "smokeAllNoJs", target )
|
|
|
|
smokeEnv.Alias( "addMongodReqNoJsTargets", [], [addMongodReqNoJsTargets] )
|
|
smokeEnv.AlwaysBuild( "addMongodReqNoJsTargets" )
|
|
|
|
smokeEnv.Alias( "smokeAllNoJs", [ "smoke", "mongosTest", "addMongodReqNoJsTargets" ] )
|
|
smokeEnv.AlwaysBuild( "smokeAllNoJs" )
|
|
|
|
def run_shell_tests(env, target, source):
|
|
from buildscripts import test_shell
|
|
test_shell.mongo_path = windows and "mongo.exe" or "mongo"
|
|
test_shell.run_tests()
|
|
|
|
env.Alias("test_shell", [], [run_shell_tests])
|
|
env.AlwaysBuild("test_shell")
|