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

Skip to content

Commit a84246b

Browse files
committed
Adding extra tests for code coverage
1 parent 5201f2a commit a84246b

5 files changed

Lines changed: 149 additions & 8 deletions

File tree

source/core/coverage/ut_coverage.pkb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ create or replace package body ut_coverage is
102102
on s.name = f.object_name
103103
and s.type = f.object_type
104104
and s.owner = f.object_owner';
105-
elsif a_coverage_options.include_schema_expr is not null or a_coverage_options.include_object_expr is not null then
105+
elsif coalesce(a_coverage_options.include_schema_expr,a_coverage_options.include_object_expr) is not null then
106106
l_full_name := q'[lower(s.type||' '||s.owner||'.'||s.name)]';
107107
if a_coverage_options.include_schema_expr is not null then
108108
l_filters := q'[and regexp_like(s.owner,:a_include_schema_expr,'i')]';
@@ -183,7 +183,7 @@ create or replace package body ut_coverage is
183183
open l_cursor for l_sql using a_coverage_options.file_mappings,a_coverage_options.exclude_schema_expr,
184184
a_coverage_options.exclude_object_expr,l_excluded_objects,
185185
l_skip_objects;
186-
elsif a_coverage_options.include_schema_expr is not null or a_coverage_options.include_object_expr is not null then
186+
elsif coalesce(a_coverage_options.include_schema_expr,a_coverage_options.include_object_expr) is not null then
187187
open l_cursor for l_sql using a_coverage_options.include_schema_expr,a_coverage_options.include_object_expr,
188188
a_coverage_options.exclude_schema_expr,a_coverage_options.exclude_object_expr,
189189
l_excluded_objects,l_skip_objects;

test/ut3_tester_helper/coverage_helper.pkb

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,46 @@ create or replace package body coverage_helper is
435435
commit;
436436
end;
437437

438+
function gather_coverage_on_coverage( a_cov_options varchar2) return clob is
439+
pragma autonomous_transaction;
440+
l_plsql_block varchar2(32767);
441+
l_result_clob clob;
442+
l_coverage_id raw(32) := sys_guid();
443+
begin
444+
l_plsql_block := q'[
445+
declare
446+
l_coverage_options ut3_develop.ut_coverage_options;
447+
l_coverage_run_id raw(32) := ']'||rawtohex(l_coverage_id)||q'[';
448+
l_result ut3_develop.ut_coverage.t_coverage;
449+
begin
450+
ut3_develop.ut_runner.coverage_start(l_coverage_run_id);
451+
ut3_develop.ut_coverage.set_develop_mode(a_develop_mode => true);
452+
l_coverage_options := {a_cov_options};
453+
l_result := ut3_develop.ut_coverage.get_coverage_data(l_coverage_options);
454+
ut3_develop.ut_coverage.set_develop_mode(a_develop_mode => false);
455+
ut3_develop.ut_runner.coverage_stop();
456+
insert into test_results select owner||'.'||name from ut3_develop.ut_coverage_sources_tmp;
457+
commit;
458+
end;]';
459+
l_plsql_block := replace(l_plsql_block,'{a_cov_options}',a_cov_options);
460+
run_job_and_wait_for_finish( l_plsql_block );
461+
execute immediate q'[
462+
declare
463+
l_results ut3_develop.ut_varchar2_list;
464+
begin
465+
select *
466+
bulk collect into l_results
467+
from test_results;
468+
delete from test_results;
469+
commit;
470+
:clob_results := ut3_tester_helper.main_helper.table_to_clob(l_results);
471+
end;
472+
]'
473+
using out l_result_clob;
474+
copy_coverage_data_to_ut3(l_coverage_id);
475+
return l_result_clob;
476+
end;
477+
438478
function run_tests_as_job( a_run_command varchar2 ) return clob is
439479
l_plsql_block varchar2(32767);
440480
l_result_clob clob;

test/ut3_tester_helper/coverage_helper.pks

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ create or replace package coverage_helper is
2323
procedure run_standalone_coverage(a_coverage_run_id raw, a_input integer);
2424
procedure run_coverage_job(a_coverage_run_id raw, a_input integer);
2525

26+
function gather_coverage_on_coverage( a_cov_options varchar2) return clob;
2627
function run_tests_as_job( a_run_command varchar2 ) return clob;
2728
function run_code_as_job( a_plsql_block varchar2 ) return clob;
2829
procedure create_test_results_table;

