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 -}