| Index: source/libvpx/tools/all_builds.py
|
| ===================================================================
|
| --- source/libvpx/tools/all_builds.py (revision 0)
|
| +++ source/libvpx/tools/all_builds.py (revision 0)
|
| @@ -0,0 +1,72 @@
|
| +#!/usr/bin/python
|
| +
|
| +import getopt
|
| +import subprocess
|
| +import sys
|
| +
|
| +LONG_OPTIONS = ["shard=", "shards="]
|
| +BASE_COMMAND = "./configure --enable-internal-stats --enable-experimental"
|
| +
|
| +def RunCommand(command):
|
| + run = subprocess.Popen(command, shell=True)
|
| + output = run.communicate()
|
| + if run.returncode:
|
| + print "Non-zero return code: " + str(run.returncode) + " => exiting!"
|
| + sys.exit(1)
|
| +
|
| +def list_of_experiments():
|
| + experiments = []
|
| + configure_file = open("configure")
|
| + list_start = False
|
| + for line in configure_file.read().split("\n"):
|
| + if line == 'EXPERIMENT_LIST="':
|
| + list_start = True
|
| + elif line == '"':
|
| + list_start = False
|
| + elif list_start:
|
| + currently_broken = ["csm"]
|
| + experiment = line[4:]
|
| + if experiment not in currently_broken:
|
| + experiments.append(experiment)
|
| + return experiments
|
| +
|
| +def main(argv):
|
| + # Parse arguments
|
| + options = {"--shard": 0, "--shards": 1}
|
| + if "--" in argv:
|
| + opt_end_index = argv.index("--")
|
| + else:
|
| + opt_end_index = len(argv)
|
| + try:
|
| + o, _ = getopt.getopt(argv[1:opt_end_index], None, LONG_OPTIONS)
|
| + except getopt.GetoptError, err:
|
| + print str(err)
|
| + print "Usage: %s [--shard=<n> --shards=<n>] -- [configure flag ...]"%argv[0]
|
| + sys.exit(2)
|
| +
|
| + options.update(o)
|
| + extra_args = argv[opt_end_index + 1:]
|
| +
|
| + # Shard experiment list
|
| + shard = int(options["--shard"])
|
| + shards = int(options["--shards"])
|
| + experiments = list_of_experiments()
|
| + base_command = " ".join([BASE_COMMAND] + extra_args)
|
| + configs = [base_command]
|
| + configs += ["%s --enable-%s" % (base_command, e) for e in experiments]
|
| + my_configs = zip(configs, range(len(configs)))
|
| + my_configs = filter(lambda x: x[1] % shards == shard, my_configs)
|
| + my_configs = [e[0] for e in my_configs]
|
| +
|
| + # Run configs for this shard
|
| + for config in my_configs:
|
| + test_build(config)
|
| +
|
| +def test_build(configure_command):
|
| + print "\033[34m\033[47mTesting %s\033[0m" % (configure_command)
|
| + RunCommand(configure_command)
|
| + RunCommand("make clean")
|
| + RunCommand("make")
|
| +
|
| +if __name__ == "__main__":
|
| + main(sys.argv)
|
|
|
| Property changes on: source/libvpx/tools/all_builds.py
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|