Use external classes in @run driver
xxinliu at amazon.com
Sun Jun 14 08:18:20 UTC 2020
I'd like to use some external classes in @run driver. Those classes are “external” in the sense of directory. They locate out of my current test directory.
Eg. “@run driver jdk.test.lib.FileInstaller . .” and the class FileInstaller is here.
$find ../../ -name FileInstaller.java
I am now using the latest jreg(5.2). Doc says that jtreg acts like adding an “@build classname” before @run driver.
About how to discover the classes, quote the corresponding description in Action Types/build (https://openjdk.java.net/jtreg/tag-spec.html#ACTION_TYPES),
To locate a source file for a named class, the harness takes the first matching file found by looking in the test-source directory and then in each appropriate directory of the library path list.
quote end. I don't understand the definition of library path list here. Is it the same thing as @library? I try to tell jtreg that use these two external roots in TEST.ROOT.
# depends on jdk/test
and also, I see that the test does have the annotation @library.
* @library /vmTestbase
* @run driver jdk.test.lib.FileInstaller . .
But it doesn’t work. I still get the error message as follows.
ACTION: build -- Not run. Test running...
REASON: Named class compiled on demand
TIME: .lib.FileInstaller seconds
command: build jdk.test.lib.FileInstaller
reason: Named class compiled on demand
TEST RESULT: Error. can't find jdk.test.lib.FileInstaller in test directory or libraries
Could you educate me the right usage?
Thank you in advance.
More information about the jtreg-use