test/runtime/SharedArchiveFile/ArchiveDoesNotExist.java

Fri, 19 Sep 2014 11:12:39 -0400

author
mseledtsov
date
Fri, 19 Sep 2014 11:12:39 -0400
changeset 7202
9c8439756c05
permissions
-rw-r--r--

8052313: Backport CDS tests from JDK-9 to jdk8_u40
Summary: Copied CDS tests from jdk-9 to jdk8u40
Reviewed-by: ccheung, dholmes

     1 /*
     2  * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     8  *
     9  * This code is distributed in the hope that it will be useful, but WITHOUT
    10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    12  * version 2 for more details (a copy is included in the LICENSE file that
    13  * accompanied this code).
    14  *
    15  * You should have received a copy of the GNU General Public License version
    16  * 2 along with this work; if not, write to the Free Software Foundation,
    17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    18  *
    19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    22  */
    24 /*
    25  * @test ArchiveDoesNotExist
    26  * @summary Test how VM handles "file does not exist" situation while
    27  *          attempting to use CDS archive. JVM should exit gracefully
    28  *          when sharing mode is ON, and continue w/o sharing if sharing
    29  *          mode is AUTO.
    30  * @library /testlibrary
    31  * @run main ArchiveDoesNotExist
    32  */
    34 import com.oracle.java.testlibrary.*;
    35 import java.io.File;
    37 public class ArchiveDoesNotExist {
    38     public static void main(String[] args) throws Exception {
    39         String fileName = "test.jsa";
    41         File cdsFile = new File(fileName);
    42         if (cdsFile.exists())
    43             throw new RuntimeException("Test error: cds file already exists");
    45         // Sharing: on
    46         ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
    47            "-XX:+UnlockDiagnosticVMOptions",
    48            "-XX:SharedArchiveFile=./" + fileName,
    49            "-Xshare:on",
    50            "-version");
    52         OutputAnalyzer output = new OutputAnalyzer(pb.start());
    53         output.shouldContain("Specified shared archive not found");
    54         output.shouldHaveExitValue(1);
    56         // Sharing: auto
    57         pb = ProcessTools.createJavaProcessBuilder(
    58            "-XX:+UnlockDiagnosticVMOptions",
    59            "-XX:SharedArchiveFile=./" + fileName,
    60            "-Xshare:auto",
    61            "-version");
    63         output = new OutputAnalyzer(pb.start());
    64         output.shouldMatch("(java|openjdk) version");
    65         output.shouldNotContain("sharing");
    66         output.shouldHaveExitValue(0);
    67     }
    68 }

mercurial