Skip to content

Crash of Realtime Report when server output contains <![CDATA[...]]> #107

Closed

Description

@PhilippSalvisberg

When I run the realtime reporter via ut3_tester_helper for ut3$user# and the test core.check_fail_escape.fail_miserably exists the realtime reporter crashes while processing the following post-test event:

<event type="post-test">
  <test id="core.check_fail_escape.fail_miserably">
    <testNumber>1</testNumber>
    <totalNumberOfTests>673</totalNumberOfTests>
    <startTime>2020-06-02T23:10:03.579607</startTime>
    <endTime>2020-06-02T23:10:03.591826</endTime>
    <executionTime>.012219</executionTime>
    <counter>
      <disabled>0</disabled>
      <success>1</success>
      <failure>0</failure>
      <error>0</error>
      <warning>0</warning>
    </counter>
    <serverOutput><![CDATA[FAILURE
  Actual: 'test' (varchar2) was expected to equal: '<![CDATA[some stuff]]>' (varchar2)
  at "UT3$USER#.CHECK_FAIL_ESCAPE.FAIL_MISERABLY", line 4 ut3_develop.ut.expect('test').to_equal('<![CDATA[some stuff]]>');
]]></serverOutput>
  </test>
</event>

The realtime reporter gets stuck. It looks like this "forever" (I expect it to time out after 4h, but not checked ;-) ). Not possible to stop/abort the process:

image

The reason is clear. Nested CDATA sections are not supported by XML. It is the reponsibility of the realtime reporter in the utPLSQL framework to produce a valid XML. However, the SQL Developer extension must still be capable to process data produced by utPLSQL 3.1.4 .. 3.1.10 (or so). Hence I suggest to implement some pre-processing to fix such wrong XML.

This link might be helpful: https://stackoverflow.com/questions/12860754/using-cdata-inside-another-cdata .

Activity

  1. added this to the v1.2.0 milestone on Jun 3, 2020
  2. jgebal commented on Jun 3, 2020

    @jgebal
    Member

    I think we had it solved in some other XML repotrers that use CDATA already.

  3. PhilippSalvisberg commented on Jun 4, 2020

    @PhilippSalvisberg
    MemberAuthor

    Yes, you're right @jgebal. Thinking about it, it would be better to just ignore invalid XML messages in the SQL Developer extension (continue processing the other messages) and fix the problem only in the utPLSQL framework.

  4. added a commit that references this issue on Jun 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions