RFR: 8252003: remove usage of PropertyResolvingWrapper in vmTestbase/nsk/jvmti
Igor Ignatyev
iignatyev at openjdk.java.net
Wed Sep 30 18:14:56 UTC 2020
On Wed, 30 Sep 2020 17:51:20 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:
>> `jvmti_tools.cpp` wasn't changed by this PR, `jvmti_tools.cpp` always accepted ` `, `~` and/or `,` as delimiters[[*]].
>> as jtreg splits arguments by space symbol, we can't use ` ` in `-agentlib:`, so we had to change the delimiter used
>> there to either `,` or `~`, `nsk/share/jvmti/ArgumentHandler` takes these options (via `getAgentOptionsString`) and
>> then parse in `parseOptionString`. but `parseOptionString` was using `StringTokenizer` w/ default delimiters, ie `
>> \t\n\r\f`, and as a result it wasn't splitting options correctly after we changed the delimiter used in tests'
>> `-agentlib`. in other words, this change is just fixing an old bug which we didn't care before as we always used ` ` in
>> this agent's options. [*]:
>> https://github.com/openjdk/jdk/blob/master/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_tools.cpp#L224
>
> I guess a better question would be is where is ~ being used in the arguments?
not in the tests which use `nsk/share/jvmti/ArgumentHandler`, otherwise, we would see these tests failing as wouldn't
parse them correctly. quick grepping showed that that
* `~` is used in `vm/mlvm/*/jvmti` tests, but these tests don't use `nsk/share/jvmti/ArgumentHandler`, they use
`nsk/share/ArgumentParser/IgnoreUnknownArgumentParser` which doesn't parse agent options string at all
* `,` has been used in `nsk/jvmti/scenarios/contention/TC05/tc05t001/` before this patch, and the test wasn't getting
options right, it was setting `verbose,waittime` equal to `5`, instead of `verbose` to an empty string and `waittime`
to `5`.
-------------
PR: https://git.openjdk.java.net/jdk/pull/370
More information about the serviceability-dev
mailing list