[rfc] make test ignored or valid only for specific JDK

Jiri Vanek jvanek at redhat.com
Thu Apr 9 07:53:31 UTC 2015


ping?

If the most simple way is the way to go, then - as your initial impl is based on jdk9, so it expect 
one number on each side, then simple extending  for backward ocmpatibility to change 
1.{8,7,6,5}.whatever  to simple number should be right thing to do an easy way to go.

Any more granular thoughts may come in later.

Can I proceed with this patch?


Thank you,
   J.

On 04/02/2015 01:12 PM, Jiri Vanek wrote:
> One more hint.
>
> When I originally read
>
>  > 4. @requires. This is a relatively new feature. You can put a declarative tag in a test description
>  > of the form "@requires expr" where there is a variety of terminals, of which jdk.version is but
>  > one.   So you could add a line like
>  >      @requires  jdk.version <=1.6 || jdk.version >1.7 || jdk.version = "1.4.2"
>  > Not as compact as your proposal, but it exists today.
>
> It seemed to me that full version sort is included.
>
> so eg  1.4.2 < 1.8 < 9 < 9.2
> but also 1.7.0_20 < 1.7.0_40
>
>
> Also my original impression from jep was, that backward compatibility returnnig 1.9.0_X will be
> preserved.
>
> Currently I do not need this, but my colleague mentioned cases where it can be useful.
> Eg nimbus  was introduced in uSomething. So any tests to nimbus would have @requires >=
> 1.7.0_Something (instead of programmed failback "if no nimbus then exit 0" :)
>
> Maybe it is really not needed, but when such an nice feature started to exists, it would be nice to
> have it as capable as possible.
>
> J.
>
> On 04/02/2015 11:19 AM, Jiri Vanek wrote:
>> On 04/01/2015 08:32 PM, Jonathan Gibbons wrote:
>>>
>>> On 04/01/2015 10:34 AM, Jiri Vanek wrote:
>>>>>
>>>>>   * @requires jdk.version <= 7
>>>>> leads to
>>>>> test result: Error. Error evaluating expression: invalid numeric value: 1.8
>>>>>
>>>>> Is it expected bahviour? I tried also with various spaces/nospace....
>>>>>
>>>>>
>>>> ping? Is it expected? If not, I will provide you a fix.
>>>>
>>>> J.
>>>
>>> With hindsight, I can see that this is to be expected, which is not to say that it is good.
>>>
>>> Going forward, I'm not sure what the correct fix will be, especially given the upcoming JEP for
>>> semantic versioning.
>>> http://openjdk.java.net/jeps/223
>>
>> Yes, I'm aware of this jep.
>>>
>>> Before you provide a fix, I'd be interested to hear suggestions on what the fix should be.  One
>>> solution is that we should just allow numbers to be represented as Double as well as Long. A
>>> different solution would be to introduce a "version" type somehow.
>>
>> When I saw the behavior, And realized that jep 233 was target, I was thinking  that
>>  >>>   * @requires jdk.version <= 7
>>  >>> leads to
>>  >>> test result: Error. Error evaluating expression: invalid numeric value: 1.8
>>
>> Is correct way to do. And so, if this Error is hit,  try to remove leading 1. and strip all behind
>> next dot including that dot.
>>
>> For jdk9+ single number is expected.
>>
>> Otherwise the qeustion is a bit different. What is expected from "jdk.version" Only mayor number
>> like 1.4.2, 1.7.0, 1.8.0, 9, 10, or more detailed version?
>>
>> I would vote for that simple approach, but probably only because it suits my needs now.
>> Cases like 1.4.2 in past 1.4.0 may be expected... But still, non of those should causes compilation
>> incompatibility.
>>
>>
>> Thank you very much for cooperation!
>>   J.
>
>



More information about the jtreg-dev mailing list