test/testlibrary/OutputAnalyzerReportingTest.java

changeset 5782
5b1191bf0b4b
parent 5781
899ecf76b570
child 5783
c1fbf21c7397
     1.1 --- a/test/testlibrary/OutputAnalyzerReportingTest.java	Wed Sep 25 13:58:13 2013 +0200
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,124 +0,0 @@
     1.4 -/*
     1.5 - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
     1.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.7 - *
     1.8 - * This code is free software; you can redistribute it and/or modify it
     1.9 - * under the terms of the GNU General Public License version 2 only, as
    1.10 - * published by the Free Software Foundation.
    1.11 - *
    1.12 - * This code is distributed in the hope that it will be useful, but WITHOUT
    1.13 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    1.14 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    1.15 - * version 2 for more details (a copy is included in the LICENSE file that
    1.16 - * accompanied this code).
    1.17 - *
    1.18 - * You should have received a copy of the GNU General Public License version
    1.19 - * 2 along with this work; if not, write to the Free Software Foundation,
    1.20 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    1.21 - *
    1.22 - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    1.23 - * or visit www.oracle.com if you need additional information or have any
    1.24 - * questions.
    1.25 - */
    1.26 -
    1.27 -
    1.28 -/*
    1.29 - * @test
    1.30 - * @summary Test the OutputAnalyzer reporting functionality,
    1.31 - *     such as printing additional diagnostic info
    1.32 - *     (exit code, stdout, stderr, command line, etc.)
    1.33 - * @library /testlibrary
    1.34 - */
    1.35 -
    1.36 -import java.io.ByteArrayOutputStream;
    1.37 -import java.io.PrintStream;
    1.38 -
    1.39 -import com.oracle.java.testlibrary.OutputAnalyzer;
    1.40 -import com.oracle.java.testlibrary.ProcessTools;
    1.41 -
    1.42 -
    1.43 -public class OutputAnalyzerReportingTest {
    1.44 -
    1.45 -    public static void main(String[] args) throws Exception {
    1.46 -        // Create the output analyzer under test
    1.47 -        String stdout = "aaaaaa";
    1.48 -        String stderr = "bbbbbb";
    1.49 -        OutputAnalyzer output = new OutputAnalyzer(stdout, stderr);
    1.50 -
    1.51 -        // Expected summary values should be the same for all cases,
    1.52 -        // since the outputAnalyzer object is the same
    1.53 -        String expectedExitValue = "-1";
    1.54 -        String expectedSummary =
    1.55 -                " stdout: [" + stdout + "];\n" +
    1.56 -                " stderr: [" + stderr + "]\n" +
    1.57 -                " exitValue = " + expectedExitValue + "\n";
    1.58 -
    1.59 -
    1.60 -        DiagnosticSummaryTestRunner testRunner =
    1.61 -                new DiagnosticSummaryTestRunner();
    1.62 -
    1.63 -        // should have exit value
    1.64 -        testRunner.init(expectedSummary);
    1.65 -        int unexpectedExitValue = 2;
    1.66 -        try {
    1.67 -            output.shouldHaveExitValue(unexpectedExitValue);
    1.68 -        } catch (RuntimeException e) { }
    1.69 -        testRunner.closeAndCheckResults();
    1.70 -
    1.71 -        // should not contain
    1.72 -        testRunner.init(expectedSummary);
    1.73 -        try {
    1.74 -            output.shouldNotContain(stdout);
    1.75 -        } catch (RuntimeException e) { }
    1.76 -        testRunner.closeAndCheckResults();
    1.77 -
    1.78 -        // should contain
    1.79 -        testRunner.init(expectedSummary);
    1.80 -        try {
    1.81 -            output.shouldContain("unexpected-stuff");
    1.82 -        } catch (RuntimeException e) { }
    1.83 -        testRunner.closeAndCheckResults();
    1.84 -
    1.85 -        // should not match
    1.86 -        testRunner.init(expectedSummary);
    1.87 -        try {
    1.88 -            output.shouldNotMatch("[a]");
    1.89 -        } catch (RuntimeException e) { }
    1.90 -        testRunner.closeAndCheckResults();
    1.91 -
    1.92 -        // should match
    1.93 -        testRunner.init(expectedSummary);
    1.94 -        try {
    1.95 -            output.shouldMatch("[qwerty]");
    1.96 -        } catch (RuntimeException e) { }
    1.97 -        testRunner.closeAndCheckResults();
    1.98 -
    1.99 -    }
   1.100 -
   1.101 -    private static class DiagnosticSummaryTestRunner {
   1.102 -        private ByteArrayOutputStream byteStream =
   1.103 -                new ByteArrayOutputStream(10000);
   1.104 -
   1.105 -        private String expectedSummary = "";
   1.106 -        private PrintStream errStream;
   1.107 -
   1.108 -
   1.109 -        public void init(String expectedSummary) {
   1.110 -            this.expectedSummary = expectedSummary;
   1.111 -            byteStream.reset();
   1.112 -            errStream = new PrintStream(byteStream);
   1.113 -            System.setErr(errStream);
   1.114 -        }
   1.115 -
   1.116 -        public void closeAndCheckResults() {
   1.117 -            // check results
   1.118 -            errStream.close();
   1.119 -            String stdErrStr = byteStream.toString();
   1.120 -            if (!stdErrStr.contains(expectedSummary)) {
   1.121 -                throw new RuntimeException("The output does not contain "
   1.122 -                    + "the diagnostic message, or the message is incorrect");
   1.123 -            }
   1.124 -        }
   1.125 -    }
   1.126 -
   1.127 -}

mercurial