Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1094ec1e authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add the rebuilt modules to the benchmark formatting" into main

parents 46dfb868 6b40826d
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -86,10 +86,12 @@ def group_by(l, key):


class Table:
    def __init__(self):
    def __init__(self, row_title, fixed_titles=[]):
        self._data = {}
        self._rows = []
        self._cols = []
        self._fixed_cols = {}
        self._titles = [row_title] + fixed_titles

    def Set(self, column_key, row_key, data):
        self._data[(column_key, row_key)] = data
@@ -98,19 +100,27 @@ class Table:
        if not row_key in self._rows:
            self._rows.append(row_key)

    def SetFixedCol(self, row_key, columns):
        self._fixed_cols[row_key] = columns

    def Write(self, out):
        table = []
        # Expand the column items
        for row in zip(*self._cols):
            if row.count(row[0]) == len(row):
                continue
            table.append([""] + [col for col in row])
            table.append([""] * len(self._titles) + [col for col in row])
        if table:
            # Update the last row of the header with title and add separator
            for i in range(len(self._titles)):
                table[len(table)-1][i] = self._titles[i]
            table.append(pretty.SEPARATOR)
        # Populate the data
        for row in self._rows:
            table.append([str(row)] + [str(self._data.get((col, row), "")) for col in self._cols])
        out.write(pretty.FormatTable(table))
            table.append([str(row)]
                         + self._fixed_cols[row]
                         + [str(self._data.get((col, row), "")) for col in self._cols])
        out.write(pretty.FormatTable(table, alignments="LL"))


def format_duration_sec(ns):
@@ -173,11 +183,12 @@ def main(argv):
                              in group_by(summary["benchmarks"], bm_key)]

    # Build the table
    table = Table()
    table = Table("Benchmark", ["Rebuild"])
    for filename, summary in summaries:
        for key, column in summary["columns"]:
            for id, cell in column:
                duration_ns = statistics.median([b["duration_ns"] for b in cell])
                table.SetFixedCol(cell[0]["title"], [" ".join(cell[0]["modules"])])
                table.Set(tuple([summary["date"].strftime("%Y-%m-%d"),
                                 summary["branch"],
                                 summary["tag"]]
+3 −3
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ class Sentinel():

SEPARATOR = Sentinel()

def FormatTable(data, prefix=""):
def FormatTable(data, prefix="", alignments=[]):
    """Pretty print a table.

    Prefixes each row with `prefix`.
@@ -40,10 +40,10 @@ def FormatTable(data, prefix=""):
        else:
            for i in range(len(row)):
                cell = row[i] if row[i] else ""
                if i != 0:
                if i >= len(alignments) or alignments[i] == "R":
                    result += " " * (widths[i] - len(cell))
                result += cell
                if i == 0:
                if i < len(alignments) and alignments[i] == "L":
                    result += " " * (widths[i] - len(cell))
                result += colsep
            result += "\n"