<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Hello,</div><div class="gmail_quote"><br></div><div class="gmail_quote">If you find some time, please do a final review of this patch and provide</div><div class="gmail_quote">suggestions if it's not mergeable yet :) </div><div class="gmail_quote"><br></div><div class="gmail_quote">There are only three days left, I seek some advice on the wrapup work on coverage</div><div class="gmail_quote">analysis . The current status is :</div><div class="gmail_quote"><br></div><div class="gmail_quote">* This patch adds support to generate separate report for each symbol-sets.</div><div class="gmail_quote"><br></div><div class="gmail_quote">* I sent a patch a day ago with the symbol-sets and the respective libraray </div><div class="gmail_quote">  addresses added to the symbol-sets.ini file. I have also attached a screenshot of the report.</div><div class="gmail_quote">  Joel, does the report look good to you ?</div><div class="gmail_quote">  What are the next steps to get the reports published ? Is it intended to be a </div><div class="gmail_quote">  post GSoC work ? </div><div class="gmail_quote"><br></div><div class="gmail_quote">* I have completed the dumper for gcno files. There are still more understanding</div><div class="gmail_quote">  needed to make sense out of the data, but all the data can be dumped in a human</div><div class="gmail_quote">  readable format now. Please have a look at the  generated txt file.</div><div class="gmail_quote"><a href="https://github.com/thelunatic/gcno_dumper/blob/master/gcno_dump.txt">  https://github.com/thelunatic/gcno_dumper/blob/master/gcno_dump.txt</a></div><div class="gmail_quote"><br></div><div class="gmail_quote">*  Any other suggestions ?</div><div class="gmail_quote"><br></div><div class="gmail_quote">Thanks </div><div class="gmail_quote">--vijayk</div><div class="gmail_quote"><br></div><div class="gmail_quote">On 30 July 2018 at 22:55, Vijay Kumar Banerjee <span dir="ltr"><<a href="mailto:vijaykumar9597@gmail.com" target="_blank">vijaykumar9597@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Invoke covoar multiple times from the script to generate separate<br>
reports for each symbol-set.<br>
---<br>
 tester/rt/coverage.py | 38 ++++++++++++++++++------------<wbr>--------<br>
 1 file changed, 18 insertions(+), 20 deletions(-)<br>
<br>
diff --git a/tester/rt/coverage.py b/tester/rt/coverage.py<br>
index 7dd5002..c979332 100644<br>
--- a/tester/rt/coverage.py<br>
+++ b/tester/rt/coverage.py<br>
@@ -99,8 +99,8 @@ class summary:<br>
         return line.strip().split(' ')[0]<br>
<br>
 class report_gen_html:<br>
-    def __init__(self, p_symbol_sets_list, build_dir, rtdir, bsp):<br>
-        self.symbol_sets_list = ['score']<br>
+    def __init__(self, symbol_sets, build_dir, rtdir, bsp):<br>
+        self.symbol_sets = symbol_sets<br>
         self.build_dir = build_dir<br>
         self.partial_reports_files = list(['index.html', 'summary.txt'])<br>
         self.number_of_columns = 1<br>
@@ -109,7 +109,7 @@ class report_gen_html:<br>
<br>
     def _find_partial_reports(self):<br>
         partial_reports = {}<br>
-        for symbol_set in self.symbol_sets_list:<br>
+        for symbol_set in self.symbol_sets:<br>
             set_summary = summary(path.join(self.bsp + "-coverage",<br>
                                             symbol_set))<br>
             set_summary.parse()<br>
@@ -204,7 +204,7 @@ class report_gen_html:<br>
     def add_covoar_src_path(self):<br>
         table_js_path = path.join(self.covoar_src_<wbr>path, 'table.js')<br>
         covoar_css_path = path.join(self.covoar_src_<wbr>path, 'covoar.css')<br>
-        for symbol_set in self.symbol_sets_list:<br>
+        for symbol_set in self.symbol_sets:<br>
             symbol_set_dir = path.join(self.build_dir,<br>
                                        self.bsp + '-coverage', symbol_set)<br>
             html_files = os.listdir(symbol_set_dir)<br>
@@ -264,27 +264,23 @@ class symbol_parser(object):<br>
             for sset in self.ssets:<br>
                 lib = path.join(self.build_dir, config.get('libraries', sset))<br>
                 self.symbol_sets[sset] = lib.encode('utf-8')<br>
+            return self.ssets<br>
         except:<br>
             raise error.general('Symbol set parsing failed')<br>
<br>
-    def _write_ini(self):<br>
+    def write_ini(self, symbol_set):<br>
         config = configparser.ConfigParser()<br>
         try:<br>
-            sets = ', '.join(self.symbol_sets.keys()<wbr>)<br>
+            sset = symbol_set<br>
             config.add_section('symbol-<wbr>sets')<br>
-            config.set('symbol-sets', 'sets', sets)<br>
-            for key in self.symbol_sets.keys():<br>
-                config.add_section(key)<br>
-                config.set(key, 'libraries', self.symbol_sets[key])<br>
+            config.set('symbol-sets', 'sets', sset)<br>
+            config.add_section(sset)<br>
+            config.set(sset, 'libraries', self.symbol_sets[sset])<br>
             with open(self.symbol_select_file, 'w') as conf:<br>
                 config.write(conf)<br>
         except:<br>
             raise error.general('symbol parser write failed')<br>
<br>
-    def run(self):<br>
-        self.parse()<br>
-        self._write_ini()<br>
-<br>
 class covoar(object):<br>
     '''<br>
     Covoar runner<br>
@@ -371,20 +367,22 @@ class coverage_run(object):<br>
                                    self.symbol_select_path,<br>
                                    self.symbol_set,<br>
                                    build_dir)<br>
-            parser.run()<br>
-            covoar_runner = covoar(self.test_dir, self.symbol_select_path,<br>
+            symbol_sets = parser.parse()<br>
+            for sset in symbol_sets:<br>
+                parser.write_ini(sset)<br>
+                covoar_runner = covoar(self.test_dir, self.symbol_select_path,<br>
                                    self.executables, self.explanations_txt,<br>
                                    self.trace)<br>
-            covoar_runner.run('score', self.symbol_select_path)<br>
-            self._generate_reports();<br>
+                covoar_runner.run(sset, self.symbol_select_path)<br>
+            self._generate_reports(symbol_<wbr>sets);<br>
             self._summarize();<br>
         finally:<br>
             self._cleanup();<br>
<br>
-    def _generate_reports(self):<br>
+    def _generate_reports(self, symbol_sets):<br>
         log.notice('Coverage generating reports')<br>
         if self.report_format == 'html':<br>
-            report = report_gen_html(self.symbol_<wbr>sets,<br>
+            report = report_gen_html(symbol_sets,<br>
                                      self.build_dir,<br>
                                      self.rtdir,<br>
                                      self.macros['bsp'])<br>
<span class="gmail-HOEnZb"><font color="#888888">-- <br>
2.14.4<br>
<br>
</font></span></blockquote></div><br></div></div>