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/introduce testing with accurate grants #893

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 36 commits into from
Apr 3, 2019
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
133ecae
Adding new API user.
lwasylow Mar 22, 2019
9db8f4b
Separating tests.
lwasylow Mar 23, 2019
13f772a
Merge branch 'develop' of github.com:utPLSQL/utPLSQL into feature/int…
lwasylow Mar 24, 2019
c56943e
Update properties
lwasylow Mar 24, 2019
5afba10
Change user that executes tests as helper that is super user.
lwasylow Mar 24, 2019
7cd92e7
Adding next set of tests migrated.
lwasylow Mar 24, 2019
e2561bc
Adding next set of tests migrated.
lwasylow Mar 25, 2019
887e46a
Fixing test package
lwasylow Mar 25, 2019
28dbd1e
Added set of tests:
lwasylow Mar 25, 2019
d7eb125
Adding set of tests :
lwasylow Mar 25, 2019
99e1099
Adding schema prefix to failing tests from 12.1
lwasylow Mar 25, 2019
04cd36c
Fixing development scripts
lwasylow Mar 25, 2019
3e98723
Fixed bug for deployments with uninstall included.
jgebal Mar 25, 2019
ba83f8f
Merge branch 'feature/introduce_testing_with_accurate_grants' of gith…
lwasylow Mar 26, 2019
0bf1d9e
FIX : removal of non existing types from uninstall script
lwasylow Mar 26, 2019
e914d96
INSTALL:Is it too many monkeys ?:)
lwasylow Mar 26, 2019
174dcbc
Adding set of tests:
lwasylow Mar 26, 2019
0c05daf
Adding set of tests:
lwasylow Mar 26, 2019
80783c3
Adding set of tests:
lwasylow Mar 28, 2019
c4b08af
Adding set of tests:
lwasylow Mar 28, 2019
0618616
Adding set of tests:
lwasylow Mar 28, 2019
29295b7
Adding set of tests:
lwasylow Mar 29, 2019
30b0cfe
Adding set of tests:
lwasylow Mar 29, 2019
3cc34ea
Adding tests
lwasylow Mar 29, 2019
a6a848d
Adding tests:
lwasylow Mar 30, 2019
858372c
Adding set of tests:
lwasylow Mar 31, 2019
620fd61
Adding extra tests:
lwasylow Mar 31, 2019
e6b0673
Merge branch 'develop' of github.com:utPLSQL/utPLSQL into feature/int…
lwasylow Mar 31, 2019
c508e79
Adding tests:
lwasylow Apr 1, 2019
858a675
Fixing broken test.
lwasylow Apr 1, 2019
1642f47
Adding test:
lwasylow Apr 1, 2019
30d27fe
Adding global setup
lwasylow Apr 1, 2019
3b07c6a
Merge branch 'develop' of github.com:utPLSQL/utPLSQL into feature/int…
lwasylow Apr 2, 2019
a8dfa14
Merge branch 'develop' of github.com:utPLSQL/utPLSQL into feature/int…
lwasylow Apr 2, 2019
5d3b18c
Update cleanup script after branching from random order branch
lwasylow Apr 2, 2019
b56d27a
Fixed invalid suitepath in `core` package.
jgebal Apr 3, 2019
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 tests:
reporters/test_coverage
reporters/test_coverage/test_html_proftab_reporter
reporters/test_proftab_coverage
  • Loading branch information
lwasylow committed Apr 1, 2019
commit c508e7937d8c56c25ed3723d29b78fc3bfdf61d0
18 changes: 8 additions & 10 deletions 18 test/install_ut3_user_tests.sql
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,12 @@ set define off
@@ut3_user/reporters/test_coverage/test_coveralls_reporter.pks
@@ut3_user/reporters/test_coverage/test_cov_cobertura_reporter.pks
@@ut3_user/reporters/test_coverage/test_coverage_sonar_reporter.pks
set define on
@@install_below_12_2.sql 'ut3_user/reporters/test_proftab_coverage.pks'
@@install_below_12_2.sql 'ut3_user/reporters/test_coverage/test_html_proftab_reporter.pks'
set define off


