Преглед на файлове

Merge branch 'bugfix/archive_details_always_run_like_diff_v4.2' into 'release/v4.2'

tools: fix bug with idf_size argument archive_details (v4.2)

See merge request espressif/esp-idf!15776
Roland Dobai преди 4 години
родител
ревизия
ed6f72142f
променени са 2 файла, в които са добавени 456 реда и са изтрити 440 реда
  1. 15 6
      tools/idf_size.py
  2. 441 434
      tools/test_idf_size/expected_output

+ 15 - 6
tools/idf_size.py

@@ -1079,7 +1079,7 @@ class StructureForArchiveSymbols(object):
 
 
 def get_archive_symbols(sections, archive, as_json=False, sections_diff=None):  # type: (Dict, str, bool, Dict) -> str
-    diff_en = sections_diff is not None
+    diff_en = bool(sections_diff)
     current = StructureForArchiveSymbols.get(archive, sections)
     reference = StructureForArchiveSymbols.get(archive, sections_diff) if sections_diff else {}
 
@@ -1103,19 +1103,28 @@ def get_archive_symbols(sections, archive, as_json=False, sections_diff=None):
         def _get_item_pairs(name, section):  # type: (str, collections.OrderedDict) -> collections.OrderedDict
             return collections.OrderedDict([(key.replace(name + '.', ''), val) for key, val in iteritems(section)])
 
+        def _get_max_len(symbols_dict):  # type: (Dict) -> Tuple[int, int]
+            names_max_len = 0
+            numbers_max_len = 0
+            for t, s in iteritems(symbols_dict):
+                numbers_max_len = max([numbers_max_len] + [len(str(x)) for _, x in iteritems(s)])
+                names_max_len = max([names_max_len] + [len(x) for x in _get_item_pairs(t, s)])
+
+            return names_max_len, numbers_max_len
+
         def _get_output(section_symbols):  # type: (Dict) -> str
             output = ''
+            names_max_len, numbers_max_len  = _get_max_len(section_symbols)
             for t, s in iteritems(section_symbols):
                 output += '{}Symbols from section: {}{}'.format(os.linesep, t, os.linesep)
                 item_pairs = _get_item_pairs(t, s)
-                output += ' '.join(['{}({})'.format(key, val) for key, val in iteritems(item_pairs)])
+                for key, val in iteritems(item_pairs):
+                    output += ' '.join([('\t{:<%d} : {:>%d}\n' % (names_max_len,numbers_max_len)).format(key, val)])
                 section_total = sum([val for _, val in iteritems(item_pairs)])
-                output += '{}Section total: {}{}'.format(os.linesep if section_total > 0 else '',
-                                                         section_total,
-                                                         os.linesep)
+                output += 'Section total: {}{}'.format(section_total, os.linesep)
             return output
 
-        output = 'Symbols within the archive: {} (Not all symbols may be reported){}'.format(archive, os.linesep)
+        output = '{}Symbols within the archive: {} (Not all symbols may be reported){}'.format(os.linesep, archive, os.linesep)
         if diff_en:
 
             def _generate_line_tuple(curr, ref, name):

Файловите разлики са ограничени, защото са твърде много
+ 441 - 434
tools/test_idf_size/expected_output


Някои файлове не бяха показани, защото твърде много файлове са промени