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

Skip to content

Commit c508e79

Browse files
committed
Adding tests:
reporters/test_coverage reporters/test_coverage/test_html_proftab_reporter reporters/test_proftab_coverage
1 parent e6b0673 commit c508e79

9 files changed

Lines changed: 284 additions & 28 deletions

File tree

test/install_ut3_user_tests.sql

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,12 @@ set define off
3636
@@ut3_user/reporters/test_coverage/test_coveralls_reporter.pks
3737
@@ut3_user/reporters/test_coverage/test_cov_cobertura_reporter.pks
3838
@@ut3_user/reporters/test_coverage/test_coverage_sonar_reporter.pks
39+
set define on
40+
@@install_below_12_2.sql 'ut3_user/reporters/test_proftab_coverage.pks'
41+
@@install_below_12_2.sql 'ut3_user/reporters/test_coverage/test_html_proftab_reporter.pks'
42+
set define off
3943

4044

41-
--set define on
42-
--@@install_below_12_2.sql 'ut3_user/reporters/test_proftag_coverage.pks'
43-
--@@install_below_12_2.sql 'ut3_user/reporters/test_coverage/test_html_proftab_reporter.pks'
44-
--set define off
45-
4645
@@ut3_user/expectations/unary/test_expect_not_to_be_null.pkb
4746
@@ut3_user/expectations/unary/test_expect_to_be_null.pkb
4847
@@ut3_user/expectations/unary/test_expect_to_be_empty.pkb
@@ -74,11 +73,10 @@ set define off
7473
@@ut3_user/reporters/test_coverage/test_coveralls_reporter.pkb
7574
@@ut3_user/reporters/test_coverage/test_cov_cobertura_reporter.pkb
7675
@@ut3_user/reporters/test_coverage/test_coverage_sonar_reporter.pkb
77-
78-
--set define on
79-
--@@install_below_12_2.sql 'ut3_user/reporters/test_coverage.pkb'
80-
--@@install_below_12_2.sql 'ut3_user/reporters/test_coverage/test_html_proftab_reporter.pkb'
81-
--set define off
76+
set define on
77+
@@install_below_12_2.sql 'ut3_user/reporters/test_proftab_coverage.pkb'
78+
@@install_below_12_2.sql 'ut3_user/reporters/test_coverage/test_html_proftab_reporter.pkb'
79+
set define off
8280

8381

8482
set linesize 200

test/ut3_tester/core.pkb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ create or replace package body core is
55
ut3.ut_coverage.set_develop_mode(true);
66
--improve performance of test execution by disabling all compiler optimizations
77
ut3_tester_helper.main_helper.execute_autonomous('ALTER SESSION SET PLSQL_OPTIMIZE_LEVEL=0');
8+
dbms_output.enable(null);
89
end;
910

1011
end;

test/ut3_tester_helper/coverage_helper.pkb

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,66 @@ create or replace package body coverage_helper is
106106
begin execute immediate q'[drop package ut3.dummy_coverage]'; exception when others then null; end;
107107
end;
108108

109+
110+
procedure create_dummy_coverage_test_1 is
111+
pragma autonomous_transaction;
112+
begin
113+
execute immediate q'[create or replace package UT3.DUMMY_COVERAGE_1 is
114+
procedure do_stuff;
115+
procedure grant_myself;
116+
end;]';
117+
execute immediate q'[create or replace package body UT3.DUMMY_COVERAGE_1 is
118+
procedure do_stuff is
119+
begin
120+
if 1 = 2 then
121+
dbms_output.put_line('should not get here');
122+
else
123+
dbms_output.put_line('should get here');
124+
end if;
125+
end;
126+
127+
procedure grant_myself is
128+
begin
129+
execute immediate 'grant debug,execute on UT3.DUMMY_COVERAGE_1 to ut3$user#';
130+
end;
131+
132+
end;]';
133+
execute immediate q'[create or replace package UT3.TEST_DUMMY_COVERAGE_1 is
134+
--%suite(dummy coverage test 1)
135+
--%suitepath(coverage_testing)
136+
137+
--%test
138+
procedure test_do_stuff;
139+
140+
procedure grant_myself;
141+
end;]';
142+
execute immediate q'[create or replace package body UT3.TEST_DUMMY_COVERAGE_1 is
143+
procedure test_do_stuff is
144+
begin
145+
dummy_coverage_1.do_stuff;
146+
end;
147+
148+
procedure grant_myself is
149+
begin
150+
execute immediate 'grant debug,execute on UT3.TEST_DUMMY_COVERAGE_1 to ut3$user#';
151+
end;
152+
153+
end;]';
154+
end;
155+
156+
procedure drop_dummy_coverage_test_1 is
157+
pragma autonomous_transaction;
158+
begin
159+
execute immediate q'[drop package UT3.DUMMY_COVERAGE_1]';
160+
execute immediate q'[drop package UT3.TEST_DUMMY_COVERAGE_1]';
161+
end;
162+
163+
procedure grant_exec_on_cov_1 is
164+
pragma autonomous_transaction;
165+
begin
166+
execute immediate 'begin UT3.DUMMY_COVERAGE_1.grant_myself(); end;';
167+
execute immediate 'begin UT3.TEST_DUMMY_COVERAGE_1.grant_myself(); end;';
168+
end;
109169