test/ut3_user/reporters/test_coverage/test_extended_coverage.pkb

Lines changed: 82 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ create or replace package body test_extended_coverage is
141141
--Arrange
142142
l_expected := '%<file path="package body ut3_develop.regex123_dummy_cov">' ||
143143
'%<lineToCover lineNumber="4" covered="true"/>%';
144-
l_not_expected := '%<file path="package body ut3_tester_helper.regex_dummy_cov">' ||
144+
l_not_expected := '%<file path="package body ut3_develop.regex_dummy_cov">' ||
145145
'%<lineToCover lineNumber="4" covered="true"/>%';
146146
--Act
147147
l_actual :=
@@ -195,7 +195,7 @@ create or replace package body test_extended_coverage is
195195
--Arrange
196196
l_expected := '%<file path="package body ut3_develop.regex_dummy_cov">' ||
197197
'%<lineToCover lineNumber="4" covered="true"/>%';
198-
l_not_expected := '%<file path="package body ut3_tester_helper.regex123_dummy_cov">' ||
198+
l_not_expected := '%<file path="package body ut3_develop.regex123_dummy_cov">' ||
199199
'%<lineToCover lineNumber="4" covered="true"/>%';
200200
--Act
201201
l_actual :=
@@ -214,5 +214,85 @@ create or replace package body test_extended_coverage is
214214
ut.expect(l_actual).not_to_be_like(l_not_expected);
215215
end;
216216

217+
procedure cove_rgx_inc_schema_norun is
218+
l_expected clob;
219+
l_not_expected clob;
220+
l_actual clob;
221+
begin
222+
--Arrange
223+
l_expected := '%UT3_DEVELOP.REGEX_DUMMY_COV%';
224+
l_not_expected := '%UT3_TESTER_HELPER.REGEX123_DUMMY_COV%';
225+
--Act
226+
l_actual := ut3_tester_helper.coverage_helper.gather_coverage_on_coverage(
227+
q'[ut3_develop.ut_coverage_options(
228+
coverage_run_id => l_coverage_run_id,
229+
include_schema_expr => '^ut3_develop'
230+
)]');
231+
--Assert
232+
ut.expect(l_actual).to_be_like(l_expected);
233+
ut.expect(l_actual).not_to_be_like(l_not_expected);
234+
end;
235+
236+
procedure cove_rgx_inc_object_norun is
237+
l_expected clob;
238+
l_not_expected clob;
239+
l_actual clob;
240+
begin
241+
--Arrange
242+
l_expected := '%UT3_DEVELOP.REGEX123_DUMMY_COV%';
243+
l_not_expected := '%UT3_DEVELOP.REGEX_DUMMY_COV%';
244+
--Act
245+
l_actual := ut3_tester_helper.coverage_helper.gather_coverage_on_coverage(
246+
q'[ut3_develop.ut_coverage_options(
247+
coverage_run_id => l_coverage_run_id,
248+
include_object_expr => 'regex123'
249+
)]');
250+
--Assert
251+
ut.expect(l_actual).to_be_like(l_expected);
252+
ut.expect(l_actual).not_to_be_like(l_not_expected);
253+
end;
254+
255+
procedure cove_rgx_exc_schema_norun is
256+
l_expected clob;
257+
l_not_expected clob;
258+
l_actual clob;
259+
begin
260+
--Arrange
261+
l_expected := '%UT3_DEVELOP.REGEX_DUMMY_COV%';
262+
l_not_expected := '%UT3_TESTER_HELPER.REGEX_DUMMY_COV%';
263+
--Act
264+
l_actual := ut3_tester_helper.coverage_helper.gather_coverage_on_coverage(
265+
q'[ut3_develop.ut_coverage_options(
266+
coverage_run_id => l_coverage_run_id,
267+
schema_names => ut3_develop.ut_varchar2_rows( 'UT3_DEVELOP','UT3_TESTER_HELPER' ),
268+
exclude_schema_expr => '^ut3_tester',
269+
exclude_objects => ut3_develop.ut_varchar2_rows( 'ut3_develop.regex_dummy_cov' )
270+
)]');
271+
--Assert
272+
ut.expect(l_actual).to_be_like(l_expected);
273+
ut.expect(l_actual).not_to_be_like(l_not_expected);
274+
end;
275+
276+
procedure cove_rgx_exc_object_norun is
277+
l_expected clob;
278+
l_not_expected clob;
279+
l_actual clob;
280+
begin
281+
--Arrange
282+
l_expected := '%UT3_DEVELOP.REGEX_DUMMY_COV%';
283+
l_not_expected := '%UT3_DEVELOP.REGEX123_DUMMY_COV%';
284+
--Act
285+
l_actual := ut3_tester_helper.coverage_helper.gather_coverage_on_coverage(
286+
q'[ut3_develop.ut_coverage_options(
287+
coverage_run_id => l_coverage_run_id,
288+
schema_names => ut3_develop.ut_varchar2_rows( 'UT3_DEVELOP' ),
289+
exclude_object_expr => 'regex123',
290+
exclude_objects => ut3_develop.ut_varchar2_rows( 'ut3_develop.regex_dummy_cov' )
291+
)]');
292+
--Assert
293+
ut.expect(l_actual).to_be_like(l_expected);
294+
ut.expect(l_actual).not_to_be_like(l_not_expected);
295+
end;
296+
217297
end;
218298
/

