GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — utPLSQL tests fails on Oracle 11.2.0.4 due to Oracle Bug 14402514 · Issue #891 · utPLSQL/utPLSQL

utPLSQL tests fails on Oracle 11.2.0.4 due to Oracle Bug 14402514  #891

New issue
Copy link
New issue
Copy link
Closed
#943
Closed
utPLSQL tests fails on Oracle 11.2.0.4 due to Oracle Bug 14402514 #891
#943
Copy link
Assignees
PhilippSalvisberg
Labels
bug
Milestone
v3.1.7

Description

@PhilippSalvisberg
PhilippSalvisberg
opened on Apr 2, 2019
Issue body actions

Describe the bug
When I run the utPLSQL tests against a Oracle Database Version
11.2.0.4.190115 (Enterprise Edition, Linux x86_64 within Docker) as follows

. development/env.sh
test/install_and_run_tests.sh

I the following result:

Failures:
 
  1) test_bad_procedure_annotation
      Actual: (clob)
          '<UT_LOGICAL_SUITE><SELF_TYPE>UT_SUITE</SELF_TYPE><OBJECT_OWNER>UT3_TESTER</OBJECT_OWNER><OBJECT_NAME>some_package</OBJECT_NAME><NAME>some_package</NAME><DESCRIPTION>Cool</DESCRIPTION><PATH>some_package</PATH><ROLLBACK_TYPE>0</ROLLBACK_TYPE><DISABLED_FLAG>0</DISABLED_FLAG><LINE_NO>1</LINE_NO><PARSE_TIME>02.04.19 09:40:34.283553</PARSE_TIME><WARNINGS><VARCHAR2>Unsupported annotation &quot;--%bad_procedure_annotation&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.SOME_PROCEDURE&quot;, line 2</VARCHAR2></WARNINGS><ITEMS><UT_SUITE_ITEM><SELF_TYPE>UT_TEST</SELF_TYPE><OBJECT_OWNER>UT3_TESTER</OBJECT_OWNER><OBJECT_NAME>some_package</OBJECT_NAME><NAME>do_stuff</NAME><DESCRIPTION>A test</DESCRIPTION><PATH>some_package.do_stuff</PATH><ROLLBACK_TYPE>0</ROLLBACK_TYPE><DISABLED_FLAG>0</DISABLED_FLAG><LINE_NO>6</LINE_NO><PARSE_TIME>02.04.19 09:40:34.283553</PARSE_TIME><WARNINGS/><BEFORE_EACH_LIST/><BEFORE_TEST_LIST/><ITEM><SELF_TYPE>UT_EXECUTABLE_TEST</SELF_TYPE><EXECUTABLE_TYPE>test</EXECUTABLE_TYPE><OWNER_NAME>UT3_TESTER</OWNER_NAME><OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>do_stuff</PROCEDURE_NAME></ITEM><AFTER_TEST_LIST/><AFTER_EACH_LIST/><ALL_EXPECTATIONS/><FAILED_EXPECTATIONS/></UT_SUITE_ITEM></ITEMS><BEFORE_ALL_LIST/><AFTER_ALL_LIST/></UT_LOGICAL_SUITE>'
      was expected to be like: 
          '%<WARNINGS><VARCHAR2>Unsupported annotation &quot;--\%bad_procedure_annotation&quot;. Annotation ignored.% line 2</VARCHAR2></WARNINGS>%'
      , escape '\'
      at "UT3_TESTER.TEST_SUITE_BUILDER", line 1098 ut.expect(l_actual).to_be_like('%<WARNINGS><VARCHAR2>Unsupported annotation &quot;--\%bad_procedure_annotation&quot;. Annotation ignored.% line 2</VARCHAR2></WARNINGS>%', '\');
      
       
  2) test_bad_package_annotation
      Actual: (clob)
          '<UT_LOGICAL_SUITE><SELF_TYPE>UT_SUITE</SELF_TYPE><OBJECT_OWNER>UT3_TESTER</OBJECT_OWNER><OBJECT_NAME>some_package</OBJECT_NAME><NAME>some_package</NAME><DESCRIPTION>Cool</DESCRIPTION><PATH>some_package</PATH><ROLLBACK_TYPE>0</ROLLBACK_TYPE><DISABLED_FLAG>0</DISABLED_FLAG><LINE_NO>1</LINE_NO><PARSE_TIME>02.04.19 09:40:34.335352</PARSE_TIME><WARNINGS><VARCHAR2>Unsupported annotation &quot;--%bad_package_annotation&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE&quot;, line 17</VARCHAR2></WARNINGS><ITEMS><UT_SUITE_ITEM><SELF_TYPE>UT_TEST</SELF_TYPE><OBJECT_OWNER>UT3_TESTER</OBJECT_OWNER><OBJECT_NAME>some_package</OBJECT_NAME><NAME>do_stuff</NAME><DESCRIPTION>A test</DESCRIPTION><PATH>some_package.do_stuff</PATH><ROLLBACK_TYPE>0</ROLLBACK_TYPE><DISABLED_FLAG>0</DISABLED_FLAG><LINE_NO>24</LINE_NO><PARSE_TIME>02.04.19 09:40:34.335352</PARSE_TIME><WARNINGS/><BEFORE_EACH_LIST/><BEFORE_TEST_LIST/><ITEM><SELF_TYPE>UT_EXECUTABLE_TEST</SELF_TYPE><EXECUTABLE_TYPE>test</EXECUTABLE_TYPE><OWNER_NAME>UT3_TESTER</OWNER_NAME><OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>do_stuff</PROCEDURE_NAME></ITEM><AFTER_TEST_LIST/><AFTER_EACH_LIST/><ALL_EXPECTATIONS/><FAILED_EXPECTATIONS/></UT_SUITE_ITEM></ITEMS><BEFORE_ALL_LIST/><AFTER_ALL_LIST/></UT_LOGICAL_SUITE>'
      was expected to be like: 
          '%<WARNINGS><VARCHAR2>Unsupported annotation &quot;--\%bad_package_annotation&quot;. Annotation ignored.% line 17</VARCHAR2></WARNINGS>%'
      , escape '\'
      at "UT3_TESTER.TEST_SUITE_BUILDER", line 1114 ut.expect(l_actual).to_be_like('%<WARNINGS><VARCHAR2>Unsupported annotation &quot;--\%bad_package_annotation&quot;. Annotation ignored.% line 17</VARCHAR2></WARNINGS>%', '\');
      
       
  3) before_after_mixed_with_test
      Actual: (clob)
          '<UT_LOGICAL_SUITE><SELF_TYPE>UT_SUITE</SELF_TYPE><OBJECT_OWNER>UT3_TESTER</OBJECT_OWNER><OBJECT_NAME>some_package</OBJECT_NAME><NAME>some_package</NAME><DESCRIPTION>Cool</DESCRIPTION><PATH>some_package</PATH><ROLLBACK_TYPE>0</ROLLBACK_TYPE><DISABLED_FLAG>0</DISABLED_FLAG><LINE_NO>1</LINE_NO><PARSE_TIME>02.04.19 09:40:35.989674</PARSE_TIME><WARNINGS><VARCHAR2>Annotation &quot;--%afterall&quot; cannot be used with &quot;--%test&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.DO_STUFF&quot;, line 5</VARCHAR2><VARCHAR2>Annotation &quot;--%aftereach&quot; cannot be used with &quot;--%test&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.DO_STUFF&quot;, line 4</VARCHAR2><VARCHAR2>Annotation &quot;--%beforeall&quot; cannot be used with &quot;--%test&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.DO_STUFF&quot;, line 2</VARCHAR2><VARCHAR2>Annotation &quot;--%beforeeach&quot; cannot be used with &quot;--%test&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.DO_STUFF&quot;, line 3</VARCHAR2></WARNINGS><ITEMS><UT_SUITE_ITEM><SELF_TYPE>UT_TEST</SELF_TYPE><OBJECT_OWNER>UT3_TESTER</OBJECT_OWNER><OBJECT_NAME>some_package</OBJECT_NAME><NAME>do_stuff</NAME><DESCRIPTION>A test</DESCRIPTION><PATH>some_package.do_stuff</PATH><ROLLBACK_TYPE>0</ROLLBACK_TYPE><DISABLED_FLAG>0</DISABLED_FLAG><LINE_NO>6</LINE_NO><PARSE_TIME>02.04.19 09:40:35.989674</PARSE_TIME><WARNINGS/><BEFORE_EACH_LIST/><BEFORE_TEST_LIST/><ITEM><SELF_TYPE>UT_EXECUTABLE_TEST</SELF_TYPE><EXECUTABLE_TYPE>test</EXECUTABLE_TYPE><OWNER_NAME>UT3_TESTER</OWNER_NAME><OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>do_stuff</PROCEDURE_NAME></ITEM><AFTER_TEST_LIST/><AFTER_EACH_LIST/><ALL_EXPECTATIONS/><FAILED_EXPECTATIONS/></UT_SUITE_ITEM></ITEMS><BEFORE_ALL_LIST/><AFTER_ALL_LIST/></UT_LOGICAL_SUITE>'
      was expected to be like: '%<WARNINGS>%Annotation &quot;--\%beforeall&quot;%line 2%</WARNINGS>%'  , escape '\'
      at "UT3_TESTER.TEST_SUITE_BUILDER", line 611 ut.expect(l_actual).to_be_like('%<WARNINGS>%Annotation &quot;--\%beforeall&quot;%line 2%</WARNINGS>%', '\');
      
       
      Actual: (clob)
          '<UT_LOGICAL_SUITE><SELF_TYPE>UT_SUITE</SELF_TYPE><OBJECT_OWNER>UT3_TESTER</OBJECT_OWNER><OBJECT_NAME>some_package</OBJECT_NAME><NAME>some_package</NAME><DESCRIPTION>Cool</DESCRIPTION><PATH>some_package</PATH><ROLLBACK_TYPE>0</ROLLBACK_TYPE><DISABLED_FLAG>0</DISABLED_FLAG><LINE_NO>1</LINE_NO><PARSE_TIME>02.04.19 09:40:35.989674</PARSE_TIME><WARNINGS><VARCHAR2>Annotation &quot;--%afterall&quot; cannot be used with &quot;--%test&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.DO_STUFF&quot;, line 5</VARCHAR2><VARCHAR2>Annotation &quot;--%aftereach&quot; cannot be used with &quot;--%test&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.DO_STUFF&quot;, line 4</VARCHAR2><VARCHAR2>Annotation &quot;--%beforeall&quot; cannot be used with &quot;--%test&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.DO_STUFF&quot;, line 2</VARCHAR2><VARCHAR2>Annotation &quot;--%beforeeach&quot; cannot be used with &quot;--%test&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.DO_STUFF&quot;, line 3</VARCHAR2></WARNINGS><ITEMS><UT_SUITE_ITEM><SELF_TYPE>UT_TEST</SELF_TYPE><OBJECT_OWNER>UT3_TESTER</OBJECT_OWNER><OBJECT_NAME>some_package</OBJECT_NAME><NAME>do_stuff</NAME><DESCRIPTION>A test</DESCRIPTION><PATH>some_package.do_stuff</PATH><ROLLBACK_TYPE>0</ROLLBACK_TYPE><DISABLED_FLAG>0</DISABLED_FLAG><LINE_NO>6</LINE_NO><PARSE_TIME>02.04.19 09:40:35.989674</PARSE_TIME><WARNINGS/><BEFORE_EACH_LIST/><BEFORE_TEST_LIST/><ITEM><SELF_TYPE>UT_EXECUTABLE_TEST</SELF_TYPE><EXECUTABLE_TYPE>test</EXECUTABLE_TYPE><OWNER_NAME>UT3_TESTER</OWNER_NAME><OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>do_stuff</PROCEDURE_NAME></ITEM><AFTER_TEST_LIST/><AFTER_EACH_LIST/><ALL_EXPECTATIONS/><FAILED_EXPECTATIONS/></UT_SUITE_ITEM></ITEMS><BEFORE_ALL_LIST/><AFTER_ALL_LIST/></UT_LOGICAL_SUITE>'
      was expected to be like: '%<WARNINGS>%Annotation &quot;--\%beforeeach&quot;%line 3%</WARNINGS>%'  , escape '\'
      at "UT3_TESTER.TEST_SUITE_BUILDER", line 612 ut.expect(l_actual).to_be_like('%<WARNINGS>%Annotation &quot;--\%beforeeach&quot;%line 3%</WARNINGS>%', '\');
      
       
      Actual: (clob)
          '<UT_LOGICAL_SUITE><SELF_TYPE>UT_SUITE</SELF_TYPE><OBJECT_OWNER>UT3_TESTER</OBJECT_OWNER><OBJECT_NAME>some_package</OBJECT_NAME><NAME>some_package</NAME><DESCRIPTION>Cool</DESCRIPTION><PATH>some_package</PATH><ROLLBACK_TYPE>0</ROLLBACK_TYPE><DISABLED_FLAG>0</DISABLED_FLAG><LINE_NO>1</LINE_NO><PARSE_TIME>02.04.19 09:40:35.989674</PARSE_TIME><WARNINGS><VARCHAR2>Annotation &quot;--%afterall&quot; cannot be used with &quot;--%test&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.DO_STUFF&quot;, line 5</VARCHAR2><VARCHAR2>Annotation &quot;--%aftereach&quot; cannot be used with &quot;--%test&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.DO_STUFF&quot;, line 4</VARCHAR2><VARCHAR2>Annotation &quot;--%beforeall&quot; cannot be used with &quot;--%test&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.DO_STUFF&quot;, line 2</VARCHAR2><VARCHAR2>Annotation &quot;--%beforeeach&quot; cannot be used with &quot;--%test&quot;. Annotation ignored.
          at &quot;UT3_TESTER.SOME_PACKAGE.DO_STUFF&quot;, line 3</VARCHAR2></WARNINGS><ITEMS><UT_SUITE_ITEM><SELF_TYPE>UT_TEST</SELF_TYPE><OBJECT_OWNER>UT3_TESTER</OBJECT_OWNER><OBJECT_NAME>some_package</OBJECT_NAME><NAME>do_stuff</NAME><DESCRIPTION>A test</DESCRIPTION><PATH>some_package.do_stuff</PATH><ROLLBACK_TYPE>0</ROLLBACK_TYPE><DISABLED_FLAG>0</DISABLED_FLAG><LINE_NO>6</LINE_NO><PARSE_TIME>02.04.19 09:40:35.989674</PARSE_TIME><WARNINGS/><BEFORE_EACH_LIST/><BEFORE_TEST_LIST/><ITEM><SELF_TYPE>UT_EXECUTABLE_TEST</SELF_TYPE><EXECUTABLE_TYPE>test</EXECUTABLE_TYPE><OWNER_NAME>UT3_TESTER</OWNER_NAME><OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>do_stuff</PROCEDURE_NAME></ITEM><AFTER_TEST_LIST/><AFTER_EACH_LIST/><ALL_EXPECTATIONS/><FAILED_EXPECTATIONS/></UT_SUITE_ITEM></ITEMS><BEFORE_ALL_LIST/><AFTER_ALL_LIST/></UT_LOGICAL_SUITE>'
      was expected to be like: '%<WARNINGS>%Annotation &quot;--\%aftereach&quot;%line 4%</WARNINGS>%'  , escape '\'
      at "UT3_TESTER.TEST_SUITE_BUILDER", line 613 ut.expect(l_actual).to_be_like('%<WARNINGS>%Annotation &quot;--\%aftereach&quot;%line 4%</WARNINGS>%', '\');
      
       
Finished in 176.665283 seconds
799 tests, 3 failed, 0 errored, 1 disabled, 0 warning(s)

Provide version info

SQL> declare
  2    l_version varchar2(255);
  3    l_compatibility varchar2(255);
  4  begin
  5    dbms_utility.db_version( l_version, l_compatibility );
  6    dbms_output.put_line( l_version );
  7    dbms_output.put_line( l_compatibility );
  8  end;
  9  /
11.2.0.4.0
11.2.0.4.0


PL/SQL procedure successfully completed.

SQL> select substr(ut.version(),1,60) as ut_version from dual;

UT_VERSION                                                  
------------------------------------------------------------
v3.1.7.2795-develop                                         

SQL> select * from v$version;

BANNER                                                                          
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production    
PL/SQL Release 11.2.0.4.0 - Production                                          
CORE	11.2.0.4.0	Production                                                      
TNS for Linux: Version 11.2.0.4.0 - Production                                  
NLSRTL Version 11.2.0.4.0 - Production                                          

SQL> select * from nls_session_parameters;

PARAMETER                      VALUE                                   
------------------------------ ----------------------------------------
NLS_LANGUAGE                   AMERICAN                                
NLS_TERRITORY                  SWITZERLAND                             
NLS_CURRENCY                   SFr.                                    
NLS_ISO_CURRENCY               SWITZERLAND                             
NLS_NUMERIC_CHARACTERS         .'                                      
NLS_CALENDAR                   GREGORIAN                               
NLS_DATE_FORMAT                DD.MM.RR                                
NLS_DATE_LANGUAGE              AMERICAN                                
NLS_SORT                       BINARY                                  
NLS_TIME_FORMAT                HH24:MI:SSXFF                           
NLS_TIMESTAMP_FORMAT           DD.MM.RR HH24:MI:SSXFF                  
NLS_TIME_TZ_FORMAT             HH24:MI:SSXFF TZR                       
NLS_TIMESTAMP_TZ_FORMAT        DD.MM.RR HH24:MI:SSXFF TZR              
NLS_DUAL_CURRENCY              SF                                      
NLS_COMP                       BINARY                                  
NLS_LENGTH_SEMANTICS           BYTE                                    
NLS_NCHAR_CONV_EXCP            FALSE                                   

17 rows selected. 

SQL> select substr(dbms_utility.port_string,1,60) as port_string from dual;

PORT_STRING                                                 
------------------------------------------------------------
x86_64/Linux 2.4.xx

Information about client software
current utPLSQL-cli

To Reproduce

  1. Install an Oracle Database containing this bug, e.g this
  2. install utPLSQL development environment
  3. run test/install_and_run_tests.sh

Expected behavior
test/install_and_run_tests.sh produces no errors.

Additional context
Further information about the Oracle bug are available on My Oracle Support:

  • Wrong Results With LIKE On CLOB Using ESCAPE Clause (Doc ID 1489922.1)
  • Bug 14402514 : WRONG RESULTS WITH LIKE ON CLOB USING ESCAPE CHARACTER

The recommended workaround is to use REGEXP_LIKE instead of LIKE with an escape character.

Related lines in utPLSQL:

  • 1st failing utPLSQL test
  • 2nd failing utPLSQL test
  • 3rd failing utPLSQL test

All these tests use to_be_like with an escape character. Behind the scenes a LIKE expression with an escape character is used and this leads in these cases to a wrong result.

Activity

  1. PhilippSalvisberg
    self-assigned this
    on Apr 2, 2019
  2. PhilippSalvisberg commented on Apr 2, 2019

    @PhilippSalvisberg
    PhilippSalvisberg
    on Apr 2, 2019
    MemberAuthor
    More actions

    @jgebal suggested in Slack that to_match could be used instead of to_be_like, especially if this bug is hit and document it.

    In this case it is much easier to change the expressions in the test cases than to simulate a like ... escape ... using a regexp_like in a general fashion.

  3. pesse commented on Apr 2, 2019

    @pesse
    pesse
    on Apr 2, 2019
    Member
    More actions

    Seems like a good question/suggestion for a FAQ document, right?

  4. PhilippSalvisberg
    added
    bug
    on Apr 2, 2019
  5. PhilippSalvisberg
    added this to the v3.1.7 milestone on Apr 2, 2019
  6. PhilippSalvisberg
    closed this as completedin 675ba70on Apr 2, 2019
  7. lwasylow
    added a commit that references this issue on Jun 18, 2019

    Release/v3.1.7 (#942)

    1a5c525
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

  • @PhilippSalvisberg
    PhilippSalvisberg

Labels

bug

Type

No type

Projects

No projects

    Milestone

    • v3.1.7

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    You are visitor 01402503 — GeezerVison does not store the pages you look up.
    Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.