--set define on
--@@install_below_12_2.sql 'ut3_user/reporters/test_proftag_coverage.pks'
--@@install_below_12_2.sql 'ut3_user/reporters/test_coverage/test_html_proftab_reporter.pks'
--set define off

@@ut3_user/expectations/unary/test_expect_not_to_be_null.pkb
@@ut3_user/expectations/unary/test_expect_to_be_null.pkb
@@ut3_user/expectations/unary/test_expect_to_be_empty.pkb
Expand Down Expand Up @@ -74,11 +73,10 @@ set define off
@@ut3_user/reporters/test_coverage/test_coveralls_reporter.pkb
@@ut3_user/reporters/test_coverage/test_cov_cobertura_reporter.pkb
@@ut3_user/reporters/test_coverage/test_coverage_sonar_reporter.pkb

--set define on
--@@install_below_12_2.sql 'ut3_user/reporters/test_coverage.pkb'
--@@install_below_12_2.sql 'ut3_user/reporters/test_coverage/test_html_proftab_reporter.pkb'
--set define off
set define on
@@install_below_12_2.sql 'ut3_user/reporters/test_proftab_coverage.pkb'
@@install_below_12_2.sql 'ut3_user/reporters/test_coverage/test_html_proftab_reporter.pkb'
set define off


set linesize 200
Expand Down
1 change: 1 addition & 0 deletions 1 test/ut3_tester/core.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ create or replace package body core is
ut3.ut_coverage.set_develop_mode(true);
--improve performance of test execution by disabling all compiler optimizations
ut3_tester_helper.main_helper.execute_autonomous('ALTER SESSION SET PLSQL_OPTIMIZE_LEVEL=0');
dbms_output.enable(null);
end;

end;
Expand Down
60 changes: 60 additions & 0 deletions 60 test/ut3_tester_helper/coverage_helper.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,66 @@ create or replace package body coverage_helper is
begin execute immediate q'[drop package ut3.dummy_coverage]'; exception when others then null; end;
end;


procedure create_dummy_coverage_test_1 is
pragma autonomous_transaction;
begin
execute immediate q'[create or replace package UT3.DUMMY_COVERAGE_1 is
procedure do_stuff;
procedure grant_myself;
end;]';
execute immediate q'[create or replace package body UT3.DUMMY_COVERAGE_1 is
procedure do_stuff is
begin
if 1 = 2 then
dbms_output.put_line('should not get here');
else
dbms_output.put_line('should get here');
end if;
end;

procedure grant_myself is
begin
execute immediate 'grant debug,execute on UT3.DUMMY_COVERAGE_1 to ut3$user#';
end;

end;]';
execute immediate q'[create or replace package UT3.TEST_DUMMY_COVERAGE_1 is
--%suite(dummy coverage test 1)
--%suitepath(coverage_testing)

--%test
procedure test_do_stuff;

procedure grant_myself;
end;]';
execute immediate q'[create or replace package body UT3.TEST_DUMMY_COVERAGE_1 is
procedure test_do_stuff is
begin
dummy_coverage_1.do_stuff;
end;

procedure grant_myself is
begin
execute immediate 'grant debug,execute on UT3.TEST_DUMMY_COVERAGE_1 to ut3$user#';
end;

end;]';
end;

procedure drop_dummy_coverage_test_1 is
pragma autonomous_transaction;
begin
execute immediate q'[drop package UT3.DUMMY_COVERAGE_1]';
execute immediate q'[drop package UT3.TEST_DUMMY_COVERAGE_1]';
end;

procedure grant_exec_on_cov_1 is
pragma autonomous_transaction;
begin
execute immediate 'begin UT3.DUMMY_COVERAGE_1.grant_myself(); end;';
execute immediate 'begin UT3.TEST_DUMMY_COVERAGE_1.grant_myself(); end;';
end;

--12.2 Setup
procedure create_dummy_12_2_cov_pck is
Expand Down
5 changes: 4 additions & 1 deletion 5 test/ut3_tester_helper/coverage_helper.pks
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,10 @@ create or replace package coverage_helper is
procedure grant_exec_on_cov;
procedure mock_profiler_coverage_data(a_run_id integer,a_user in varchar2);
procedure drop_dummy_coverage_pkg;

