Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit fe90466

Browse files
committed
Added support for a_client_character_set
1 parent 641c9f9 commit fe90466

22 files changed

Lines changed: 487 additions & 141 deletions

source/api/ut.pkb

Lines changed: 254 additions & 74 deletions
Large diffs are not rendered by default.

source/api/ut.pks

Lines changed: 104 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -48,75 +48,143 @@ create or replace package ut authid current_user as
4848
procedure fail(a_message in varchar2);
4949

5050
function run(
51-
a_reporter ut_reporter_base := null, a_color_console integer := 0,
52-
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
53-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
51+
a_reporter ut_reporter_base := null,
52+
a_color_console integer := 0,
53+
a_coverage_schemes ut_varchar2_list := null,
54+
a_source_file_mappings ut_file_mappings := null,
55+
a_test_file_mappings ut_file_mappings := null,
56+
a_include_objects ut_varchar2_list := null,
57+
a_exclude_objects ut_varchar2_list := null,
58+
a_client_character_set varchar2 := null
5459
) return ut_varchar2_rows pipelined;
5560

5661
function run(
57-
a_reporter ut_reporter_base := null, a_color_console integer := 0,
58-
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
59-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
62+
a_reporter ut_reporter_base := null,
63+
a_color_console integer := 0,
64+
a_coverage_schemes ut_varchar2_list := null,
65+
a_source_files ut_varchar2_list,
66+
a_test_files ut_varchar2_list,
67+
a_include_objects ut_varchar2_list := null,
68+
a_exclude_objects ut_varchar2_list := null,
69+
a_client_character_set varchar2 := null
6070
) return ut_varchar2_rows pipelined;
6171

6272
function run(
63-
a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console integer := 0,
64-
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
65-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
73+
a_paths ut_varchar2_list,
74+
a_reporter ut_reporter_base := null,
75+
a_color_console integer := 0,
76+
a_coverage_schemes ut_varchar2_list := null,
77+
a_source_file_mappings ut_file_mappings := null,
78+
a_test_file_mappings ut_file_mappings := null,
79+
a_include_objects ut_varchar2_list := null,
80+
a_exclude_objects ut_varchar2_list := null,
81+
a_client_character_set varchar2 := null
6682
) return ut_varchar2_rows pipelined;
6783

6884
function run(
69-
a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console integer := 0,
70-
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
71-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
85+
a_paths ut_varchar2_list,
86+
a_reporter ut_reporter_base := null,
87+
a_color_console integer := 0,
88+
a_coverage_schemes ut_varchar2_list := null,
89+
a_source_files ut_varchar2_list,
90+
a_test_files ut_varchar2_list,
91+
a_include_objects ut_varchar2_list := null,
92+
a_exclude_objects ut_varchar2_list := null,
93+
a_client_character_set varchar2 := null
7294
) return ut_varchar2_rows pipelined;
7395

7496
function run(
75-
a_path varchar2, a_reporter ut_reporter_base := null, a_color_console integer := 0,
76-
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
77-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
97+
a_path varchar2,
98+
a_reporter ut_reporter_base := null,
99+
a_color_console integer := 0,
100+
a_coverage_schemes ut_varchar2_list := null,
101+
a_source_file_mappings ut_file_mappings := null,
102+
a_test_file_mappings ut_file_mappings := null,
103+
a_include_objects ut_varchar2_list := null,
104+
a_exclude_objects ut_varchar2_list := null,
105+
a_client_character_set varchar2 := null
78106
) return ut_varchar2_rows pipelined;
79107

80108
function run(
81-
a_path varchar2, a_reporter ut_reporter_base := null, a_color_console integer := 0,
82-
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
83-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
109+
a_path varchar2,
110+
a_reporter ut_reporter_base := null,
111+
a_color_console integer := 0,
112+
a_coverage_schemes ut_varchar2_list := null,
113+
a_source_files ut_varchar2_list,
114+
a_test_files ut_varchar2_list,
115+
a_include_objects ut_varchar2_list := null,
116+
a_exclude_objects ut_varchar2_list := null,
117+
a_client_character_set varchar2 := null
84118
) return ut_varchar2_rows pipelined;
85119

86120
procedure run(
87-
a_reporter ut_reporter_base := null, a_color_console boolean := false,
88-
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
89-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
121+
a_reporter ut_reporter_base := null,
122+
a_color_console boolean := false,
123+
a_coverage_schemes ut_varchar2_list := null,
124+
a_source_file_mappings ut_file_mappings := null,
125+
a_test_file_mappings ut_file_mappings := null,
126+
a_include_objects ut_varchar2_list := null,
127+
a_exclude_objects ut_varchar2_list := null,
128+
a_client_character_set varchar2 := null
90129
);
91130