110170
--12.2 Setup
111171
procedure create_dummy_12_2_cov_pck is

test/ut3_tester_helper/coverage_helper.pks

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ create or replace package coverage_helper is
1515
procedure grant_exec_on_cov;
1616
procedure mock_profiler_coverage_data(a_run_id integer,a_user in varchar2);
1717
procedure drop_dummy_coverage_pkg;
18-
18+
procedure create_dummy_coverage_test_1;
19+
procedure drop_dummy_coverage_test_1;
20+
procedure grant_exec_on_cov_1;
21+
1922
--Block coverage
2023
procedure create_dummy_12_2_cov_pck;
2124
procedure create_dummy_12_2_cov_test;

test/ut3_user/reporters/test_coverage.pkb

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,10 @@ create or replace package body test_coverage is
66
return ut3_tester_helper.coverage_helper.get_mock_run_id();
77
end;
88

9-
procedure create_dummy_coverage_package is
9+
procedure create_dummy_coverage_pkg is
1010
begin
1111
ut3_tester_helper.coverage_helper.create_dummy_coverage_package();
12-
end;
13-
14-
procedure create_dummy_coverage_test is
15-
begin
1612
ut3_tester_helper.coverage_helper.create_dummy_coverage_test();
17-
end;
18-
19-
procedure mock_coverage_data(a_run_id integer) is
20-
begin
21-
ut3_tester_helper.coverage_helper.mock_coverage_data(a_run_id,user);
22-
end;
23-
24-
procedure create_dummy_coverage_pkg is
25-
begin
26-
create_dummy_coverage_package();
27-
create_dummy_coverage_test();
2813
ut3_tester_helper.coverage_helper.grant_exec_on_cov();
2914
end;
3015

