<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>