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

Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
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
Next Next commit
implemented warnings when savepoint is not reachable (implicit commit…
… inside procedure)
  • Loading branch information
Pazus committed Mar 21, 2017
commit 5e3e4a6dc152be3ae0281078b96dc9e0b8c6dff8
4 changes: 2 additions & 2 deletions source/core/types/ut_suite_item.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ create or replace type body ut_suite_item as
return l_savepoint;
end;

member procedure rollback_to_savepoint(self in ut_suite_item, a_savepoint varchar2) is
member procedure rollback_to_savepoint(self in out nocopy ut_suite_item, a_savepoint varchar2) is
ex_savepoint_not_exists exception;
pragma exception_init(ex_savepoint_not_exists, -1086);
begin
Expand All @@ -67,7 +67,7 @@ create or replace type body ut_suite_item as
end if;
exception
when ex_savepoint_not_exists then
null;
put_warning('Savepoint not established. Implicit commit might have occured.');
end;

member function execution_time return number is
Expand Down
2 changes: 1 addition & 1 deletion source/core/types/ut_suite_item.tps
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ create or replace type ut_suite_item force under ut_suite_item_base (
member procedure set_disabled_flag(self in out nocopy ut_suite_item, a_disabled_flag boolean),
member function get_disabled_flag return boolean,
member function create_savepoint_if_needed return varchar2,
member procedure rollback_to_savepoint(self in ut_suite_item, a_savepoint varchar2),
member procedure rollback_to_savepoint(self in out nocopy ut_suite_item, a_savepoint varchar2),
member function execution_time return number,

not instantiable member function do_execute(self in out nocopy ut_suite_item, a_listener in out nocopy ut_event_listener_base) return boolean,
Expand Down
1 change: 1 addition & 0 deletions tests/RunAll.sql
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ exec ut_coverage.coverage_start_develop();
@@lib/RunTest.sql ut_test/ut_test.BeforeEachProcedureNameNull.sql
@@lib/RunTest.sql ut_test/ut_test.TestOutputGathering.sql
@@lib/RunTest.sql ut_test/ut_test.TestOutputGatheringForTeamcity.sql
@@lib/RunTest.sql ut_test/ut_test.ReportWarningOnRollbackFailed.sql

@@lib/RunTest.sql ut_test_suite/ut_test_suite.ErrorsATestWhenAfterTestFails.sql
@@lib/RunTest.sql ut_test_suite/ut_test_suite.ErrorsATestWhenBeforeTestFails.sql
Expand Down
52 changes: 52 additions & 0 deletions tests/ut_test/ut_test.ReportWarningOnRollbackFailed.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
create or replace package ut_output_test_rollback
as
--%suite

--%test
procedure tt

end;
/

create or replace package body ut_output_test_rollback
as

procedure tt is
begin
commit;
end;

end;
/

declare
l_output_data dbms_output.chararr;
l_num_lines integer := 100000;
l_output clob;
begin
--act
ut.run('ut_output_test_rollback');

--assert
dbms_output.get_lines( l_output_data, l_num_lines);
dbms_lob.createtemporary(l_output,true);
for i in 1 .. l_num_lines loop
dbms_lob.append(l_output,l_output_data(i));
end loop;

if l_output like '%Warnings:%Savepoint not established. Implicit commit might have occured.%0 disabled, 1 warning(s)%' then
:test_result := ut_utils.tr_success;
end if;

if :test_result != ut_utils.tr_success or :test_result is null then
for i in 1 .. l_num_lines loop
dbms_output.put_line(l_output_data(i));
end loop;
dbms_output.put_line('Failed: Wrong output');
end if;
end;
/

drop package ut_output_test_rollback
/