@@ -2,72 +2,56 @@ create or replace package body coverage_helper is
22
33 g_job_no integer := 0;
44
5- procedure create_long_name_package is
6- pragma autonomous_transaction;
5+ function block_coverage_available return boolean is
76 begin
8- execute immediate q'[create or replace package UT3_DEVELOP.DUMMY_COVERAGE_PACKAGE_WITH_AN_AMAZINGLY_LONG_NAME_THAT_YOU_WOULD_NOT_THINK_OF_IN_REAL_LIFE_PROJECT_BECAUSE_ITS_SIMPLY_TOO_LONG is
9- procedure do_stuff(i_input in number);
10- end;]';
11- execute immediate q'[create or replace package body UT3_DEVELOP.DUMMY_COVERAGE_PACKAGE_WITH_AN_AMAZINGLY_LONG_NAME_THAT_YOU_WOULD_NOT_THINK_OF_IN_REAL_LIFE_PROJECT_BECAUSE_ITS_SIMPLY_TOO_LONG is
12- procedure do_stuff(i_input in number) is
13- begin
14- if i_input = 2 then dbms_output.put_line('should not get here'); else dbms_output.put_line('should get here'); end if;
15- end;
16- end;]';
17-
18- execute immediate q'[create or replace package UT3_DEVELOP.TEST_BLOCK_DUMMY_COVERAGE is
19- --%suite(dummy coverage test)
20- --%suitepath(coverage_testing)
21-
22- --%test
23- procedure test_do_stuff;
24- end;]';
25- execute immediate q'[create or replace package body UT3_DEVELOP.TEST_BLOCK_DUMMY_COVERAGE is
26- procedure test_do_stuff is
27- begin
28- dummy_coverage_package_with_an_amazingly_long_name_that_you_would_not_think_of_in_real_life_project_because_its_simply_too_long.do_stuff(1);
29- ut.expect(1).to_equal(1);
30- end;
31- end;]';
32-
7+ $if dbms_db_version.version = 12 and dbms_db_version.release >= 2 or dbms_db_version.version > 12 $then
8+ return true;
9+ $else
10+ return false;
11+ $end
3312 end;
3413
35- procedure drop_long_name_package is
36- pragma autonomous_transaction;
14+ function covered_package_name return varchar2 is
3715 begin
38- begin
39- execute immediate q'[drop package ut3_develop.test_block_dummy_coverage]';
40- exception
41- when others then null;
42- end;
43- begin
44- execute immediate q'[drop package ut3_develop.dummy_coverage_package_with_an_amazingly_long_name_that_you_would_not_think_of_in_real_life_project_because_its_simply_too_long]';
45- exception
46- when others then null;
47- end;
16+ $if dbms_db_version.version = 12 and dbms_db_version.release >= 2 or dbms_db_version.version > 12 $then
17+ return 'dummy_coverage_package_with_an_amazingly_long_name_that_you_would_not_think_of_in_real_life_project_because_its_simply_too_long';
18+ $else
19+ return 'dummy_coverage';
20+ $end
4821 end;
4922
23+ function substitute_covered_package(
24+ a_text varchar2,
25+ a_substitution varchar2
26+ ) return varchar2 is
27+ begin
28+ return replace( replace( a_text, a_substitution, covered_package_name() ), upper(a_substitution), upper(covered_package_name()) );
29+ end;
5030
31+ procedure set_develop_mode is
32+ begin
33+ ut3_develop.ut_coverage.set_develop_mode(true);
34+ end;
5135
5236
5337 procedure create_dummy_coverage is
5438 pragma autonomous_transaction;
5539 begin
56- execute immediate 'alter session set plsql_optimize_level=0';
57- execute immediate q'[create or replace package UT3_DEVELOP.DUMMY_COVERAGE is
58- procedure do_stuff;
40+ execute immediate q'[create or replace package ut3_develop.]'||covered_package_name||q'[ is
41+ procedure do_stuff(i_input in number);
5942 end;]';
60- execute immediate q'[create or replace package body UT3_DEVELOP.DUMMY_COVERAGE is
61- procedure do_stuff is
43+
44+ execute immediate q'[create or replace package body ut3_develop.]'||covered_package_name||q'[ is
45+ procedure do_stuff(i_input in number) is
6246 begin
63- if 1 = 2 then
64- dbms_output.put_line('should not get here');
47+ if i_input = 2 then dbms_output.put_line('should not get here'); elsif i_input = 1 then dbms_output.put_line('should get here');
6548 else
66- dbms_output.put_line('should get here');
49+ dbms_output.put_line('should not get here');
6750 end if;
6851 end;
6952 end;]';
70- execute immediate q'[create or replace package UT3_DEVELOP.TEST_DUMMY_COVERAGE is
53+
54+ execute immediate q'[create or replace package ut3_develop.test_dummy_coverage is
7155 --%suite(dummy coverage test)
7256 --%suitepath(coverage_testing)
7357
@@ -77,35 +61,37 @@ create or replace package body coverage_helper is
7761 --%test
7862 procedure zero_coverage;
7963 end;]';
80- execute immediate q'[create or replace package body UT3_DEVELOP.TEST_DUMMY_COVERAGE is
64+
65+ execute immediate q'[create or replace package body ut3_develop.test_dummy_coverage is
8166 procedure test_do_stuff is
8267 begin
83- dummy_coverage.do_stuff;
68+ ]'||covered_package_name||q'[.do_stuff(1);
69+ ut.expect(1).to_equal(1);
8470 end;
85-
8671 procedure zero_coverage is
8772 begin
8873 null;
8974 end;
9075 end;]';
91-
76+
9277 end;
9378
9479 procedure drop_dummy_coverage is
9580 pragma autonomous_transaction;
9681 begin
97- begin execute immediate q'[drop package ut3_develop.test_dummy_coverage]'; exception when others then null; end;
98- begin execute immediate q'[drop package ut3_develop.dummy_coverage]' ; exception when others then null; end;
82+ begin execute immediate q'[drop package ut3_develop.test_dummy_coverage]'; exception when others then null; end;
83+ begin execute immediate q'[drop package ut3_develop.]'||covered_package_name ; exception when others then null; end;
9984 end;
10085
10186
102- procedure create_dummy_coverage_test_1 is
87+ procedure create_dummy_coverage_1 is
10388 pragma autonomous_transaction;
10489 begin
105- execute immediate q'[create or replace package UT3_DEVELOP.DUMMY_COVERAGE_1 is
90+ execute immediate q'[create or replace package ut3_develop.dummy_coverage_1 is
10691 procedure do_stuff;
10792 end;]';
108- execute immediate q'[create or replace package body UT3_DEVELOP.DUMMY_COVERAGE_1 is
93+
94+ execute immediate q'[create or replace package body ut3_develop.dummy_coverage_1 is
10995 procedure do_stuff is
11096 begin
11197 if 1 = 2 then
@@ -115,14 +101,16 @@ create or replace package body coverage_helper is
115101 end if;
116102 end;
117103 end;]';
118- execute immediate q'[create or replace package UT3_DEVELOP.TEST_DUMMY_COVERAGE_1 is
104+
105+ execute immediate q'[create or replace package ut3_develop.test_dummy_coverage_1 is
119106 --%suite(dummy coverage test 1)
120107 --%suitepath(coverage_testing)
121108
122109 --%test
123110 procedure test_do_stuff;
124111 end;]';
125- execute immediate q'[create or replace package body UT3_DEVELOP.TEST_DUMMY_COVERAGE_1 is
112+
113+ execute immediate q'[create or replace package body ut3_develop.test_dummy_coverage_1 is
126114 procedure test_do_stuff is
127115 begin
128116 dummy_coverage_1.do_stuff;
@@ -131,16 +119,11 @@ create or replace package body coverage_helper is
131119 end;]';
132120 end;
133121
134- procedure drop_dummy_coverage_test_1 is
122+ procedure drop_dummy_coverage_1 is
135123 pragma autonomous_transaction;
136124 begin
137- begin execute immediate q'[drop package UT3_DEVELOP.DUMMY_COVERAGE_1]'; exception when others then null; end;
138- begin execute immediate q'[drop package UT3_DEVELOP.TEST_DUMMY_COVERAGE_1]'; exception when others then null; end;
139- end;
140-
141- procedure set_develop_mode is
142- begin
143- ut3_develop.ut_coverage.set_develop_mode(true);
125+ begin execute immediate q'[drop package ut3_develop.dummy_coverage_1]'; exception when others then null; end;
126+ begin execute immediate q'[drop package ut3_develop.test_dummy_coverage_1]'; exception when others then null; end;
144127 end;
145128
146129 procedure create_coverage_pkg is
@@ -169,6 +152,8 @@ create or replace package body coverage_helper is
169152 execute immediate q'[drop package coverage_pkg]';
170153 end;
171154
155+
156+
172157 procedure run_standalone_coverage(a_coverage_run_id raw, a_input integer) is
173158 x integer;
174159 begin
0 commit comments