@@ -39,8 +39,7 @@ create or replace type body ut_coverage_cobertura_reporter is
3939 l_line_no := a_unit_coverage.lines.first;
4040 if l_line_no is null then
4141 for i in 1 .. a_unit_coverage.total_lines loop
42- l_file_part := '<line number="'||i||'" hits="0" branch="false"/>'||chr(10);
43- ut_utils.append_to_clob(l_result, l_file_part);
42+ ut_utils.append_to_clob(l_result, '<line number="'||i||'" hits="0" branch="false"/>');
4443 end loop;
4544 else
4645 while l_line_no is not null loop
@@ -68,79 +67,83 @@ create or replace type body ut_coverage_cobertura_reporter is
6867 function get_coverage_xml(
6968 a_coverage_data ut_coverage.t_coverage,
7069 a_run ut_run
71- ) return clob is
70+ ) return ut_varchar2_rows is
7271 l_file_part varchar2(32767);
73- l_result clob ;
72+ l_result ut_varchar2_rows := ut_varchar2_rows() ;
7473 l_unit ut_coverage.t_full_name;
7574 l_obj_name ut_coverage.t_object_name;
76- c_coverage_def constant varchar2(200) := '<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">'||chr(10) ;
77- c_file_footer constant varchar2(30) := '</file>'||chr(10) ;
75+ c_coverage_def constant varchar2(200) := '<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">';
76+ c_file_footer constant varchar2(30) := '</file>';
7877 c_coverage_footer constant varchar2(30) := '</coverage>';
79- c_sources_footer constant varchar2(30) := '</sources>'||chr(10) ;
80- c_packages_footer constant varchar2(30) := '</packages>'||chr(10) ;
81- c_package_footer constant varchar2(30) := '</package>'||chr(10) ;
82- c_class_footer constant varchar2(30) := '</class>'||chr(10) ;
83- c_lines_footer constant varchar2(30) := '</lines>'||chr(10) ;
78+ c_sources_footer constant varchar2(30) := '</sources>';
79+ c_packages_footer constant varchar2(30) := '</packages>';
80+ c_package_footer constant varchar2(30) := '</package>';
81+ c_class_footer constant varchar2(30) := '</class>';
82+ c_lines_footer constant varchar2(30) := '</lines>';
8483 l_epoch varchar2(50) := (sysdate - to_date('01-01-1970 00:00:00', 'dd-mm-yyyy hh24:mi:ss')) * 24 * 60 * 60;
8584 begin
8685
87- dbms_lob.createtemporary(l_result,true);
88-
89- ut_utils.append_to_clob(l_result, ut_utils.get_xml_header(a_run.client_character_set)||chr(10));
90- ut_utils.append_to_clob(l_result, c_coverage_def);
86+ ut_utils.append_to_list( l_result, ut_utils.get_xml_header(a_run.client_character_set) );
87+ ut_utils.append_to_list( l_result, c_coverage_def );
9188
9289 --write header
93- l_file_part:= '<coverage line-rate="0" branch-rate="0.0" lines-covered="'||a_coverage_data.covered_lines||'" lines-valid="'||TO_CHAR(a_coverage_data.covered_lines + a_coverage_data.uncovered_lines)||'" branches-covered="0" branches-valid="0" complexity="0" version="1" timestamp="'||l_epoch||'">';
94- ut_utils.append_to_clob(l_result, l_file_part);
90+ ut_utils.append_to_list(
91+ l_result,
92+ '<coverage line-rate="0" branch-rate="0.0" lines-covered="'
93+ ||a_coverage_data.covered_lines||'" lines-valid="'
94+ ||TO_CHAR(a_coverage_data.covered_lines + a_coverage_data.uncovered_lines)
95+ ||'" branches-covered="0" branches-valid="0" complexity="0" version="1" timestamp="'||l_epoch||'">'
96+ );
9597
9698
9799 --Write sources
98100 l_unit := a_coverage_data.objects.first;
99- l_file_part := '<sources>'||CHR(10);
100- ut_utils.append_to_clob(l_result, l_file_part);
101+ ut_utils.append_to_list( l_result, '<sources>' );
101102
102103 while l_unit is not null loop
103- l_file_part := '<source>'||dbms_xmlgen.convert(l_unit)||'</source>'||chr(10);
104- ut_utils.append_to_clob(l_result, l_file_part);
104+ ut_utils.append_to_list(l_result, '<source>'||dbms_xmlgen.convert(l_unit)||'</source>');
105105 l_unit := a_coverage_data.objects.next(l_unit);
106106 end loop;
107- ut_utils.append_to_clob (l_result, c_sources_footer);
107+ ut_utils.append_to_list (l_result, c_sources_footer);
108108
109109 --write packages
110110 l_unit := a_coverage_data.objects.first;
111- l_file_part := '<packages>'||CHR(10);
112- ut_utils.append_to_clob(l_result, l_file_part);
111+ ut_utils.append_to_list(l_result, '<packages>');
113112
114113 while l_unit is not null loop
115114 l_obj_name := a_coverage_data.objects(l_unit).name;
116- l_file_part := '<package name="'||dbms_xmlgen.convert(l_obj_name)||'" line-rate="0.0" branch-rate="0.0" complexity="0.0">'||CHR(10);
117- ut_utils.append_to_clob(l_result, l_file_part);
115+ ut_utils.append_to_list(
116+ l_result,
117+ '<package name="'||dbms_xmlgen.convert(l_obj_name)||'" line-rate="0.0" branch-rate="0.0" complexity="0.0">'
118+ );
118119
119- l_file_part := '<class name="'||dbms_xmlgen.convert(l_obj_name)||'" filename="'||dbms_xmlgen.convert(l_unit)||'" line-rate="0.0" branch-rate="0.0" complexity="0.0">'||CHR(10);
120- ut_utils.append_to_clob(l_result, l_file_part);
120+ ut_utils.append_to_list(
121+ l_result,
122+ '<class name="'||dbms_xmlgen.convert(l_obj_name)||'" filename="'
123+ ||dbms_xmlgen.convert(l_unit)||'" line-rate="0.0" branch-rate="0.0" complexity="0.0">'
124+ );
121125
122- l_file_part := '<lines>'||CHR(10);
123- ut_utils.append_to_clob(l_result, l_file_part);
124-
125- dbms_lob.append(l_result,get_lines_xml(a_coverage_data.objects(l_unit)));
126+ ut_utils.append_to_list(l_result, '<lines>');
127+
128+ ut_utils.append_to_list( l_result, get_lines_xml(a_coverage_data.objects(l_unit)) );
126129
127- ut_utils.append_to_clob (l_result, c_lines_footer);
128- ut_utils.append_to_clob (l_result, c_class_footer);
129- ut_utils.append_to_clob (l_result, c_package_footer);
130+ ut_utils.append_to_list (l_result, c_lines_footer);
131+ ut_utils.append_to_list (l_result, c_class_footer);
132+ ut_utils.append_to_list (l_result, c_package_footer);
130133
131134 l_unit := a_coverage_data.objects.next(l_unit);
132135 end loop;
133136
134- ut_utils.append_to_clob (l_result, c_packages_footer);
135- ut_utils.append_to_clob (l_result, c_coverage_footer);
137+ ut_utils.append_to_list (l_result, c_packages_footer);
138+ ut_utils.append_to_list (l_result, c_coverage_footer);
136139 return l_result;
137140 end;
138141 begin
139142 ut_coverage.coverage_stop();
140143
141144 l_coverage_data := ut_coverage.get_coverage_data(a_run.coverage_options);
142145
143- self.print_clob ( get_coverage_xml( l_coverage_data, a_run ) );
146+ self.print_text_lines ( get_coverage_xml( l_coverage_data, a_run ) );
144147
145148 (self as ut_reporter_base).after_calling_run(a_run);
146149 end;
0 commit comments