RFR: JDK-8242532 convert tests to use Text Blocks

Jonathan Gibbons jonathan.gibbons at oracle.com
Tue May 5 16:07:45 UTC 2020


Hannes,

Thanks for the feedback.

It is easy enough to change the threshhold for wrapping very long 
lines.  I'll look at the other cases you mention, but the more we get 
into style issues like "convert all or convert none", the harder it will 
be to come up with rules for the converter. At some point we'll have to 
declare victory, push the automated conversion, and then fix up other 
cases manually, either in a single separate pass, or individually when 
we next edit the respective files.

The converter program has a length threshhold; in the first iteration, 
there were cases where short strings were being converted and looked 
more clumsy than the original.  This was particularly true in some cases 
with interposed values, like
"start of message " + value + " rest of message".

-- Jon


On 5/5/20 8:55 AM, Hannes Wallnoefer wrote:
> Hi Jon,
>
> I find that using text blocks increase readability greatly, and the patch looks mostly very good to me.
>
> There are a few cases where I am not quite sure about the criteria used to decide whether or not to use text blocks. Nothing too bad but I think these are worth discussing:
>
> TestConstructors.java line 77:
> These are all short strings with a few escapes, it seems strange that one is converted to a text block just because it is a few characters longer. I think these strings should all be converted, or none of them. But I must admit it’s tough to decide where to draw the line.
>
> TestClassCrossReferences.java line starting at line 57:
> I like the wrapping of very long lines into actual „blocks“, but I think the threshold of 240 characters is too large in relation to the 80 characters pieces we chop them into. A line of 200 characters looks a bit like it was forgotten next to a wrapped block. IMO 120 or 160 characters would be a better threshold, i.e. a bit longer than the ideal length but still ok.
> I think my point is: chopped lines are quite easy to recognise as one big line, so no need to avoid them so long.
>
> TestHtmlVersion.java line 566:
> TestIndexInPackageFiles.java line 60:
> Why are these strings not converted? They are rather short, but they consist of 3 lines each and I think they woud benefit from text block representation.
>
> TestSearch.java line 326:
> These strings of Unicode escapes don’t seem to benefit from text block conversion, except for the \n at the end. Is that the reason they were included, or was it because of the unicode escapes?
>
> Hannes
>
>
>> Am 01.05.2020 um 23:13 schrieb Jonathan Gibbons <jonathan.gibbons at oracle.com>:
>>
>> Please review a big, but conceptually simple, change to convert JavaDoc tests to use text blocks where reasonable.
>>
>> This is an "automated" change, albeit using a custom new utility program written for this specific purpose.  There are no manual edits to any test files. There should be no functional change in any test file.
>>
>> The conversion program scans source files looking for candidates to convert into text blocks. Candidates are long strings containing '\n' or '"' characters.
>>
>> Some tests contain very long strings, that previously were manually wrapped at arbitrary points in the string. The converter program wraps these very long strings (> 240 characters) every 80 characters. The fixed length of each "chunk" and trailing '\' helps provide a visual distinctive block of text for the long line. Note, this algorithm assumes there is no risk of breaking low-level Unicode sequences within the strings in the test files.
>>
>> -- Jon
>>
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8242532
>> Webrev: http://cr.openjdk.java.net/~jjg/8242532/webrev.01/
>>
>>


More information about the javadoc-dev mailing list