< prev index next >
test/hotspot/jtreg/runtime/appcds/DirClasspathTest.java
Print this page
@@ -22,11 +22,11 @@
*
*/
/*
* @test
- * @summary AppCDS handling of directories in -cp
+ * @summary Handling of directories in -cp is based on the classlist
* @requires vm.cds
* @library /test/lib
* @run main DirClasspathTest
*/
@@ -43,14 +43,18 @@
public static void main(String[] args) throws Exception {
File dir = new File(System.getProperty("user.dir"));
File emptydir = new File(dir, "emptydir");
emptydir.mkdir();
+ /////////////////////////////////////////////////////////////////
+ // The classlist only contains boot class in following test cases
+ /////////////////////////////////////////////////////////////////
+ String bootClassList[] = {"java/lang/Object"};
+
// Empty dir in -cp: should be OK
OutputAnalyzer output;
- String classList[] = {"java/lang/Object"};
- output = TestCommon.dump(emptydir.getPath(), classList, "-Xlog:class+path=info");
+ output = TestCommon.dump(emptydir.getPath(), bootClassList, "-Xlog:class+path=info");
TestCommon.checkDump(output);
// Long path to empty dir in -cp: should be OK
Path classDir = Paths.get(System.getProperty("test.classes"));
Path destDir = classDir;
@@ -63,21 +67,34 @@
}
File longDir = destDir.toFile();
longDir.mkdir();
File subDir = new File(longDir, "subdir");
subDir.mkdir();
- output = TestCommon.dump(subDir.getPath(), classList, "-Xlog:class+path=info");
+ output = TestCommon.dump(subDir.getPath(), bootClassList, "-Xlog:class+path=info");
TestCommon.checkDump(output);
- // Non-empty dir in -cp: should fail
+ // Non-empty dir in -cp: should be OK
// <dir> is not empty because it has at least one subdirectory, i.e., <emptydir>
- output = TestCommon.dump(dir.getPath(), classList, "-Xlog:class+path=info");
- output.shouldNotHaveExitValue(0);
- output.shouldContain("CDS allows only empty directories in archived classpaths");
+ output = TestCommon.dump(dir.getPath(), bootClassList, "-Xlog:class+path=info");
+ TestCommon.checkDump(output);
- // Long path to non-empty dir in -cp: should fail
+ // Long path to non-empty dir in -cp: should be OK
// <dir> is not empty because it has at least one subdirectory, i.e., <emptydir>
- output = TestCommon.dump(longDir.getPath(), classList, "-Xlog:class+path=info");
+ output = TestCommon.dump(longDir.getPath(), bootClassList, "-Xlog:class+path=info");
+ TestCommon.checkDump(output);
+
+ /////////////////////////////////////////////////////////////////
+ // The classlist contains non-boot class in following test cases
+ /////////////////////////////////////////////////////////////////
+ String appClassList[] = {"java/lang/Object", "com/sun/tools/javac/Main"};
+
+ // Non-empty dir in -cp: should report error
+ output = TestCommon.dump(dir.getPath(), appClassList, "-Xlog:class+path=info");
+ output.shouldNotHaveExitValue(0);
+ output.shouldContain("Cannot have non-empty directory in paths");
+
+ // Long path to non-empty dir in -cp: should report error
+ output = TestCommon.dump(longDir.getPath(), appClassList, "-Xlog:class+path=info");
output.shouldNotHaveExitValue(0);
- output.shouldContain("CDS allows only empty directories in archived classpaths");
+ output.shouldContain("Cannot have non-empty directory in paths");
}
}
< prev index next >