jtreg test case for failing VM option?

Jonathan Gibbons jonathan.gibbons at oracle.com
Wed Aug 21 13:38:24 PDT 2013


In general, using /fail is a very weak test and can lead to false positives,
since *any* failure could cause the test to appear to succeed. In general,
you'll do better to write a test that explicitly tests for the expected 
failure
mode, and only fails if that is not found.

-- Jon


On 08/21/2013 12:56 PM, Jonathan Gibbons wrote:
> Write a /samevm test to exec a VM and check for the desired failure mode.
>
> -- Jon
>
>
> On 08/21/2013 11:37 AM, Aleksey Shipilev wrote:
>> Hi,
>>
>> I want to write the test for the failing VM option, i.e. write the test
>> for acceptable ranges for particular option. This is the test I have in
>> hand:
>>
>> /*
>>   * @test
>>   * @bug     8006997
>>   * @summary ContendedPaddingWidth should be range-checked
>>   *
>>   * @run main/othervm/fail -XX:-RestrictContended
>> -XX:ContendedPaddingWidth=-1 Options
>>   */
>> public class Options {
>>      public static void main(String[] args) throws Exception {
>>          System.out.println("Test PASSES");
>>      }
>> }
>>
>> I was tempted to think /fail will invert the behavior for the test, and
>> if VM exits with non-zero exit code, it counts the test as passed.
>> However, jtreg marks this test as failed, because:
>>
>> ----------System.err:(4/215)----------
>> ContendedPaddingWidth=-1 must be the between 0 and 8192
>> ContendedPaddingWidth=-1 must be the multiple of 8
>> Error: Could not create the Java Virtual Machine.
>> Error: A fatal exception has occurred. Program will exit.
>> result: Failed. Unexpected exit from test [exit code: 1]
>>
>> Is there a proper way to make the test like this?
>>
>> -Aleksey.
>



More information about the jtreg-use mailing list