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