Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Feature - include/exclude objects and schemas by regex #1186

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Mar 2, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Adding extra tests for code coverage
  • Loading branch information
lwasylow committed Feb 27, 2022
commit a84246be72ffa0196d4ebb408b1afda0966158c9
4 changes: 2 additions & 2 deletions 4 source/core/coverage/ut_coverage.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ create or replace package body ut_coverage is
on s.name = f.object_name
and s.type = f.object_type
and s.owner = f.object_owner';
elsif a_coverage_options.include_schema_expr is not null or a_coverage_options.include_object_expr is not null then
elsif coalesce(a_coverage_options.include_schema_expr,a_coverage_options.include_object_expr) is not null then
l_full_name := q'[lower(s.type||' '||s.owner||'.'||s.name)]';
if a_coverage_options.include_schema_expr is not null then
l_filters := q'[and regexp_like(s.owner,:a_include_schema_expr,'i')]';
Expand Down Expand Up @@ -183,7 +183,7 @@ create or replace package body ut_coverage is
open l_cursor for l_sql using a_coverage_options.file_mappings,a_coverage_options.exclude_schema_expr,
a_coverage_options.exclude_object_expr,l_excluded_objects,
l_skip_objects;
elsif a_coverage_options.include_schema_expr is not null or a_coverage_options.include_object_expr is not null then
elsif coalesce(a_coverage_options.include_schema_expr,a_coverage_options.include_object_expr) is not null then
open l_cursor for l_sql using a_coverage_options.include_schema_expr,a_coverage_options.include_object_expr,
a_coverage_options.exclude_schema_expr,a_coverage_options.exclude_object_expr,
l_excluded_objects,l_skip_objects;
Expand Down
40 changes: 40 additions & 0 deletions 40 test/ut3_tester_helper/coverage_helper.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,46 @@ create or replace package body coverage_helper is
commit;
end;

function gather_coverage_on_coverage( a_cov_options varchar2) return clob is
pragma autonomous_transaction;
l_plsql_block varchar2(32767);
l_result_clob clob;
l_coverage_id raw(32) := sys_guid();
begin
l_plsql_block := q'[
declare
l_coverage_options ut3_develop.ut_coverage_options;
l_coverage_run_id raw(32) := ']'||rawtohex(l_coverage_id)||q'[';
l_result ut3_develop.ut_coverage.t_coverage;
begin
ut3_develop.ut_runner.coverage_start(l_coverage_run_id);
ut3_develop.ut_coverage.set_develop_mode(a_develop_mode => true);
l_coverage_options := {a_cov_options};
l_result := ut3_develop.ut_coverage.get_coverage_data(l_coverage_options);
ut3_develop.ut_coverage.set_develop_mode(a_develop_mode => false);
ut3_develop.ut_runner.coverage_stop();
insert into test_results select owner||'.'||name from ut3_develop.ut_coverage_sources_tmp;
commit;
end;]';
l_plsql_block := replace(l_plsql_block,'{a_cov_options}',a_cov_options);
run_job_and_wait_for_finish( l_plsql_block );
execute immediate q'[
declare
l_results ut3_develop.ut_varchar2_list;
begin
select *
bulk collect into l_results
from test_results;
delete from test_results;
commit;
:clob_results := ut3_tester_helper.main_helper.table_to_clob(l_results);
end;
]'
using out l_result_clob;
copy_coverage_data_to_ut3(l_coverage_id);
return l_result_clob;
end;

function run_tests_as_job( a_run_command varchar2 ) return clob is
l_plsql_block varchar2(32767);
l_result_clob clob;
Expand Down
1 change: 1 addition & 0 deletions 1 test/ut3_tester_helper/coverage_helper.pks
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ create or replace package coverage_helper is
procedure run_standalone_coverage(a_coverage_run_id raw, a_input integer);
procedure run_coverage_job(a_coverage_run_id raw, a_input integer);

function gather_coverage_on_coverage( a_cov_options varchar2) return clob;
function run_tests_as_job( a_run_command varchar2 ) return clob;
function run_code_as_job( a_plsql_block varchar2 ) return clob;
procedure create_test_results_table;
Expand Down
84 changes: 82 additions & 2 deletions 84 test/ut3_user/reporters/test_coverage/test_extended_coverage.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ create or replace package body test_extended_coverage is
--Arrange
l_expected := '%<file path="package body ut3_develop.regex123_dummy_cov">' ||
'%<lineToCover lineNumber="4" covered="true"/>%';
l_not_expected := '%<file path="package body ut3_tester_helper.regex_dummy_cov">' ||
l_not_expected := '%<file path="package body ut3_develop.regex_dummy_cov">' ||
'%<lineToCover lineNumber="4" covered="true"/>%';
--Act
l_actual :=
Expand Down Expand Up @@ -195,7 +195,7 @@ create or replace package body test_extended_coverage is
--Arrange
l_expected := '%<file path="package body ut3_develop.regex_dummy_cov">' ||
'%<lineToCover lineNumber="4" covered="true"/>%';
l_not_expected := '%<file path="package body ut3_tester_helper.regex123_dummy_cov">' ||
l_not_expected := '%<file path="package body ut3_develop.regex123_dummy_cov">' ||
'%<lineToCover lineNumber="4" covered="true"/>%';
--Act
l_actual :=
Expand All @@ -214,5 +214,85 @@ create or replace package body test_extended_coverage is
ut.expect(l_actual).not_to_be_like(l_not_expected);
end;

