[yocto] [qa-tools][PATCH 3/4] testopia_update/utils: Add utils directory
jose.perez.carranza at linux.intel.com
jose.perez.carranza at linux.intel.com
Tue Jun 13 08:47:27 PDT 2017
From: Jose Perez Carranza <jose.perez.carranza at linux.intel.com>
Add utils directory to be used as the repository for different utilities
-wikimaker.py : scripts that creates the wiki report data saves it to
the data inside a file to be copied on the already created wiki page
Signed-off-by: Jose Perez Carranza <jose.perez.carranza at linux.intel.com>
---
testopia_update/utils/__init__.py | 0
testopia_update/utils/wikimaker.py | 203 +++++++++++++++++++++++++++++++++++++
2 files changed, 203 insertions(+)
create mode 100644 testopia_update/utils/__init__.py
create mode 100644 testopia_update/utils/wikimaker.py
diff --git a/testopia_update/utils/__init__.py b/testopia_update/utils/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/testopia_update/utils/wikimaker.py b/testopia_update/utils/wikimaker.py
new file mode 100644
index 0000000..96fdfc0
--- /dev/null
+++ b/testopia_update/utils/wikimaker.py
@@ -0,0 +1,203 @@
+#!/usr/bin/env python
+
+def wiki_define_varaibles(file_name, wikivars):
+ write_vars = '{|\n' + wikivars + '|}\n'
+ with open(file_name, "w+") as f:
+ f.write(write_vars)
+
+
+def wiki_testing_data(file_name):
+ test_data = '\n=Testing data= \n <nowiki> \n Test type: \n Branch: \n' + \
+ ' Build name: \n poky commit: \n Autobuilder images repository: \n' + \
+ ' Distributions tested: \n </nowiki> \n'
+ with open(file_name, 'a') as f:
+ f.write(test_data)
+
+def wiki_test_summary(file_name, list_vars):
+ vars_wikistyle = ''
+
+ #Create the list of variables on wiki style
+ for v in list_vars:
+ vars_wikistyle += ''.join(['{{#var:', v, '}}, '])
+
+ #Delete the last ',' of the list of varaibles
+ vars_wikistyle = vars_wikistyle[:-2]
+
+ #Create the summary table
+ summary_table = '{|\n|{{#testopia:\n|run_id=0, %s\n' % vars_wikistyle + \
+ '||report_id=concatstats}}\n'
+
+ #Create bug status graphics
+ bugs_graphics = '<br>\n' + \
+ '{|\n|{{#testopia:\n|run_id=0, %s\n ' % vars_wikistyle + \
+ '|chart=bstatus\n |report_id=bugs\n |charttype=bar\n' + \
+ ' |sortable=true\n |nudechart=true\n |chartpos=top\n}}\n'
+
+ tc_report = '<br>\n' + \
+ '{|\n|{{#testopia:\n|run_id=0, %s\n' % vars_wikistyle + \
+ '|charttype=bar\n|report_id=status}}\n|}'
+
+ with open(file_name, 'a') as f:
+ f.write((summary_table + '\n' + bugs_graphics + '\n' + tc_report))
+
+def wiki_bugs_found_QA(file_name):
+ bugs_new = '\n= Bugs Found during QA Test =\n== <span style="color:' + \
+ 'blue; "> New issues Found during QA Test & Community </span>==' + \
+ '\n{{#bugzilla:\n |columns=id,summary,priority,to,qa,' + \
+ 'milestone,status,resolution,cf_regression_type,created\n' + \
+ ' |noresultsmessage="None"\n |sort=ID\n |group=product\n' + \
+ ' |id=0000 \n}}\n<br>\n\n'
+
+ bugs_hm_not_new = '== <span style="color: red; "> High and M+ issues' + \
+ 'Found during QA Test (NOT NEW) </span>==\n{{#bugzilla' + \
+ ':\n |columns=id,summary,priority,to,qa,milestone,' + \
+ 'status,resolution,cf_regression_type,created\n ' + \
+ '|noresultsmessage="None"\n |sort=priority\n ' + \
+ '|group=product\n |id=0000 \n}}<br>\n\n'
+
+ other_bugs = '== Other Bugs found during QA Test (NOT NEW) ==\n' + \
+ '{{#bugzilla:\n |columns=id,summary,priority,to,qa,' + \
+ 'milestone,status,resolution,cf_regression_type,created\n' + \
+ ' |noresultsmessage="None"\n |sort=priority\n'+ \
+ ' |group=cf_regression_type,product\n |id=0000 \n}}\n'
+
+
+ with open(file_name, 'a') as f:
+ f.write((bugs_new + bugs_hm_not_new + other_bugs))
+
+def wiki_community_bugs(file_name):
+ open_bugs = '\n= Current community Open Bugs - Medium+/High =\n' + \
+ 'Overview of the open bugs opened against current milestone' + \
+ 'or release which are Medium+ or High and are not targeted' + \
+ 'for the next milestones\n\n{{#bugzilla:\n |columns=id,' + \
+ 'priority,summary,to,qa,milestone,status,cf_regression_type' + \
+ ',created\n |noresultsmessage="None"\n |priority=high,' + \
+ 'Medium%2B\n |severity=!enhancement\n ' + \
+ '|sort=cf_regression_type\n |group=product\n ' + \
+ '|total=summary\n |status=!(RESOLVED,VERIFIED)\n ' + \
+ '|milestone=2.4\n}}\n\n== Bug Trend ==\nAn overview of this' + \
+ 'week\'s [[Yocto Bug Trend]] charts can be accessed on the' + \
+ 'following [https://wiki.yoctoproject.org/charts/combo.html' + \
+ 'page]\n'
+
+ with open(file_name, 'a') as f:
+ f.write(open_bugs)
+
+
+def wiki_perf_tests(file_name):
+ perf_data = '\n= Build Performance Test =\n' + \
+ 'Detailed description on how performance test is run can' + \
+ 'be found on the [[Performance Test]] wiki.\nThe below' + \
+ 'charts are displaying the build performance trend for 2.1' + \
+ 'M4 to 2.3 M3. Performance execution has had 2 stages, one ' + \
+ 'executed from 1.6 to 2.1 in RO and executed from 1.6 to 2.1' + \
+ 'in RO and are differences between HW used in both' + \
+ 'locations, hence the numbers are different.\n\n' + \
+ '* [https://wiki.yoctoproject.org/charts/perf_milestone/' + \
+ 'performance_test.html RO Charts]\n* [https://wiki.' + \
+ 'yoctoproject.org/charts/perf_milestone_GDC/performance_test' + \
+ '.html GDC Charts]\n\nBelow chars are showing the latest' + \
+ 'performance results taken from the current milestone.\n\n' + \
+ '== Performance Charts==\n\nFor Bitbake core-image-sato with' + \
+ 'rm_work\n\n[[File:Ww19-2k17 - rmwork.png | 1280px | ' + \
+ 'link=https://wiki.yoctoproject.org/charts/perf_milestone_' + \
+ 'GDC/bitbake-core-image-sato-rmwork.html ]]\n\nBuilding the ' + \
+ 'Virtual kernel\n\n[[File:Ww19-2k17 - kernel.png | 1280px | ' + \
+ 'link=https://wiki.yoctoproject.org/charts/perf_milestone_' + \
+ 'GDC/bitbake-virtual-kernel.html]]\n\nBuilding the rootfs\n' + \
+ '\n[[File:Ww19-2k17_-_rootfs.png | 1280px | link=https://' + \
+ 'wiki.yoctoproject.org/charts/perf_milestone_GDC/bitbake-' + \
+ 'core-image-sato-rootfs.html]]\n\nBuilding core-image-sato' + \
+ '\n\n[[File:Ww19-2k17_-_sato.png | 1280px | link=https://' + \
+ 'wiki.yoctoproject.org/charts/perf_milestone_GDC/bitbake-' + \
+ 'core-image-sato.html]]\n\neSDK Deploy time\n\n[[File:Ww19' + \
+ '-2k17_-_esdk.png | 1280px | link=https://wiki.yoctoproject' + \
+ '.org/charts/perf_milestone_GDC/bitbake-eSDK.html]]\n'
+
+ with open(file_name, 'a') as f:
+ f.write(perf_data)
+
+def wic_ptest_results(file_name):
+ perf_data = '\n=pTest for genericx86-64 on NUC=\n\n== open bugs ==\n\n' + \
+ '{{#bugzilla:\n |columns=id,summary,priority,to,qa,' + \
+ 'milestone,status,resolution,cf_regression_type,created\n' + \
+ ' |noresultsmessage="None"\n |sort=status\n ' + \
+ '|group=product\n |id=0000\n}}\n\n== results ==\n\n' + \
+ '{{:Ptest 381897c64069ea43d595380a3ae913bcc79cf7e1}}\n'
+
+ with open(file_name, 'a') as f:
+ f.write(perf_data)
+
+
+def detailed_status(var):
+ status_data = '\nStatus\n{{#testopia:\n|run_id={{#var:%s}}' % var + \
+ '\n|showhide=true\n|hidden=true\n|report_id=status\n' + \
+ '|charttype=pie3}}\n'
+
+ return status_data
+
+def detailed_bugs(var):
+ bugs_data = '\nBugs\n{{#testopia:\n|run_id={{#var:%s}}' % var + \
+ '\n|report_id=bugs\n|chart=bstatus,prio,severity\n' + \
+ '|charttype=pie,pie,pie\n|showhide=true\n|hidden=true}}\n'
+
+ return bugs_data
+
+def detailed_agenda(var):
+ agenda_data = '\nAgenda\n{{#testopia:\n|run_id={{#var:%s}}' % var + \
+ '\n|report_id=agenda\n|showhide=true\n|hidden=true\n' + \
+ '|reportoptions=withdependency=false}}\n'
+
+ return agenda_data
+
+
+def wiki_detailed_report(file_name, vars_list):
+ details = '=Detailed Report=\n'
+ comp_list = []
+ for var in vars_list:
+ comp = var.partition('_')[2].partition('_')[0]
+ if not comp in comp_list:
+ comp_list.append(comp)
+ details += '\n==%s==' % comp
+ details += detailed_status(var) + \
+ detailed_bugs(var) + detailed_agenda(var)
+ else:
+ details += detailed_status(var) + detailed_bugs(var) + \
+ detailed_agenda(var)
+
+ with open(file_name, 'a') as f:
+ f.write(details)
+
+
+def create_wiki(wikivars, vars_list):
+
+ file_name = 'wiki.page'
+
+ #Add section of varaibles definition
+ wiki_define_varaibles(file_name, wikivars)
+
+ #Start adding sections to the wiki page
+ #1- Testing Data
+ wiki_testing_data(file_name)
+
+ #2- Test Run Summary Report
+ wiki_test_summary(file_name, vars_list)
+
+ #3 Bugs Found during QA Test
+ wiki_bugs_found_QA(file_name)
+
+ #4 Current community Open Bugs - Medium+/High
+ wiki_community_bugs(file_name)
+
+ #5 Build Performance Test
+ wiki_perf_tests(file_name)
+
+ #6 pTest for genericx86-64 on NUC
+ wic_ptest_results(file_name)
+
+ #7 Detailed Report
+ wiki_detailed_report(file_name, vars_list)
+
+ #8 Upload wiki
+ #TODO a funtion that can access to the wiki DB upload the results currently
+ #saved on wiki_page file.
--
2.11.0
More information about the yocto
mailing list