Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
PhilippSalvisberg opened this issue Jun 3, 2020 · 2 comments · Fixed by #108
Closed

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

PhilippSalvisberg opened this issue Jun 3, 2020 · 2 comments · Fixed by #108
Labels
Milestone

Comments

@PhilippSalvisberg
Copy link
Member

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 .

@PhilippSalvisberg PhilippSalvisberg added this to the v1.2.0 milestone Jun 3, 2020
@jgebal
Copy link
Member

jgebal commented Jun 3, 2020

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

@PhilippSalvisberg
Copy link
Member Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
2 participants