procedure create_dummy_coverage_test_1;
procedure drop_dummy_coverage_test_1;
procedure grant_exec_on_cov_1;

--Block coverage
procedure create_dummy_12_2_cov_pck;
procedure create_dummy_12_2_cov_test;
Expand Down
19 changes: 2 additions & 17 deletions 19 test/ut3_user/reporters/test_coverage.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,10 @@ create or replace package body test_coverage is
return ut3_tester_helper.coverage_helper.get_mock_run_id();
end;

procedure create_dummy_coverage_package is
procedure create_dummy_coverage_pkg is
begin
ut3_tester_helper.coverage_helper.create_dummy_coverage_package();
end;

procedure create_dummy_coverage_test is
begin
ut3_tester_helper.coverage_helper.create_dummy_coverage_test();
end;

procedure mock_coverage_data(a_run_id integer) is
begin
ut3_tester_helper.coverage_helper.mock_coverage_data(a_run_id,user);
end;

procedure create_dummy_coverage_pkg is
begin
create_dummy_coverage_package();
create_dummy_coverage_test();
ut3_tester_helper.coverage_helper.grant_exec_on_cov();
end;

Expand All @@ -33,7 +18,7 @@ create or replace package body test_coverage is
begin
g_run_id := get_mock_run_id();
ut3.ut_coverage.mock_coverage_id(g_run_id, ut3.ut_coverage.gc_proftab_coverage);
mock_coverage_data(g_run_id);
ut3_tester_helper.coverage_helper.mock_coverage_data(g_run_id,user);
commit;
end;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
create or replace package body test_html_proftab_reporter is

procedure report_on_file is
l_results ut3.ut_varchar2_list;
l_expected varchar2(32767);
l_actual clob;
l_charset varchar2(100) := 'ISO-8859-1';
begin
--Arrange
l_expected := '%<meta %charset='||l_charset||'" />%<h3>UT3.DUMMY_COVERAGE</h3>%<b>3</b> relevant lines. <span class="green"><b>2</b> lines covered</span> and <span class="red"><b>1</b> lines missed%';
--Act
select *
bulk collect into l_results
from table(
ut3.ut.run(
a_path => 'ut3.test_dummy_coverage',
a_reporter=> ut3.ut_coverage_html_reporter(),
a_source_files => ut3.ut_varchar2_list( 'test/ut3.dummy_coverage.pkb' ),
a_test_files => ut3.ut_varchar2_list( ),
a_client_character_set => l_charset
)
);
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
--Assert
ut.expect(l_actual).to_be_like(l_expected);
end;

end test_html_proftab_reporter;
/
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
create or replace package test_html_proftab_reporter is

--%suite(ut_html_proftab_reporter)
--%suitepath(utplsql.test_user.reporters.test_coverage.test_proftab_coverage)

--%test(reports on a project file mapped to database object in profiler coverage)
procedure report_on_file;

end test_html_proftab_reporter;
/
143 changes: 143 additions & 0 deletions 143 test/ut3_user/reporters/test_proftab_coverage.pkb
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
create or replace package body test_proftab_coverage is

procedure create_dummy_coverage_test_1 is
begin
ut3_tester_helper.coverage_helper.create_dummy_coverage_test_1();
ut3_tester_helper.coverage_helper.grant_exec_on_cov_1();
end;

procedure drop_dummy_coverage_test_1 is
begin
ut3_tester_helper.coverage_helper.drop_dummy_coverage_test_1();
end;

procedure coverage_for_object is
l_expected clob;
l_actual clob;
l_results ut3.ut_varchar2_list;
begin
--Arrange
l_expected := '%<file path="ut3.dummy_coverage">%';
--Act
select *
bulk collect into l_results
from table(
ut3.ut.run(
a_path => 'ut3.test_dummy_coverage',
a_reporter=> ut3.ut_coverage_sonar_reporter( ),
a_include_objects => ut3.ut_varchar2_list( 'ut3.dummy_coverage' )
)
);
--Assert
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
ut.expect(l_actual).to_be_like(l_expected);
end;

