[PATCH] Coverage: Add support to generate separate reports for each symbol-set

Vijay Kumar Banerjee vijaykumar9597 at gmail.com
Wed Jul 25 02:37:54 UTC 2018


Invoke covoar multiple times from the script to generate separate
reports for each symbol-set.
---
 tester/rt/coverage.py                         | 32 +++++++++++++--------------
 tester/rtems/testing/coverage/symbol-sets.ini | 11 ++++++---
 2 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/tester/rt/coverage.py b/tester/rt/coverage.py
index 7dd5002..e2f4dca 100644
--- a/tester/rt/coverage.py
+++ b/tester/rt/coverage.py
@@ -100,7 +100,7 @@ class summary:
 
 class report_gen_html:
     def __init__(self, p_symbol_sets_list, build_dir, rtdir, bsp):
-        self.symbol_sets_list = ['score']
+        self.symbol_sets_list = p_symbol_sets_list
         self.build_dir = build_dir
         self.partial_reports_files = list(['index.html', 'summary.txt'])
         self.number_of_columns = 1
@@ -267,24 +267,19 @@ class symbol_parser(object):
         except:
             raise error.general('Symbol set parsing failed')
 
-    def _write_ini(self):
+    def write_ini(self, symbol_set):
         config = configparser.ConfigParser()
         try:
-            sets = ', '.join(self.symbol_sets.keys())
+            sset = symbol_set
             config.add_section('symbol-sets')
-            config.set('symbol-sets', 'sets', sets)
-            for key in self.symbol_sets.keys():
-                config.add_section(key)
-                config.set(key, 'libraries', self.symbol_sets[key])
+            config.set('symbol-sets', 'sets', sset)
+            config.add_section(sset)
+            config.set(sset, 'libraries', self.symbol_sets[sset])
             with open(self.symbol_select_file, 'w') as conf:
                 config.write(conf)
         except:
             raise error.general('symbol parser write failed')
 
-    def run(self):
-        self.parse()
-        self._write_ini()
-
 class covoar(object):
     '''
     Covoar runner
@@ -371,20 +366,23 @@ class coverage_run(object):
                                    self.symbol_select_path,
                                    self.symbol_set,
                                    build_dir)
-            parser.run()
-            covoar_runner = covoar(self.test_dir, self.symbol_select_path,
+            parser.parse()
+            ssets = parser.symbol_sets.keys()
+            for sset in ssets:
+                parser.write_ini(sset)
+                covoar_runner = covoar(self.test_dir, self.symbol_select_path,
                                    self.executables, self.explanations_txt,
                                    self.trace)
-            covoar_runner.run('score', self.symbol_select_path)
-            self._generate_reports();
+                covoar_runner.run(sset, self.symbol_select_path)
+            self._generate_reports(ssets);
             self._summarize();
         finally:
             self._cleanup();
 
-    def _generate_reports(self):
+    def _generate_reports(self, symbol_sets):
         log.notice('Coverage generating reports')
         if self.report_format == 'html':
-            report = report_gen_html(self.symbol_sets,
+            report = report_gen_html(symbol_sets,
                                      self.build_dir,
                                      self.rtdir,
                                      self.macros['bsp'])
diff --git a/tester/rtems/testing/coverage/symbol-sets.ini b/tester/rtems/testing/coverage/symbol-sets.ini
index a2ec7bc..3900f14 100644
--- a/tester/rtems/testing/coverage/symbol-sets.ini
+++ b/tester/rtems/testing/coverage/symbol-sets.ini
@@ -29,8 +29,13 @@
 #
 
 [symbol-sets]
-sets = score,rtems
+sets = score,rtems,libblock,libcrypt,libcsupport,libmd,libnetworking
 
 [libraries]
-score = @BUILD-TARGET@/c/@BSP@/cpukit/score/libscore.a
-rtems = @BUILD-TARGET@/c/@BSP@/cpukit/rtems/librtems.a
+score         = @BUILD-TARGET@/c/@BSP@/cpukit/score/libscore.a
+rtems         = @BUILD-TARGET@/c/@BSP@/cpukit/rtems/librtems.a
+libblock      = @BUILD-TARGET@/c/@BSP@/cpukit/libblock/libblock.a
+libcrypt      = @BUILD-TARGET@/c/@BSP@/cpukit/libcrypt/libcrypt.a
+libcsupport   = @BUILD-TARGET@/c/@BSP@/cpukit/libcsupport/libcsupport.a
+libmd         = @BUILD-TARGET@/c/@BSP@/cpukit/libmd/libmd.a
+libnetworking = @BUILD-TARGET@/c/@BSP@/cpukit/libnetworking/libnetworking.a
-- 
2.14.2



More information about the devel mailing list