jdk/test/java/lang/invoke/lambda/LUtils.java
author chegar
Wed, 03 Dec 2014 14:22:58 +0000
changeset 27565 729f9700483a
parent 26635 2038308888ac
permissions -rw-r--r--
8049367: Modular Run-Time Images Reviewed-by: chegar, dfuchs, ihse, joehw, mullan, psandoz, wetmore Contributed-by: alan.bateman@oracle.com, alex.buckley@oracle.com, bradford.wetmore@oracle.com, chris.hegarty@oracle.com, erik.joelsson@oracle.com, james.laskey@oracle.com, jonathan.gibbons@oracle.com, karen.kinnear@oracle.com, magnus.ihse.bursie@oracle.com, mandy.chung@oracle.com, mark.reinhold@oracle.com, paul.sandoz@oracle.com, sundararajan.athijegannathan@oracle.com
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16062
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
     1
/*
23010
6dadb192ad81 8029235: Update copyright year to match last edit in jdk8 jdk repository for 2013
lana
parents: 16062
diff changeset
     2
 * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
16062
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
     4
 *
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
     7
 * published by the Free Software Foundation.
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
     8
 *
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    13
 * accompanied this code).
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    14
 *
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    18
 *
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    21
 * questions.
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    22
 */
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    23
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    24
import java.io.BufferedReader;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    25
import java.io.File;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    26
import java.io.IOException;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    27
import java.io.InputStreamReader;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    28
import java.io.PrintWriter;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    29
import java.io.StringWriter;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    30
import java.nio.charset.Charset;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    31
import java.nio.file.Files;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    32
import java.util.ArrayList;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    33
import java.util.List;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    34
import java.util.Map;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    35
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    36
/*
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    37
 * support infrastructure to invoke a java class from the command line
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    38
 */
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    39
class LUtils {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    40
    static final com.sun.tools.javac.Main javac =
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    41
            new com.sun.tools.javac.Main();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    42
    static final File cwd = new File(".").getAbsoluteFile();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    43
    static final String JAVAHOME = System.getProperty("java.home");
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    44
    static final boolean isWindows =
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    45
            System.getProperty("os.name", "unknown").startsWith("Windows");
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    46
    static final File JAVA_BIN_FILE = new File(JAVAHOME, "bin");
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    47
    static final File JAVA_CMD = new File(JAVA_BIN_FILE,
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    48
            isWindows ? "java.exe" : "java");
27565
729f9700483a 8049367: Modular Run-Time Images
chegar
parents: 26635
diff changeset
    49
    static final File JAR_BIN_FILE = new File(JAVAHOME, "bin");
26635
2038308888ac 8058569: Update java/lang/invoke/lambda tests to eliminate dependency on sun.tools.jar.Main
dholmes
parents: 23010
diff changeset
    50
    static final File JAR_CMD = new File(JAR_BIN_FILE,
2038308888ac 8058569: Update java/lang/invoke/lambda tests to eliminate dependency on sun.tools.jar.Main
dholmes
parents: 23010
diff changeset
    51
            isWindows ? "jar.exe" : "jar");
16062
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    52
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    53
    protected LUtils() {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    54
    }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    55
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    56
    public static void compile(String... args) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    57
        if (javac.compile(args) != 0) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    58
            throw new RuntimeException("compilation fails");
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    59
        }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    60
    }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    61
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    62
    static void createFile(File outFile, List<String> content) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    63
        try {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    64
            Files.write(outFile.getAbsoluteFile().toPath(), content,
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    65
                    Charset.defaultCharset());
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    66
        } catch (IOException ex) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    67
            throw new RuntimeException(ex);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    68
        }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    69
    }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    70
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    71
    static File getClassFile(File javaFile) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    72
        return javaFile.getName().endsWith(".java")
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    73
                ? new File(javaFile.getName().replace(".java", ".class"))
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    74
                : null;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    75
    }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    76
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    77
    static String getSimpleName(File inFile) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    78
        String fname = inFile.getName();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    79
        return fname.substring(0, fname.indexOf("."));
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    80
    }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    81
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    82
    static TestResult doExec(String... cmds) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    83
        return doExec(null, null, cmds);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    84
    }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    85
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    86
    /*
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    87
     * A method which executes a java cmd and returns the results in a container
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    88
     */
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    89
    static TestResult doExec(Map<String, String> envToSet,
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    90
            java.util.Set<String> envToRemove, String... cmds) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    91
        String cmdStr = "";
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    92
        for (String x : cmds) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    93
            cmdStr = cmdStr.concat(x + " ");
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    94
        }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    95
        ProcessBuilder pb = new ProcessBuilder(cmds);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    96
        Map<String, String> env = pb.environment();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    97
        if (envToRemove != null) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    98
            for (String key : envToRemove) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
    99
                env.remove(key);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   100
            }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   101
        }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   102
        if (envToSet != null) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   103
            env.putAll(envToSet);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   104
        }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   105
        BufferedReader rdr = null;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   106
        try {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   107
            List<String> outputList = new ArrayList<>();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   108
            pb.redirectErrorStream(true);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   109
            Process p = pb.start();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   110
            rdr = new BufferedReader(new InputStreamReader(p.getInputStream()));
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   111
            String in = rdr.readLine();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   112
            while (in != null) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   113
                outputList.add(in);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   114
                in = rdr.readLine();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   115
            }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   116
            p.waitFor();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   117
            p.destroy();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   118
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   119
            return new TestResult(cmdStr, p.exitValue(), outputList,
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   120
                    env, new Throwable("current stack of the test"));
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   121
        } catch (Exception ex) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   122
            ex.printStackTrace();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   123
            throw new RuntimeException(ex.getMessage());
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   124
        }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   125
    }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   126
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   127
    static class TestResult {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   128
        String cmd;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   129
        int exitValue;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   130
        List<String> testOutput;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   131
        Map<String, String> env;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   132
        Throwable t;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   133
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   134
        public TestResult(String str, int rv, List<String> oList,
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   135
                Map<String, String> env, Throwable t) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   136
            cmd = str;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   137
            exitValue = rv;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   138
            testOutput = oList;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   139
            this.env = env;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   140
            this.t = t;
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   141
        }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   142
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   143
        void assertZero(String message) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   144
            if (exitValue != 0) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   145
                System.err.println(this);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   146
                throw new RuntimeException(message);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   147
            }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   148
        }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   149
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   150
        @Override
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   151
        public String toString() {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   152
            StringWriter sw = new StringWriter();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   153
            PrintWriter status = new PrintWriter(sw);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   154
            status.println("Cmd: " + cmd);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   155
            status.println("Return code: " + exitValue);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   156
            status.println("Environment variable:");
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   157
            for (String x : env.keySet()) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   158
                status.println("\t" + x + "=" + env.get(x));
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   159
            }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   160
            status.println("Output:");
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   161
            for (String x : testOutput) {
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   162
                status.println("\t" + x);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   163
            }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   164
            status.println("Exception:");
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   165
            status.println(t.getMessage());
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   166
            t.printStackTrace(status);
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   167
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   168
            return sw.getBuffer().toString();
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   169
        }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   170
    }
c64ef2b01401 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
alanb
parents:
diff changeset
   171
}