procedure coverage_for_object_no_owner is
l_expected clob;
l_actual clob;
l_results ut3.ut_varchar2_list;
begin
--Arrange
l_expected := '%<file path="ut3.dummy_coverage">%';
--Act
select *
bulk collect into l_results
from table(
ut3.ut.run(
a_path => 'ut3.test_dummy_coverage',
a_reporter=> ut3.ut_coverage_sonar_reporter( ),
a_include_objects => ut3.ut_varchar2_list( 'dummy_coverage' )
)
);
--Assert
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
ut.expect(l_actual).to_be_like(l_expected);
end;

procedure coverage_for_schema is
l_expected clob;
l_actual clob;
l_results ut3.ut_varchar2_list;
begin
--Arrange
l_expected := '<file path="ut3.%">';
l_expected := '%'||l_expected||'%'||l_expected||'%';
--Act
select *
bulk collect into l_results
from table(
ut3.ut.run(
a_path => 'ut3.test_dummy_coverage',
a_reporter=> ut3.ut_coverage_sonar_reporter( ),
a_coverage_schemes => ut3.ut_varchar2_list( 'ut3' )
)
);
--Assert
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
ut.expect(l_actual).to_be_like(l_expected);
end;

procedure coverage_for_file is
l_expected clob;
l_actual clob;
l_results ut3.ut_varchar2_list;
l_file_path varchar2(100);
begin
--Arrange
l_file_path := lower('test/ut3.dummy_coverage.pkb');
l_expected := '%<file path="'||l_file_path||'">%';
--Act
select *
bulk collect into l_results
from table(
ut3.ut.run(
a_path => 'ut3.test_dummy_coverage',
a_reporter=> ut3.ut_coverage_sonar_reporter( ),
a_source_files => ut3.ut_varchar2_list( l_file_path ),
a_test_files => ut3.ut_varchar2_list( )
)
);
--Assert
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
ut.expect(l_actual).to_be_like(l_expected);
end;

procedure coverage_tmp_data_refresh is
l_actual clob;
l_results ut3.ut_varchar2_list;
begin
--Arrange
select *
bulk collect into l_results
from table(
ut3.ut.run(
a_path => 'ut3:coverage_testing',
a_reporter=> ut3.ut_coverage_sonar_reporter( ),
a_include_objects => ut3.ut_varchar2_list( 'ut3.dummy_coverage' )
)
);
ut3_tester_helper.coverage_helper.cleanup_dummy_coverage(test_coverage.g_run_id);
ut3_tester_helper.coverage_helper.drop_dummy_coverage_pkg();
create_dummy_coverage_test_1;

--Act
select *
bulk collect into l_results
from table(
ut3.ut.run(
a_path => 'ut3:coverage_testing',
a_reporter=> ut3.ut_coverage_sonar_reporter( ),
a_include_objects => ut3.ut_varchar2_list( 'ut3.dummy_coverage' )
)
);

--Assert
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
ut.expect(l_actual).to_equal(to_clob('<?xml version="1.0"?>
<coverage version="1">
</coverage>'));
end;

end;
/
27 changes: 27 additions & 0 deletions 27 test/ut3_user/reporters/test_proftab_coverage.pks
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
create or replace package test_proftab_coverage is

--%suite
--%suitepath(utplsql.test_user.reporters.test_coverage)

--%test(Coverage is gathered for specified object - default coverage type)
procedure coverage_for_object;

--%test(Coverage is gathered for specified schema - default coverage type)
procedure coverage_for_object_no_owner;

--%test(Coverage is gathered for specified schema)
procedure coverage_for_schema;

--%test(Coverage is gathered for specified file - default coverage type)
procedure coverage_for_file;

--%test(Coverage data is not cached between runs - issue #562 )
--%aftertest(ut3$user#.test_coverage.create_dummy_coverage_pkg)
--%aftertest(ut3$user#.test_coverage.setup_dummy_coverage)
--%aftertest(drop_dummy_coverage_test_1)
procedure coverage_tmp_data_refresh;

procedure drop_dummy_coverage_test_1;

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