From 0dd978f6c11eece36eb226e518610f5925deef01 Mon Sep 17 00:00:00 2001 From: Philipp Salvisberg Date: Thu, 4 Jun 2020 18:35:51 +0200 Subject: [PATCH 1/4] grant privileges to debug via UT3_USER --- .travis/install.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.travis/install.sh b/.travis/install.sh index 99c88c79b..b914dd4d3 100755 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -113,6 +113,20 @@ PROMPT Creating $UT3_USER - minimal privileges user for API testing create user $UT3_USER identified by "$UT3_USER_PASSWORD" default tablespace $UT3_TABLESPACE quota unlimited on $UT3_TABLESPACE; grant create session, create procedure, create type, create table to $UT3_USER; +PROMPT Grants for starting a debugging session from $UT3_USER +grant debug connect session to $UT3_USER; +begin + dbms_network_acl_admin.append_host_ace ( + host =>'*', + ace => sys.xs\$ace_type( + privilege_list => sys.xs\$name_list('JDWP') , + principal_name => '$UT3_USER', + principal_type => sys.xs_acl.ptype_db + ) + ); +end; +/ +grant debug any procedure to $UT3_USER; -------------------------------------------------------------------------------- PROMPT Creating $UT3_TESTER_HELPER - provides functions to allow min grant test user setup tests. From 9ea6ab408dc66df31372dc4bb19eb0fd19366c52 Mon Sep 17 00:00:00 2001 From: Philipp Salvisberg Date: Thu, 4 Jun 2020 18:36:35 +0200 Subject: [PATCH 2/4] add test case to reproduce bug #1073 --- .../reporters/test_realtime_reporter.pkb | 46 +++++++++++++++++++ .../reporters/test_realtime_reporter.pks | 3 ++ 2 files changed, 49 insertions(+) diff --git a/test/ut3_user/reporters/test_realtime_reporter.pkb b/test/ut3_user/reporters/test_realtime_reporter.pkb index 53a268ff4..ad354133b 100644 --- a/test/ut3_user/reporters/test_realtime_reporter.pkb +++ b/test/ut3_user/reporters/test_realtime_reporter.pkb @@ -118,6 +118,22 @@ create or replace package body test_realtime_reporter as end; end;]'; + execute immediate q'[create or replace package check_realtime_reporting5 is + --%suite + --%suitepath(realtime_reporting_bufix) + + --%test(test XML with nested CDATA) + procedure test_nested_cdata; + end;]'; + + execute immediate q'[create or replace package body check_realtime_reporting5 is + procedure test_nested_cdata is + begin + dbms_output.put_line('nested cdata block: , to be handled.'); + ut.expect(1).to_equal(1); + end; + end;]'; + <> declare l_reporter ut3_develop.ut_realtime_reporter := ut3_develop.ut_realtime_reporter(); @@ -448,6 +464,35 @@ create or replace package body test_realtime_reporter as l_actual := l_reporter.get_description(); ut.expect(l_actual).to_be_like(l_expected); end get_description; + + procedure nested_cdata_output is + l_text varchar2(4000); + l_xml xmltype; + -- + function produce_and_consume return varchar2 is + pragma autonomous_transaction; + l_reporter ut3_develop.ut_realtime_reporter := ut3_develop.ut_realtime_reporter(); + l_text varchar2(4000); + begin + -- produce + ut3_develop.ut_runner.run( + a_paths => ut3_develop.ut_varchar2_list(':realtime_reporting_bufix'), + a_reporters => ut3_develop.ut_reporters(l_reporter) + ); + -- consume + select text + into l_text + from table(l_reporter.get_lines()) + where item_type = 'post-test'; + return l_text; + end produce_and_consume; + begin + l_text := produce_and_consume(); + ut.expect(l_text).to_be_not_null(); + -- this fails, if l_text is not a valid XML + l_xml := xmltype(l_text); + ut.expect(l_xml is not null).to_be_true(); + end; procedure remove_test_suites is pragma autonomous_transaction; @@ -456,6 +501,7 @@ create or replace package body test_realtime_reporter as execute immediate 'drop package check_realtime_reporting2'; execute immediate 'drop package check_realtime_reporting3'; execute immediate 'drop package check_realtime_reporting4'; + execute immediate 'drop package check_realtime_reporting5'; end remove_test_suites; end test_realtime_reporter; diff --git a/test/ut3_user/reporters/test_realtime_reporter.pks b/test/ut3_user/reporters/test_realtime_reporter.pks index e57ccab21..453824ca5 100644 --- a/test/ut3_user/reporters/test_realtime_reporter.pks +++ b/test/ut3_user/reporters/test_realtime_reporter.pks @@ -54,6 +54,9 @@ create or replace package test_realtime_reporter as --%test(Provide a description of the reporter explaining the use for SQL Developer) procedure get_description; + --%test(Escape nested CDATA sections in test output) + procedure nested_cdata_output; + --%afterall procedure remove_test_suites; From bfe94cd6abe68ee50d54f51e2ee624f1ba1c939c Mon Sep 17 00:00:00 2001 From: Philipp Salvisberg Date: Thu, 4 Jun 2020 18:37:09 +0200 Subject: [PATCH 3/4] handle nested CDATA sections to fix bug #1073 --- source/reporters/ut_realtime_reporter.tpb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/reporters/ut_realtime_reporter.tpb b/source/reporters/ut_realtime_reporter.tpb index 64eb343e5..367b2c51a 100644 --- a/source/reporters/ut_realtime_reporter.tpb +++ b/source/reporters/ut_realtime_reporter.tpb @@ -252,7 +252,7 @@ create or replace type body ut_realtime_reporter is ) is begin if a_content is not null then - self.print_xml_fragment('<' || a_name || '>'); + self.print_xml_fragment('<' || a_name || '>'); end if; end print_cdata_node; From 6631930da1a70d26f2f828b6c061292f577f39ad Mon Sep 17 00:00:00 2001 From: Philipp Salvisberg Date: Thu, 4 Jun 2020 20:17:41 +0200 Subject: [PATCH 4/4] support Oracle DB 11.2, add ace only on 12c and higher --- .travis/install.sh | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/.travis/install.sh b/.travis/install.sh index b914dd4d3..225b6ff52 100755 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -115,18 +115,23 @@ grant create session, create procedure, create type, create table to $UT3_USER; PROMPT Grants for starting a debugging session from $UT3_USER grant debug connect session to $UT3_USER; +grant debug any procedure to $UT3_USER; begin - dbms_network_acl_admin.append_host_ace ( - host =>'*', - ace => sys.xs\$ace_type( - privilege_list => sys.xs\$name_list('JDWP') , - principal_name => '$UT3_USER', - principal_type => sys.xs_acl.ptype_db - ) - ); + \$if dbms_db_version.version <= 11 \$then + null; -- no addition action necessary + \$else + -- necessary on 12c or higher + dbms_network_acl_admin.append_host_ace ( + host =>'*', + ace => sys.xs\$ace_type( + privilege_list => sys.xs\$name_list('JDWP') , + principal_name => '$UT3_USER', + principal_type => sys.xs_acl.ptype_db + ) + ); + \$end end; / -grant debug any procedure to $UT3_USER; -------------------------------------------------------------------------------- PROMPT Creating $UT3_TESTER_HELPER - provides functions to allow min grant test user setup tests.