procedure cove_rgx_inc_schema_norun is
l_expected clob;
l_not_expected clob;
l_actual clob;
begin
--Arrange
l_expected := '%UT3_DEVELOP.REGEX_DUMMY_COV%';
l_not_expected := '%UT3_TESTER_HELPER.REGEX123_DUMMY_COV%';
--Act
l_actual := ut3_tester_helper.coverage_helper.gather_coverage_on_coverage(
q'[ut3_develop.ut_coverage_options(
coverage_run_id => l_coverage_run_id,
include_schema_expr => '^ut3_develop'
)]');
--Assert
ut.expect(l_actual).to_be_like(l_expected);
ut.expect(l_actual).not_to_be_like(l_not_expected);
end;

procedure cove_rgx_inc_object_norun is
l_expected clob;
l_not_expected clob;
l_actual clob;
begin
--Arrange
l_expected := '%UT3_DEVELOP.REGEX123_DUMMY_COV%';
l_not_expected := '%UT3_DEVELOP.REGEX_DUMMY_COV%';
--Act
l_actual := ut3_tester_helper.coverage_helper.gather_coverage_on_coverage(
q'[ut3_develop.ut_coverage_options(
coverage_run_id => l_coverage_run_id,
include_object_expr => 'regex123'
)]');
--Assert
ut.expect(l_actual).to_be_like(l_expected);
ut.expect(l_actual).not_to_be_like(l_not_expected);
end;

procedure cove_rgx_exc_schema_norun is
l_expected clob;
l_not_expected clob;
l_actual clob;
begin
--Arrange
l_expected := '%UT3_DEVELOP.REGEX_DUMMY_COV%';
l_not_expected := '%UT3_TESTER_HELPER.REGEX_DUMMY_COV%';
--Act
l_actual := ut3_tester_helper.coverage_helper.gather_coverage_on_coverage(
q'[ut3_develop.ut_coverage_options(
coverage_run_id => l_coverage_run_id,
schema_names => ut3_develop.ut_varchar2_rows( 'UT3_DEVELOP','UT3_TESTER_HELPER' ),
exclude_schema_expr => '^ut3_tester',
exclude_objects => ut3_develop.ut_varchar2_rows( 'ut3_develop.regex_dummy_cov' )
)]');
--Assert
ut.expect(l_actual).to_be_like(l_expected);
ut.expect(l_actual).not_to_be_like(l_not_expected);
end;

procedure cove_rgx_exc_object_norun is
l_expected clob;
l_not_expected clob;
l_actual clob;
begin
--Arrange
l_expected := '%UT3_DEVELOP.REGEX_DUMMY_COV%';
l_not_expected := '%UT3_DEVELOP.REGEX123_DUMMY_COV%';
--Act
l_actual := ut3_tester_helper.coverage_helper.gather_coverage_on_coverage(
q'[ut3_develop.ut_coverage_options(
coverage_run_id => l_coverage_run_id,
schema_names => ut3_develop.ut_varchar2_rows( 'UT3_DEVELOP' ),
exclude_object_expr => 'regex123',
exclude_objects => ut3_develop.ut_varchar2_rows( 'ut3_develop.regex_dummy_cov' )
)]');
--Assert
ut.expect(l_actual).to_be_like(l_expected);
ut.expect(l_actual).not_to_be_like(l_not_expected);
end;

end;
/
28 changes: 24 additions & 4 deletions 28 test/ut3_user/reporters/test_coverage/test_extended_coverage.pks
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,43 @@ create or replace package test_extended_coverage is

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

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

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

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

--%beforetest(ut3_tester_helper.coverage_helper.create_regex_dummy_cov)
--%aftertest(ut3_tester_helper.coverage_helper.drop_regex_dummy_cov)
--%test(Collect coverage for objects with schema regex include without ut_run)
procedure cove_rgx_inc_schema_norun;

--%beforetest(ut3_tester_helper.coverage_helper.create_regex_dummy_cov)
--%aftertest(ut3_tester_helper.coverage_helper.drop_regex_dummy_cov)
--%test(Collect coverage for objects with object regex include without ut_run)
procedure cove_rgx_inc_object_norun;

--%beforetest(ut3_tester_helper.coverage_helper.create_regex_dummy_cov)
--%aftertest(ut3_tester_helper.coverage_helper.drop_regex_dummy_cov)
--%test(Collect coverage for objects with schema regex exclude without ut_run)
procedure cove_rgx_exc_schema_norun;

--%beforetest(ut3_tester_helper.coverage_helper.create_regex_dummy_cov)
--%aftertest(ut3_tester_helper.coverage_helper.drop_regex_dummy_cov)
--%test(Collect coverage for objects with object regex exclude without ut_run)
procedure cove_rgx_exc_object_norun;

end;
/
Morty Proxy This is a proxified and sanitized view of the page, visit original site.