test/hotspot/jtreg/compiler/aot/fingerprint/CDSDumper.java
author jiangli
Mon, 30 Apr 2018 16:59:05 -0400
changeset 49931 840e26123940
parent 49847 f22c0b4caad7
permissions -rw-r--r--
8193213: Make the UseAppCDS option obsolete. 8182731: Odd handling of -XX:-UseAppCDS and -XX:SharedArchiveFile. Summary: Application class data sharing is enabled without -XX:+UseAppCDS. SharedArchiveFile is now a product flag. Reviewed-by: dholmes, ihse, erikj, ccheung
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49367
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
     1
/*
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
     2
 * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
     4
 *
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
     7
 * published by the Free Software Foundation.
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
     8
 *
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    13
 * accompanied this code).
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    14
 *
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    18
 *
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    21
 * questions.
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    22
 */
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    23
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    24
package compiler.aot.fingerprint;
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    25
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    26
import java.io.File;
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    27
import java.io.FileOutputStream;
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    28
import java.io.PrintStream;
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    29
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    30
import jdk.test.lib.process.OutputAnalyzer;
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    31
import jdk.test.lib.process.ProcessTools;
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    32
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    33
// Usage:
49847
f22c0b4caad7 8201850: [AOT] vm crash when run test compiler/aot/fingerprint/SelfChangedCDS.java
kvn
parents: 49367
diff changeset
    34
// java CDSDumper <classpath> <classlist> <archive> <heapsize> <class1> <class2> ...
49367
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    35
public class CDSDumper {
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    36
    public static void main(String[] args) throws Exception {
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    37
        String classpath = args[0];
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    38
        String classlist = args[1];
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    39
        String archive = args[2];
49847
f22c0b4caad7 8201850: [AOT] vm crash when run test compiler/aot/fingerprint/SelfChangedCDS.java
kvn
parents: 49367
diff changeset
    40
        String heapsize = args[3];
49367
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    41
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    42
        // Prepare the classlist
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    43
        FileOutputStream fos = new FileOutputStream(classlist);
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    44
        PrintStream ps = new PrintStream(fos);
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    45
49847
f22c0b4caad7 8201850: [AOT] vm crash when run test compiler/aot/fingerprint/SelfChangedCDS.java
kvn
parents: 49367
diff changeset
    46
        for (int i=4; i<args.length; i++) {
49367
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    47
            ps.println(args[i].replace('.', '/'));
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    48
        }
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    49
        ps.close();
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    50
        fos.close();
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    51
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    52
        // Dump the archive
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    53
        ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
49847
f22c0b4caad7 8201850: [AOT] vm crash when run test compiler/aot/fingerprint/SelfChangedCDS.java
kvn
parents: 49367
diff changeset
    54
            heapsize,
49367
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    55
            "-XX:+IgnoreUnrecognizedVMOptions",
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    56
            "-cp", classpath,
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    57
            "-XX:ExtraSharedClassListFile=" + classlist,
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    58
            "-XX:SharedArchiveFile=" + archive,
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    59
            "-Xshare:dump",
49847
f22c0b4caad7 8201850: [AOT] vm crash when run test compiler/aot/fingerprint/SelfChangedCDS.java
kvn
parents: 49367
diff changeset
    60
            "-Xlog:gc+heap+coops",
49367
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    61
            "-Xlog:cds");
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    62
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    63
        OutputAnalyzer output = new OutputAnalyzer(pb.start());
49847
f22c0b4caad7 8201850: [AOT] vm crash when run test compiler/aot/fingerprint/SelfChangedCDS.java
kvn
parents: 49367
diff changeset
    64
        System.out.println("[stdout = " + output.getStdout() + "]");
f22c0b4caad7 8201850: [AOT] vm crash when run test compiler/aot/fingerprint/SelfChangedCDS.java
kvn
parents: 49367
diff changeset
    65
        System.out.println("[stderr = " + output.getStderr() + "]");
49367
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    66
        output.shouldContain("Loading classes to share");
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    67
        output.shouldHaveExitValue(0);
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    68
    }
6a532ba7d9e9 8198591: compiler/aot/fingerprint tests should be moved to open
kvn
parents:
diff changeset
    69
}