92131
procedure run(
93-
a_reporter ut_reporter_base := null, a_color_console boolean := false,
94-
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
95-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
132+
a_reporter ut_reporter_base := null,
133+
a_color_console boolean := false,
134+
a_coverage_schemes ut_varchar2_list := null,
135+
a_source_files ut_varchar2_list,
136+
a_test_files ut_varchar2_list,
137+
a_include_objects ut_varchar2_list := null,
138+
a_exclude_objects ut_varchar2_list := null,
139+
a_client_character_set varchar2 := null
96140
);
97141

98142
procedure run(
99-
a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
100-
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
101-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
143+
a_paths ut_varchar2_list,
144+
a_reporter ut_reporter_base := null,
145+
a_color_console boolean := false,
146+
a_coverage_schemes ut_varchar2_list := null,
147+
a_source_file_mappings ut_file_mappings := null,
148+
a_test_file_mappings ut_file_mappings := null,
149+
a_include_objects ut_varchar2_list := null,
150+
a_exclude_objects ut_varchar2_list := null,
151+
a_client_character_set varchar2 := null
102152
);
103153

104154
procedure run(
105-
a_paths ut_varchar2_list, a_reporter ut_reporter_base := null, a_color_console boolean := false,
106-
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
107-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
155+
a_paths ut_varchar2_list,
156+
a_reporter ut_reporter_base := null,
157+
a_color_console boolean := false,
158+
a_coverage_schemes ut_varchar2_list := null,
159+
a_source_files ut_varchar2_list,
160+
a_test_files ut_varchar2_list,
161+
a_include_objects ut_varchar2_list := null,
162+
a_exclude_objects ut_varchar2_list := null,
163+
a_client_character_set varchar2 := null
108164
);
109165

110166
procedure run(
111-
a_path varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false,
112-
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
113-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
167+
a_path varchar2,
168+
a_reporter ut_reporter_base := null,
169+
a_color_console boolean := false,
170+
a_coverage_schemes ut_varchar2_list := null,
171+
a_source_file_mappings ut_file_mappings := null,
172+
a_test_file_mappings ut_file_mappings := null,
173+
a_include_objects ut_varchar2_list := null,
174+
a_exclude_objects ut_varchar2_list := null,
175+
a_client_character_set varchar2 := null
114176
);
115177

116178
procedure run(
117-
a_path varchar2, a_reporter ut_reporter_base := null, a_color_console boolean := false,
118-
a_coverage_schemes ut_varchar2_list := null, a_source_files ut_varchar2_list, a_test_files ut_varchar2_list,
119-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null
179+
a_path varchar2,
180+
a_reporter ut_reporter_base := null,
181+
a_color_console boolean := false,
182+
a_coverage_schemes ut_varchar2_list := null,
183+
a_source_files ut_varchar2_list,
184+
a_test_files ut_varchar2_list,
185+
a_include_objects ut_varchar2_list := null,
186+
a_exclude_objects ut_varchar2_list := null,
187+
a_client_character_set varchar2 := null
120188
);
121189

