jtreg adds additional backslashes in Strings that are written to System.out/err?
Jonathan Gibbons
jonathan.gibbons at oracle.com
Wed Sep 15 14:52:58 UTC 2021
The FAQ already covers this to some extent:
https://openjdk.java.net/jtreg/faq.html#how-do-i-view-what-a-test-sends-to-system.out-or-system.err
I'll still consider adding more info.
-- Jon
On 9/15/21 7:35 AM, Jonathan Gibbons wrote:
> Separate from fixing/improving jtreg -show:<name> option and its
> command-line help (CODETOOLS-7903024), given the recent interest in
> this issue, I'll add info to the FAQ.
>
> -- Jon
>
>
> On 9/15/21 6:15 AM, Pavel Rappo wrote:
>> David Holmes pointed me to this thread after I started a discussion
>> elsewhere. Coincidentally, I stumbled upon the described jtreg
>> behavior myself yesterday. It took me a while to figure out what was
>> happening. When I described my finding to a colleague, Jonathan
>> Gibbons, he suggested that if required I could read `.jtr` files
>> using a (lesser-known?) option called `show`. This option's
>> description is buried in help output and is not particularly clear:
>> (Care to file a bug to improve that? File a JBS issue against
>> Project=CODETOOLS and Subcomponent=jtreg.)
>>
>> $ jtreg --help General Options | grep -A 3 'show:<sec'
>> -show:<section-name>
>> Show information from a section in the
>> results file for a
>> test. For example, -show:rerun
>> -showGroups Show the expansion (to files and
>> directories) of the groups
>> As far as I understand, when run with this option, jtreg
>> does not run your test. Instead, it reads the specified section from
>> the existing `.jtr` file and outputs the same way it would otherwise
>> appear on the console: no escapes. You can specify System.out or
>> System.err as such a section.
>>
>> Now, here are some details. JTHarness, which is used by jtreg,
>> encodes special symbols it encounters in standard streams. While CR,
>> LR and TAB are output as they are, \ is output as \\ and the rest of
>> the escape sequences are output using the \uxxxx notation. The code I
>> saw suggests that it is not a bug and is done on purpose. Anyhow,
>> this is how output is stored in `.jtr` files. My understanding is
>> that jtreg knows about that and recovers original output from `.jtr`
>> files on demand.
>>
>> -Pavel
>>
More information about the jtreg-use
mailing list