Browse Source

Tools: size_compare_branches.py add -vehicle option

gps-1.3.1
Josh Henderson 3 years ago committed by Peter Barker
parent
commit
32e628f267
  1. 33
      Tools/scripts/size_compare_branches.py

33
Tools/scripts/size_compare_branches.py

@ -28,12 +28,14 @@ else: @@ -28,12 +28,14 @@ else:
class SizeCompareBranches(object):
'''script to build and compare branches using elf_diff'''
def __init__(self, branch=None, master_branch="master", board="MatekF405-Wing", bin_dir=None, pdf_file=None):
def __init__(self, branch=None, master_branch="master", board="MatekF405-Wing", vehicle="plane",
bin_dir=None, pdf_file=None):
if branch is None:
raise Exception("branch required") # FIXME: narrow exception
self.master_branch = master_branch
self.branch = branch
self.board = board
self.vehicle = vehicle
self.bin_dir = bin_dir
self.pdf_file = pdf_file
@ -113,12 +115,12 @@ class SizeCompareBranches(object): @@ -113,12 +115,12 @@ class SizeCompareBranches(object):
'''pretty-print progress'''
print("SCB: %s" % string)
def build_branch_into_dir(self, board, branch, outdir):
def build_branch_into_dir(self, board, branch, vehicle, outdir):
self.run_git(["checkout", branch])
self.run_git(["submodule", "update", "--recursive"])
shutil.rmtree("build", ignore_errors=True)
self.run_waf(["configure", "--board", board])
self.run_waf(["plane"])
self.run_waf([vehicle])
shutil.rmtree(outdir, ignore_errors=True)
shutil.copytree("build", outdir)
@ -127,14 +129,27 @@ class SizeCompareBranches(object): @@ -127,14 +129,27 @@ class SizeCompareBranches(object):
outdir_2 = "/tmp/out-branch"
self.progress("Building branch 1")
self.build_branch_into_dir(self.board, self.master_branch, outdir_1)
self.build_branch_into_dir(self.board, self.master_branch, self.vehicle, outdir_1)
self.progress("Building branch 2")
self.build_branch_into_dir(self.board, self.branch, outdir_2)
self.build_branch_into_dir(self.board, self.branch, self.vehicle, outdir_2)
self.progress("Starting compare (~10 minutes!)")
binary_filename = "arduplane"
# map from vehicle names to binary names
vehicle_map = {
"rover" : "ardurover",
"copter" : "arducopter",
"plane" : "arduplane",
"sub" : "ardusub",
"heli" : "arducopter-heli",
"blimp" : "blimp",
"antennatracker " : "antennatracker",
}
if self.vehicle in vehicle_map:
binary_filename = vehicle_map[self.vehicle]
else:
raise Exception("Vehicle name incorrect")
elf_diff_commandline = [
"time",
@ -166,6 +181,11 @@ if __name__ == '__main__': @@ -166,6 +181,11 @@ if __name__ == '__main__':
type="string",
default=None,
help="branch to compare")
parser.add_option("",
"--vehicle",
type="string",
default="plane",
help="vehicle to build for")
parser.add_option("",
"--board",
type="string",
@ -188,6 +208,7 @@ if __name__ == '__main__': @@ -188,6 +208,7 @@ if __name__ == '__main__':
branch=cmd_opts.branch,
master_branch=cmd_opts.master_branch,
board=cmd_opts.board,
vehicle=cmd_opts.vehicle,
# pdf_file=cmd_opts.pdf_file
)
x.run()

Loading…
Cancel
Save