_TEMPLATE_RST = {'head' : 'tools/report/report_head.rst',
'foot' : 'tools/report/report_foot.rst',
- 'final' : 'test_report.rst'
+ 'final' : 'test_report.rst',
+ 'tmp' : 'tools/report/report_tmp_caption.rst'
}
def parse_arguments():
group.add_argument('--vswitch', help='vswitch implementation to use')
group.add_argument('--fwdapp', help='packet forwarding application to use')
group.add_argument('--vnf', help='vnf to use')
- group.add_argument('--duration', help='traffic transmit duration')
group.add_argument('--sysmetrics', help='system metrics logger to use')
group = parser.add_argument_group('test behavior options')
group.add_argument('--xunit', action='store_true',
rst_results = glob.glob(os.path.join(path, 'result*rst'))
if len(rst_results):
try:
- test_report = os.path.join(path, _TEMPLATE_RST['final'])
- retval = subprocess.call('cat {} {} {} > {}'.format(_TEMPLATE_RST['head'], ' '.join(rst_results),
- _TEMPLATE_RST['foot'], test_report), shell=True)
+ test_report = os.path.join(path, '{}_{}'.format(settings.getValue('VSWITCH'), _TEMPLATE_RST['final']))
+ # create report caption directly - it is not worth to execute jinja machinery
+ report_caption = '{}\n{} {}\n{}\n\n'.format(
+ '============================================================',
+ 'Performance report for',
+ Loader().get_vswitches()[settings.getValue('VSWITCH')].__doc__.strip().split('\n')[0],
+
+ '============================================================')
+
+ with open(_TEMPLATE_RST['tmp'], 'w') as file_:
+ file_.write(report_caption)
+
+ retval = subprocess.call('cat {} {} {} {} > {}'.format(_TEMPLATE_RST['tmp'], _TEMPLATE_RST['head'],
+ ' '.join(rst_results), _TEMPLATE_RST['foot'],
+ test_report), shell=True)
if retval == 0 and os.path.isfile(test_report):
logging.info('Overall test report written to "%s"', test_report)
else:
logging.error('Generatrion of overall test report has failed.')
+
+ # remove temporary file
+ os.remove(_TEMPLATE_RST['tmp'])
+
except subprocess.CalledProcessError:
logging.error('Generatrion of overall test report has failed.')
settings.getValue('vnf_dir'))
sys.exit(1)
- if args['duration']:
- if args['duration'].isdigit() and int(args['duration']) > 0:
- settings.setValue('duration', args['duration'])
- else:
- logging.error('The selected Duration is not a number')
- sys.exit(1)
-
# update global settings
guest_loopback = get_test_param('guest_loopback', None)
if guest_loopback: