forked from premiere/premiere-libtorrent
support running tests for different branches. assume regression_tests is a shared folder
This commit is contained in:
parent
1774e989f0
commit
311249c948
|
@ -4,6 +4,9 @@ test_dirs:
|
||||||
project:
|
project:
|
||||||
libtorrent
|
libtorrent
|
||||||
|
|
||||||
|
branch:
|
||||||
|
trunk
|
||||||
|
|
||||||
features:
|
features:
|
||||||
- variant=release asserts=production
|
- variant=release asserts=production
|
||||||
- statistics=on logging=verbose disk-stats=on bandwidth-limit-logging=on dht=logging
|
- statistics=on logging=verbose disk-stats=on bandwidth-limit-logging=on dht=logging
|
||||||
|
|
|
@ -68,9 +68,14 @@ except:
|
||||||
print '.regression.yml not found in current directory'
|
print '.regression.yml not found in current directory'
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
cfg = yaml.load(cfg.read())
|
cfg = yaml.load(cfg.read())
|
||||||
|
|
||||||
if 'project' in cfg:
|
if 'project' in cfg:
|
||||||
project_name = cfg['project']
|
project_name = cfg['project']
|
||||||
|
|
||||||
|
branch_name = 'trunk'
|
||||||
|
if 'branch' in cfg:
|
||||||
|
branch_name = cfg['branch']
|
||||||
|
|
||||||
os.chdir('regression_tests')
|
os.chdir('regression_tests')
|
||||||
|
|
||||||
def modification_time(file):
|
def modification_time(file):
|
||||||
|
@ -84,9 +89,11 @@ index_mtime = modification_time('index.html')
|
||||||
|
|
||||||
latest_rev = 0
|
latest_rev = 0
|
||||||
|
|
||||||
|
|
||||||
for rev in os.listdir('.'):
|
for rev in os.listdir('.'):
|
||||||
try:
|
try:
|
||||||
r = int(rev)
|
if not rev.startswith('%s-', branch_name): continue
|
||||||
|
r = int(rev[len(branch_name)+1:])
|
||||||
if r > latest_rev: latest_rev = r
|
if r > latest_rev: latest_rev = r
|
||||||
except: pass
|
except: pass
|
||||||
|
|
||||||
|
@ -94,7 +101,7 @@ if latest_rev == 0:
|
||||||
print 'no test files found'
|
print 'no test files found'
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
rev_dir = '%d' % latest_rev
|
rev_dir = '%s-%d' % (branch_name, latest_rev)
|
||||||
|
|
||||||
need_refresh = False
|
need_refresh = False
|
||||||
|
|
||||||
|
|
|
@ -33,12 +33,11 @@ def svn_up(revision):
|
||||||
os.system('svn up %d' % revision)
|
os.system('svn up %d' % revision)
|
||||||
|
|
||||||
def print_usage():
|
def print_usage():
|
||||||
print '''usage: run_regression_tests.py remote-path [options] toolset [toolset...]
|
print '''usage: run_regression_tests.py [options] toolset [toolset...]
|
||||||
|
|
||||||
toolset are bjam toolsets. For instance clang, gcc, darwin, msvc etc.
|
toolset are bjam toolsets. For instance clang, gcc, darwin, msvc etc.
|
||||||
remote-path is an scp path where the results are copied. This path has
|
The path "./regression_tests" is expected to be a shared folder
|
||||||
the form: user@hostname:/path
|
between all testsers.
|
||||||
if the remote-path is set to "-", no copying will be done
|
|
||||||
|
|
||||||
options:
|
options:
|
||||||
|
|
||||||
|
@ -47,8 +46,6 @@ options:
|
||||||
|
|
||||||
|
|
||||||
def loop():
|
def loop():
|
||||||
remote_path = sys.argv[1]
|
|
||||||
root_path = os.path.join(os.getcwd(), 'regression_tests')
|
|
||||||
|
|
||||||
if len(sys.argv) < 3:
|
if len(sys.argv) < 3:
|
||||||
print_usage()
|
print_usage()
|
||||||
|
@ -64,10 +61,7 @@ def loop():
|
||||||
print '\n\nREVISION %d ===\n' % r
|
print '\n\nREVISION %d ===\n' % r
|
||||||
svn_up(r)
|
svn_up(r)
|
||||||
|
|
||||||
run_tests.main(sys.argv[2:])
|
run_tests.main(sys.argv[1:])
|
||||||
|
|
||||||
if remote_path != '-':
|
|
||||||
os.system('scp -r %s %s' % (os.path.join(root_path, '%d' % r), remote_path))
|
|
||||||
|
|
||||||
time.sleep(120)
|
time.sleep(120)
|
||||||
|
|
||||||
|
|
|
@ -196,6 +196,10 @@ def main(argv):
|
||||||
else:
|
else:
|
||||||
configs = [['']]
|
configs = [['']]
|
||||||
|
|
||||||
|
branch_name = 'trunk'
|
||||||
|
if 'branch' in cfg:
|
||||||
|
branch_name = cfg['branch']
|
||||||
|
|
||||||
architecture = platform.machine()
|
architecture = platform.machine()
|
||||||
build_platform = platform.system() + '-' + platform.release()
|
build_platform = platform.system() + '-' + platform.release()
|
||||||
|
|
||||||
|
@ -205,7 +209,7 @@ def main(argv):
|
||||||
|
|
||||||
tester_pool = Pool(processes=num_processes)
|
tester_pool = Pool(processes=num_processes)
|
||||||
|
|
||||||
print '%d - %s - %s' % (revision, author, timestamp)
|
print '%s-%d - %s - %s' % (branch_name, revision, author, timestamp)
|
||||||
|
|
||||||
print 'toolsets: %s' % ' '.join(toolsets)
|
print 'toolsets: %s' % ' '.join(toolsets)
|
||||||
# print 'configs: %s' % '|'.join(configs)
|
# print 'configs: %s' % '|'.join(configs)
|
||||||
|
@ -216,12 +220,12 @@ def main(argv):
|
||||||
rev_dir = os.path.join(current_dir, 'regression_tests')
|
rev_dir = os.path.join(current_dir, 'regression_tests')
|
||||||
try: os.mkdir(rev_dir)
|
try: os.mkdir(rev_dir)
|
||||||
except: pass
|
except: pass
|
||||||
rev_dir = os.path.join(rev_dir, '%d' % revision)
|
rev_dir = os.path.join(rev_dir, '%s-%d' % (branch_name, revision))
|
||||||
try: os.mkdir(rev_dir)
|
try: os.mkdir(rev_dir)
|
||||||
except: pass
|
except: pass
|
||||||
|
|
||||||
for test_dir in test_dirs:
|
for test_dir in test_dirs:
|
||||||
print 'running tests from "%s"' % test_dir
|
print 'running tests from "%s" in %s' % (test_dir, branch_name)
|
||||||
os.chdir(test_dir)
|
os.chdir(test_dir)
|
||||||
test_dir = os.getcwd()
|
test_dir = os.getcwd()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue