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

Skip to content

Commit c2497a9

Browse files
authored
Merge pull request #277 from jgebal/feature/invalidated_package_run_fix
Feature/invalidated package run fix
2 parents b918c09 + 269e8ad commit c2497a9

5 files changed

Lines changed: 91 additions & 1 deletion

File tree

source/core/ut_metadata.pkb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ create or replace package body ut_metadata as
7575
from all_objects
7676
where owner = l_schema
7777
and object_name = l_package_name
78-
and object_type in ('PACKAGE', 'PACKAGE BODY');
78+
and object_type in ('PACKAGE');
7979

8080
-- expect both package and body to be valid
8181
return l_cnt = 1;

tests/RunAll.sql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ create table ut$test_table (val varchar2(1));
2222
@@helpers/test_package_3.pck
2323
@@helpers/test_package_1.pck
2424
@@helpers/test_package_2.pck
25+
@@helpers/utplsql_test_reporter.typ
2526

2627
--Start coverage in develop mode (coverage for utPLSQL framework)
2728
--Regular coverage excludes the framework
@@ -105,6 +106,7 @@ exec ut_coverage.coverage_start_develop();
105106
@@lib/RunTest.sql ut_output_buffer/send_line.DoesNotSendLineIfNullTextGiven.sql
106107
@@lib/RunTest.sql ut_output_buffer/send_line.SendsALineIntoBufferTable.sql
107108

109+
@@lib/RunTest.sql ut_run/ut.run.FailsToExecuteAnInvalidPackageBody.sql
108110
@@lib/RunTest.sql ut_run/ut_run.function.WithGivenReporter.ExectutesAllInCurrentSchemaUsingReporter.sql
109111
@@lib/RunTest.sql ut_run/ut_run.function.WithNoParams.ExecutesAllFromCurrentSchema.sql
110112
@@lib/RunTest.sql ut_run/ut_run.function.WithPackageName.ExecutesAllFromGivenPackage.sql
@@ -136,6 +138,7 @@ exec ut_coverage.coverage_start_develop();
136138
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTop2PackageProcedureByPath.sql
137139
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTop2PackageProcedureByPathCurUser.sql
138140
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.DoesntFindTheSuiteWhenPackageSpecIsInvalid.sql
141+
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.IncludesInvalidPackageBodiesInTheRun.sql
139142
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.CacheInvalidaesOnPackageDrop.sql
140143

141144

@@ -221,6 +224,7 @@ drop type department1$;
221224
drop package test_package_1;
222225
drop package test_package_2;
223226
drop package test_package_3;
227+
drop type utplsql_test_reporter;
224228

225229
set timing on
226230
prompt Generating coverage data to reporter outputs
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
create or replace type utplsql_test_reporter under ut_reporter_base(
2+
constructor function utplsql_test_reporter(self in out nocopy utplsql_test_reporter) return self as result,
3+
overriding member procedure after_calling_run(self in out nocopy utplsql_test_reporter, a_run in ut_run)
4+
)
5+
/
6+
7+
create or replace type body utplsql_test_reporter is
8+
constructor function utplsql_test_reporter(self in out nocopy utplsql_test_reporter) return self as result is
9+
begin
10+
self.init($$plsql_unit);
11+
return;
12+
end;
13+
14+
overriding member procedure after_calling_run(self in out nocopy utplsql_test_reporter, a_run in ut_run) is
15+
begin
16+
self.print_text(a_run.result);
17+
end;
18+
end;
19+
/
20+
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
set termout off
2+
create table test_dependency_table (id integer);
3+
create or replace package test_dependencies as
4+
-- %suite
5+
6+
-- %test
7+
procedure dependant;
8+
end;
9+
/
10+
create or replace package body test_dependencies as
11+
gc_dependant_variable test_dependency_table.id%type;
12+
procedure dependant is begin null; end;
13+
end;
14+
/
15+
drop table test_dependency_table;
16+
set termout on
17+
18+
declare
19+
l_result integer;
20+
begin
21+
select *
22+
into l_result
23+
from table(ut.run('test_dependencies',utplsql_test_reporter()));
24+
--Assert
25+
if l_result = ut_utils.tr_error then
26+
:test_result := ut_utils.tr_success;
27+
else
28+
dbms_output.put_line('expected failure of ''test_dependencies'' got: '''||ut_utils.test_result_to_char(l_result)||'''' );
29+
end if;
30+
end;
31+
/
32+
33+
set termout off
34+
drop package test_dependencies;
35+
set termout on
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
set termout off
2+
create table test_dependency_table (id integer);
3+
create or replace package test_dependencies as
4+
-- %suite
5+
6+
-- %test
7+
procedure dependant;
8+
end;
9+
/
10+
create or replace package body test_dependencies as
11+
gc_dependant_variable test_dependency_table.id%type;
12+
procedure dependant is begin null; end;
13+
end;
14+
/
15+
alter table test_dependency_table modify id number;
16+
set termout on
17+
18+
declare
19+
l_result integer;
20+
begin
21+
select *
22+
into l_result
23+
from table(ut.run('test_dependencies',utplsql_test_reporter()));
24+
:test_result := l_result;
25+
end;
26+
/
27+
28+
set termout off
29+
drop table test_dependency_table;
30+
drop package test_dependencies;
31+
set termout on

0 commit comments

Comments
 (0)