RFR: 8251999: remove usage of PropertyResolvingWrapper in vmTestbase/nsk/aod
Aleksey Shipilev
shade at openjdk.java.net
Thu Sep 24 06:10:17 UTC 2020
On Thu, 24 Sep 2020 00:38:32 GMT, Igor Ignatyev <iignatyev at openjdk.org> wrote:
>> test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachineDescriptor/VirtualMachineDescriptor01/VirtualMachineDescriptor01.java
>> line 112:
>>> 110:
>>> 111: TestUtils.assertEquals(targetVMDesc.hashCode(), targetVMDesc2.hashCode(),
>>> 112: "VirtualMachineDescriptor.hashCode() returns different values for '" + targetVMDesc + "' and
>>> '" + targetVMDesc2 + "'");
>>
>> Does `TestUtils.assertEquals` print out actual/expected value as well? If not, dropping `hashCode` printout here loses
>> debugging data.
>
> it does for both a reference type and `int`, [TestUtils.java]:
> public static void assertEquals(int i1, int i2) {
> if (i1 != i2) {
> throw new TestFailure(
> format("Check failed: %d != %d", i1, i2));
> }
> }
>
> public static void assertEquals(Object obj1, Object obj2, Object errorMessage) {
> assertTrue(obj1.equals(obj2), new LazyFormatString("%s: [%s] != [%s]", errorMessage, obj1, obj2));
> }
> [TestUtils.java]:
> https://github.com/openjdk/jdk/blob/master/test/hotspot/jtreg/vmTestbase/nsk/share/test/TestUtils.java#L70
OK, cool.
>> test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine03/VirtualMachine03.java line 78:
>>
>>> 76: } finally {
>>> 77: vm2.detach();
>>> 78: }
>>
>> Is nesting needed here because `vm1`/`vm2` can be `null` at `finally`? Then it is cleaner IMO to just do:
>>
>> } finally {
>> if (vm1 != null) vm1.detach();
>> if (vm2 != null) vm2.detach();
>> }
>
> nested try-finally isn't semantically equivalent with the snippet you suggested, `VirtualMachine::detach` can throw
> IOE, so I'd prefer to two finally blocks to guarantee that we at least to detach from both vm-s.
Okay then.
-------------
PR: https://git.openjdk.java.net/jdk/pull/311
More information about the serviceability-dev
mailing list