122190
/**

source/api/ut_runner.pkb

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,16 @@ create or replace package body ut_runner is
7474
end;
7575

7676
procedure run(
77-
a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false,
78-
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
79-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null, a_fail_on_errors boolean default false
77+
a_paths ut_varchar2_list,
78+
a_reporters ut_reporters,
79+
a_color_console boolean := false,
80+
a_coverage_schemes ut_varchar2_list := null,
81+
a_source_file_mappings ut_file_mappings := null,
82+
a_test_file_mappings ut_file_mappings := null,
83+
a_include_objects ut_varchar2_list := null,
84+
a_exclude_objects ut_varchar2_list := null,
85+
a_fail_on_errors boolean := false,
86+
a_client_character_set varchar2 := null
8087
) is
8188
l_run ut_run;
8289
l_coverage_schema_names ut_varchar2_rows;
@@ -118,7 +125,8 @@ create or replace package body ut_runner is
118125
l_exclude_object_names,
119126
l_include_object_names,
120127
set(a_source_file_mappings),
121-
set(a_test_file_mappings)
128+
set(a_test_file_mappings),
129+
a_client_character_set
122130
);
123131
l_run.do_execute();
124132

source/api/ut_runner.pks

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,16 @@ create or replace package ut_runner authid current_user is
5656
* schema.suite1.test2 - executes test2 procedure of suite1 suite with execution of all parent setup/teardown procedures
5757
*/
5858
procedure run(
59-
a_paths ut_varchar2_list, a_reporters ut_reporters, a_color_console boolean := false,
60-
a_coverage_schemes ut_varchar2_list := null, a_source_file_mappings ut_file_mappings := null, a_test_file_mappings ut_file_mappings := null,
61-
a_include_objects ut_varchar2_list := null, a_exclude_objects ut_varchar2_list := null,
62-
a_fail_on_errors boolean default false
59+
a_paths ut_varchar2_list,
60+
a_reporters ut_reporters,
61+
a_color_console boolean := false,
62+
a_coverage_schemes ut_varchar2_list := null,
63+
a_source_file_mappings ut_file_mappings := null,
64+
a_test_file_mappings ut_file_mappings := null,
65+
a_include_objects ut_varchar2_list := null,
66+
a_exclude_objects ut_varchar2_list := null,
67+
a_fail_on_errors boolean := false,
68+
a_client_character_set varchar2 := null
6369
);
6470

6571
/**

source/core/types/ut_run.tpb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ create or replace type body ut_run as
2424
a_exclude_objects ut_object_names := null,
2525
a_include_objects ut_object_names := null,
2626
a_project_file_mappings ut_file_mappings := null,
27-
a_test_file_mappings ut_file_mappings := null
27+
a_test_file_mappings ut_file_mappings := null,
28+
a_client_character_set varchar2 := null
2829
) return self as result is
2930
l_coverage_schema_names ut_varchar2_rows;
3031
l_coverage_options ut_coverage_options;
@@ -33,6 +34,7 @@ create or replace type body ut_run as
3334
self.run_paths := a_run_paths;
3435
self.self_type := $$plsql_unit;
3536
self.items := a_items;
37+
self.client_character_set := lower(a_client_character_set);
3638
self.results_count := ut_results_counter();
3739
self.test_file_mappings := coalesce(a_test_file_mappings, ut_file_mappings());
3840
self.coverage_options := ut_coverage_options(

source/core/types/ut_run.tps

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ create or replace type ut_run under ut_suite_item (
2323
run_paths ut_varchar2_list,
2424
coverage_options ut_coverage_options,
2525
test_file_mappings ut_file_mappings,
26+
client_character_set varchar2(100),
2627
constructor function ut_run(
2728
self in out nocopy ut_run,
2829
a_items ut_suite_items,
@@ -31,7 +32,8 @@ create or replace type ut_run under ut_suite_item (
3132
a_exclude_objects ut_object_names := null,
3233
a_include_objects ut_object_names := null,
3334
a_project_file_mappings ut_file_mappings := null,
34-
a_test_file_mappings ut_file_mappings := null
35+
a_test_file_mappings ut_file_mappings := null,
36+
a_client_character_set varchar2 := null
3537
) return self as result,
3638
overriding member procedure mark_as_skipped(self in out nocopy ut_run),
3739
overriding member function do_execute(self in out nocopy ut_run) return boolean,

source/core/ut_utils.pkb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,17 @@ procedure append_to_clob(a_src_clob in out nocopy clob, a_clob_table t_clob_tab,
507507
return to_char(a_value, gc_number_format, 'NLS_NUMERIC_CHARACTERS=''. ''');
508508
end;
509509

510+
function get_xml_header(a_encoding varchar2) return varchar2 is
511+
begin
512+
return
513+
'<?xml version="1.0"'
514+
||case
515+
when a_encoding is not null
516+
then ' encoding="'||lower(a_encoding)||'"'
517+
end
518+
||'?>';
519+
end;
520+
510521
function trim_list_elements(a_list IN ut_varchar2_list, a_regexp_to_trim in varchar2 default '[:space:]') return ut_varchar2_list is
511522
l_trimmed_list ut_varchar2_list;
512523
l_index integer;

source/core/ut_utils.pks

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,13 @@ create or replace package ut_utils authid definer is
320320
*/
321321
function to_xml_number_format(a_value number) return varchar2;
322322