@@ -33,7 +18,7 @@ create or replace package body test_coverage is
3318
begin
3419
g_run_id := get_mock_run_id();
3520
ut3.ut_coverage.mock_coverage_id(g_run_id, ut3.ut_coverage.gc_proftab_coverage);
36-
mock_coverage_data(g_run_id);
21+
ut3_tester_helper.coverage_helper.mock_coverage_data(g_run_id,user);
3722
commit;
3823
end;
3924

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
create or replace package body test_html_proftab_reporter is
2+
3+
procedure report_on_file is
4+
l_results ut3.ut_varchar2_list;
5+
l_expected varchar2(32767);
6+
l_actual clob;
7+
l_charset varchar2(100) := 'ISO-8859-1';
8+
begin
9+
--Arrange
10+
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%';
11+
--Act
12+
select *
13+
bulk collect into l_results
14+
from table(
15+
ut3.ut.run(
16+
a_path => 'ut3.test_dummy_coverage',
17+
a_reporter=> ut3.ut_coverage_html_reporter(),
18+
a_source_files => ut3.ut_varchar2_list( 'test/ut3.dummy_coverage.pkb' ),
19+
a_test_files => ut3.ut_varchar2_list( ),
20+
a_client_character_set => l_charset
21+
)
22+
);
23+
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
24+
--Assert
25+
ut.expect(l_actual).to_be_like(l_expected);
26+
end;
27+
28+
end test_html_proftab_reporter;
29+
/
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
create or replace package test_html_proftab_reporter is
2+
3+
--%suite(ut_html_proftab_reporter)
4+
--%suitepath(utplsql.test_user.reporters.test_coverage.test_proftab_coverage)
5+
6+
--%test(reports on a project file mapped to database object in profiler coverage)
7+
procedure report_on_file;
8+
9+
end test_html_proftab_reporter;
10+
/
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
create or replace package body test_proftab_coverage is
2+
3+
procedure create_dummy_coverage_test_1 is
4+
begin
5+
ut3_tester_helper.coverage_helper.create_dummy_coverage_test_1();
6+
ut3_tester_helper.coverage_helper.grant_exec_on_cov_1();
7+
end;
8+
9+
procedure drop_dummy_coverage_test_1 is
10+
begin
11+
ut3_tester_helper.coverage_helper.drop_dummy_coverage_test_1();
12+
end;
13+
14+
procedure coverage_for_object is
15+
l_expected clob;
16+
l_actual clob;
17+
l_results ut3.ut_varchar2_list;
18+
begin
19+
--Arrange
20+
l_expected := '%<file path="ut3.dummy_coverage">%';
21+
--Act
22+
select *
23+
bulk collect into l_results
24+
from table(
25+
ut3.ut.run(
26+
a_path => 'ut3.test_dummy_coverage',
27+
a_reporter=> ut3.ut_coverage_sonar_reporter( ),
28+
a_include_objects => ut3.ut_varchar2_list( 'ut3.dummy_coverage' )
29+
)
30+
);
31+
--Assert
32+
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
33+
ut.expect(l_actual).to_be_like(l_expected);
34+
end;
35+
36+
procedure coverage_for_object_no_owner is
37+
l_expected clob;
38+
l_actual clob;
39+
l_results ut3.ut_varchar2_list;
40+
begin
41+
--Arrange
42+
l_expected := '%<file path="ut3.dummy_coverage">%';
43+
--Act
44+
select *
45+
bulk collect into l_results
46+
from table(
47+
ut3.ut.run(
48+
a_path => 'ut3.test_dummy_coverage',
49+
a_reporter=> ut3.ut_coverage_sonar_reporter( ),
50+
a_include_objects => ut3.ut_varchar2_list( 'dummy_coverage' )
51+
)
52+
);
53+
--Assert
54+
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
55+
ut.expect(l_actual).to_be_like(l_expected);
56+
end;
57+
58+
procedure coverage_for_schema is
59+
l_expected clob;
60+
l_actual clob;
61+
l_results ut3.ut_varchar2_list;
62+
begin
63+
--Arrange
64+
l_expected := '<file path="ut3.%">';
65+
l_expected := '%'||l_expected||'%'||l_expected||'%';
66+
--Act
67+
select *
68+
bulk collect into l_results
69+
from table(
70+
ut3.ut.run(
71+
a_path => 'ut3.test_dummy_coverage',
72+
a_reporter=> ut3.ut_coverage_sonar_reporter( ),
73+
a_coverage_schemes => ut3.ut_varchar2_list( 'ut3' )
74+
)
75+
);
76+
--Assert
77+
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
78+
ut.expect(l_actual).to_be_like(l_expected);
79+
end;
80+
81+
procedure coverage_for_file is
82+
l_expected clob;
83+
l_actual clob;
84+
l_results ut3.ut_varchar2_list;
85+
l_file_path varchar2(100);
86+
begin
87+
--Arrange
88+
l_file_path := lower('test/ut3.dummy_coverage.pkb');
89+
l_expected := '%<file path="'||l_file_path||'">%';
90+
--Act
91+
select *
92+
bulk collect into l_results
93+
from table(
94+
ut3.ut.run(
95+
a_path => 'ut3.test_dummy_coverage',
96+
a_reporter=> ut3.ut_coverage_sonar_reporter( ),
97+
a_source_files => ut3.ut_varchar2_list( l_file_path ),
98+
a_test_files => ut3.ut_varchar2_list( )
99+
)
100+
);
101+
--Assert
102+
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
103+
ut.expect(l_actual).to_be_like(l_expected);
104+
end;
105+
106+
procedure coverage_tmp_data_refresh is
107+
l_actual clob;
108+
l_results ut3.ut_varchar2_list;
109+
begin
110+
--Arrange
111+
select *
112+
bulk collect into l_results
113+
from table(
114+
ut3.ut.run(
115+
a_path => 'ut3:coverage_testing',
116+
a_reporter=> ut3.ut_coverage_sonar_reporter( ),
117+
a_include_objects => ut3.ut_varchar2_list( 'ut3.dummy_coverage' )
118+
)
119+
);
120+
ut3_tester_helper.coverage_helper.cleanup_dummy_coverage(test_coverage.g_run_id);
121+
ut3_tester_helper.coverage_helper.drop_dummy_coverage_pkg();
122+
create_dummy_coverage_test_1;
123+
124+
--Act
125+
select *
126+
bulk collect into l_results
127+
from table(
128+
ut3.ut.run(
129+
a_path => 'ut3:coverage_testing',
130+
a_reporter=> ut3.ut_coverage_sonar_reporter( ),
131+
a_include_objects => ut3.ut_varchar2_list( 'ut3.dummy_coverage' )
132+
)
133+
);
134+
135+
--Assert
136+
l_actual := ut3_tester_helper.main_helper.table_to_clob(l_results);
137+
ut.expect(l_actual).to_equal(to_clob('<?xml version="1.0"?>
138+
<coverage version="1">
139+
</coverage>'));
140+
end;
141+
142+
end;
143+
/
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
create or replace package test_proftab_coverage is
2+
3+
--%suite
4+
--%suitepath(utplsql.test_user.reporters.test_coverage)
5+
6+
--%test(Coverage is gathered for specified object - default coverage type)
7+
procedure coverage_for_object;
8+
9+
--%test(Coverage is gathered for specified schema - default coverage type)
10+
procedure coverage_for_object_no_owner;
11+
12+
--%test(Coverage is gathered for specified schema)
13+
procedure coverage_for_schema;
14+
15+
--%test(Coverage is gathered for specified file - default coverage type)
16+
procedure coverage_for_file;
17+
18+
--%test(Coverage data is not cached between runs - issue #562 )
19+
--%aftertest(ut3$user#.test_coverage.create_dummy_coverage_pkg)
20+
--%aftertest(ut3$user#.test_coverage.setup_dummy_coverage)
21+
--%aftertest(drop_dummy_coverage_test_1)
22+
procedure coverage_tmp_data_refresh;
23+
24+
procedure drop_dummy_coverage_test_1;
25+
26+
end;
27+
/

0 commit comments

Comments
 (0)