test/ut3_user/reporters/test_coverage/test_extended_coverage.pks

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,43 @@ create or replace package test_extended_coverage is
2020

2121
--%beforetest(ut3_tester_helper.coverage_helper.create_regex_dummy_cov)
2222
--%aftertest(ut3_tester_helper.coverage_helper.drop_regex_dummy_cov)
23-
--%test(Collect coverage for objects with schema regex include)
23+
--%test(Collect coverage for objects with schema regex include with ut_run)
2424
procedure coverage_regex_include_schema;
2525

2626
--%beforetest(ut3_tester_helper.coverage_helper.create_regex_dummy_cov)
2727
--%aftertest(ut3_tester_helper.coverage_helper.drop_regex_dummy_cov)
28-
--%test(Collect coverage for objects with object regex include)
28+
--%test(Collect coverage for objects with object regex include with ut_run)
2929
procedure coverage_regex_include_object;
3030

3131
--%beforetest(ut3_tester_helper.coverage_helper.create_regex_dummy_cov)
3232
--%aftertest(ut3_tester_helper.coverage_helper.drop_regex_dummy_cov)
33-
--%test(Collect coverage for objects with schema regex exclude)
33+
--%test(Collect coverage for objects with schema regex exclude with ut_run)
3434
procedure coverage_regex_exclude_schema;
3535

3636
--%beforetest(ut3_tester_helper.coverage_helper.create_regex_dummy_cov)
3737
--%aftertest(ut3_tester_helper.coverage_helper.drop_regex_dummy_cov)
38-
--%test(Collect coverage for objects with object regex exclude)
38+
--%test(Collect coverage for objects with object regex exclude with ut_run)
3939
procedure coverage_regex_exclude_object;
4040

41+
--%beforetest(ut3_tester_helper.coverage_helper.create_regex_dummy_cov)
42+
--%aftertest(ut3_tester_helper.coverage_helper.drop_regex_dummy_cov)
43+
--%test(Collect coverage for objects with schema regex include without ut_run)
44+
procedure cove_rgx_inc_schema_norun;
45+
46+
--%beforetest(ut3_tester_helper.coverage_helper.create_regex_dummy_cov)
47+
--%aftertest(ut3_tester_helper.coverage_helper.drop_regex_dummy_cov)
48+
--%test(Collect coverage for objects with object regex include without ut_run)
49+
procedure cove_rgx_inc_object_norun;
50+
51+
--%beforetest(ut3_tester_helper.coverage_helper.create_regex_dummy_cov)
52+
--%aftertest(ut3_tester_helper.coverage_helper.drop_regex_dummy_cov)
53+
--%test(Collect coverage for objects with schema regex exclude without ut_run)
54+
procedure cove_rgx_exc_schema_norun;
55+
56+
--%beforetest(ut3_tester_helper.coverage_helper.create_regex_dummy_cov)
57+
--%aftertest(ut3_tester_helper.coverage_helper.drop_regex_dummy_cov)
58+
--%test(Collect coverage for objects with object regex exclude without ut_run)
59+
procedure cove_rgx_exc_object_norun;
60+
4161
end;
4262
/

0 commit comments

Comments
 (0)