323+
324+
/**
325+
* Returns xml header. If a_encoding is not null, header will include encoding attribute with provided value
326+
*/
327+
function get_xml_header(a_encoding varchar2) return varchar2;
328+
329+
323330
/*It takes a collection of type ut_varchar2_list and it trims the characters passed as arguments for every element*/
324331
function trim_list_elements(a_list IN ut_varchar2_list, a_regexp_to_trim in varchar2 default '[:space:]') return ut_varchar2_list;
325332

source/reporters/ut_coverage_cobertura_reporter.tpb

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -66,25 +66,27 @@ create or replace type body ut_coverage_cobertura_reporter is
6666
end;
6767

6868
function get_coverage_xml(
69-
a_coverage_data ut_coverage.t_coverage
69+
a_coverage_data ut_coverage.t_coverage,
70+
a_run ut_run
7071
) return clob is
71-
l_file_part varchar2(32767);
72-
l_result clob;
73-
l_unit ut_coverage.t_full_name;
74-
l_obj_name ut_coverage.t_object_name;
75-
c_coverage_def constant varchar2(200) := '<?xml version="1.0"?>'||CHR(10)||'<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">'||chr(10);
72+
l_file_part varchar2(32767);
73+
l_result clob;
74+
l_unit ut_coverage.t_full_name;
75+
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);
7677
c_file_footer constant varchar2(30) := '</file>'||chr(10);
7778
c_coverage_footer constant varchar2(30) := '</coverage>';
7879
c_sources_footer constant varchar2(30) := '</sources>'||chr(10);
79-
c_packages_footer constant varchar2(30) := '</packages>'||chr(10);
80+
c_packages_footer constant varchar2(30) := '</packages>'||chr(10);
8081
c_package_footer constant varchar2(30) := '</package>'||chr(10);
81-
c_class_footer constant varchar2(30) := '</class>'||chr(10);
82-
c_lines_footer constant varchar2(30) := '</lines>'||chr(10);
83-
l_epoch varchar2(50) := (sysdate - to_date('01-01-1970 00:00:00', 'dd-mm-yyyy hh24:mi:ss')) * 24 * 60 * 60;
82+
c_class_footer constant varchar2(30) := '</class>'||chr(10);
83+
c_lines_footer constant varchar2(30) := '</lines>'||chr(10);
84+
l_epoch varchar2(50) := (sysdate - to_date('01-01-1970 00:00:00', 'dd-mm-yyyy hh24:mi:ss')) * 24 * 60 * 60;
8485
begin
8586

8687
dbms_lob.createtemporary(l_result,true);
8788

89+
ut_utils.append_to_clob(l_result, ut_utils.get_xml_header(a_run.client_character_set)||chr(10));
8890
ut_utils.append_to_clob(l_result, c_coverage_def);
8991

9092
--write header
@@ -138,7 +140,7 @@ create or replace type body ut_coverage_cobertura_reporter is
138140

139141
l_coverage_data := ut_coverage.get_coverage_data(a_run.coverage_options);
140142

141-
self.print_clob( get_coverage_xml( l_coverage_data ) );
143+
self.print_clob( get_coverage_xml( l_coverage_data, a_run ) );
142144

143145
(self as ut_reporter_base).after_calling_run(a_run);
144146
end;

source/reporters/ut_coverage_sonar_reporter.tpb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ create or replace type body ut_coverage_sonar_reporter is
5959
return l_result;
6060
end;
6161
function get_coverage_xml(
62-
a_coverage_data ut_coverage.t_coverage
62+
a_coverage_data ut_coverage.t_coverage,
63+
a_run ut_run
6364
) return clob is
6465
l_file_part varchar2(32767);
6566
l_result clob;
@@ -70,6 +71,7 @@ create or replace type body ut_coverage_sonar_reporter is
7071
begin
7172
dbms_lob.createtemporary(l_result,true);
7273

74+
ut_utils.append_to_clob(l_result, ut_utils.get_xml_header(a_run.client_character_set)||chr(10));
7375
ut_utils.append_to_clob(l_result, c_coverage_header);
7476
l_unit := a_coverage_data.objects.first;
7577
while l_unit is not null loop
@@ -90,7 +92,7 @@ create or replace type body ut_coverage_sonar_reporter is
9092

9193
l_coverage_data := ut_coverage.get_coverage_data(a_run.coverage_options);
9294

93-
self.print_clob( get_coverage_xml( l_coverage_data ) );
95+
self.print_clob( get_coverage_xml( l_coverage_data, a_run ) );
9496
end;
9597

9698
overriding member function get_description return varchar2 as

0 commit comments

Comments
 (0)