code_size_compare: simplify methods in CodeSizeComparison
Signed-off-by: Yanray Wang <yanray.wang@arm.com>
diff --git a/scripts/code_size_compare.py b/scripts/code_size_compare.py
index 01d93ca..8cd1b27 100755
--- a/scripts/code_size_compare.py
+++ b/scripts/code_size_compare.py
@@ -92,12 +92,11 @@
arch: architecture to measure code size on.
config: configuration type to measure code size with.
sys_arch: host architecture.
- make_command: command to build library (Inferred from arch and config).
"""
self.arch = arch
self.config = config
self.sys_arch = sys_arch
- self.make_command = self.set_make_command()
+ self.make_cmd = self.set_make_command()
def set_make_command(self) -> str:
"""Infer build command based on architecture and configuration."""
@@ -456,63 +455,52 @@
self.new_rev = new_revision
self.git_command = "git"
self.make_clean = 'make clean'
- self.make_command = code_size_info.make_command
+ self.make_cmd = code_size_info.make_cmd
self.fname_suffix = "-" + code_size_info.arch + "-" +\
code_size_info.config
self.code_size_generator = CodeSizeGeneratorWithSize()
- def _gen_code_size_csv(self, revision: str) -> None:
- """Generate code size csv file."""
+ def cal_code_size(self, revision: str):
+ """Calculate code size of library objects in a UTF-8 encoding"""
- if revision == "current":
- print("Measuring code size in current work directory")
- else:
- print("Measuring code size for", revision)
-
- code_size_text = CodeSizeCalculator(revision, self.make_command).\
+ return CodeSizeCalculator(revision, self.make_cmd).\
cal_libraries_code_size()
- csv_file = os.path.join(self.csv_dir, revision +
- self.fname_suffix + ".csv")
- self.code_size_generator.size_generator_write_record(revision,\
- code_size_text, csv_file)
+ def gen_code_size_report(self, revision):
+ """Generate code size record and write it into a file."""
- def _get_code_size_for_rev(self, revision: str) -> None:
- """Generate code size csv file for the specified git revision."""
-
+ output_file = os.path.join(self.csv_dir,\
+ revision + self.fname_suffix + ".csv")
# Check if the corresponding record exists
- csv_fname = revision + self.fname_suffix + ".csv"
- if (revision != "current") and \
- os.path.exists(os.path.join(self.csv_dir, csv_fname)):
+ if (revision != "current") and os.path.exists(output_file):
print("Code size csv file for", revision, "already exists.")
- self.code_size_generator.read_size_record(revision,\
- os.path.join(self.csv_dir, csv_fname))
+ self.code_size_generator.read_size_record(revision, output_file)
else:
- self._gen_code_size_csv(revision)
+ self.code_size_generator.size_generator_write_record(revision,\
+ self.cal_code_size(revision), output_file)
- def _gen_code_size_comparison(self) -> int:
- """Generate results of the size changes between two revisions,
+ def gen_code_size_comparison(self) -> int:
+ """Generate results of code size changes between two revisions,
old and new. Measured code size results of these two revisions
must be available."""
- res_file = os.path.join(self.result_dir, "compare-" +
- self.old_rev + "-" + self.new_rev +
- self.fname_suffix + ".csv")
+ output_file = os.path.join(self.result_dir, "compare-" +
+ self.old_rev + "-" + self.new_rev +
+ self.fname_suffix + ".csv")
print("\nGenerating comparison results between",\
self.old_rev, "and", self.new_rev)
self.code_size_generator.size_generator_write_comparison(\
- self.old_rev, self.new_rev, res_file)
-
+ self.old_rev, self.new_rev, output_file)
return 0
def get_comparision_results(self) -> int:
"""Compare size of library/*.o between self.old_rev and self.new_rev,
and generate the result file."""
build_tree.check_repo_path()
- self._get_code_size_for_rev(self.old_rev)
- self._get_code_size_for_rev(self.new_rev)
- return self._gen_code_size_comparison()
+ self.gen_code_size_report(self.old_rev)
+ self.gen_code_size_report(self.new_rev)
+ return self.gen_code_size_comparison()
def main():
parser = argparse.ArgumentParser(description=(__doc__))