001: /*
002: *
003: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
004: *
005: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
006: *
007: * The contents of this file are subject to the terms of either the GNU
008: * General Public License Version 2 only ("GPL") or the Common
009: * Development and Distribution License("CDDL") (collectively, the
010: * "License"). You may not use this file except in compliance with the
011: * License. You can obtain a copy of the License at
012: * http://www.netbeans.org/cddl-gplv2.html
013: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
014: * specific language governing permissions and limitations under the
015: * License. When distributing the software, include this License Header
016: * Notice in each file and include the License file at
017: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
018: * particular file as subject to the "Classpath" exception as provided
019: * by Sun in the GPL Version 2 section of the License file that
020: * accompanied this code. If applicable, add the following below the
021: * License Header, with the fields enclosed by brackets [] replaced by
022: * your own identifying information:
023: * "Portions Copyrighted [year] [name of copyright owner]"
024: *
025: * Contributor(s):
026: *
027: * The Original Software is NetBeans. The Initial Developer of the Original
028: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
029: * Microsystems, Inc. All Rights Reserved.
030: *
031: * If you wish your version of this file to be governed by only the CDDL
032: * or only the GPL Version 2, indicate your decision by adding
033: * "[Contributor] elects to include this software in this distribution
034: * under the [CDDL or GPL Version 2] license." If you do not indicate a
035: * single choice of license, a recipient has the option to distribute
036: * your version of this file under either the CDDL, the GPL Version 2 or
037: * to extend the choice of license to its licensees as provided above.
038: * However, if you add GPL Version 2 code and therefore, elected the GPL
039: * Version 2 license, then the option applies only if the new code is
040: * made subject to such option by the copyright holder.
041: */
042: package org.netbeans.xtest.plugin.jvm;
043:
044: import java.io.File;
045: import java.io.IOException;
046: import org.netbeans.junit.NbTestCase;
047: import org.netbeans.junit.NbTestSuite;
048: import org.netbeans.xtest.pe.xmlbeans.TestBag;
049: import org.netbeans.xtest.pe.xmlbeans.TestRun;
050: import org.netbeans.xtest.pe.xmlbeans.UnitTestCase;
051: import org.netbeans.xtest.pe.xmlbeans.UnitTestSuite;
052: import org.netbeans.xtest.pe.xmlbeans.XTestResultsReport;
053:
054: /** Check test results of JVMExecuteWatchdogTest. It should be killed by watchdog.
055: * @author Jiri Skrivanek
056: */
057: public class CheckJVMExecuteWatchdogTest extends NbTestCase {
058:
059: /** Create instance of test.
060: * @param testName name of test case
061: */
062: public CheckJVMExecuteWatchdogTest(String testName) {
063: super (testName);
064: }
065:
066: /** Create test suite.
067: * @return test suite.
068: */
069: public static NbTestSuite suite() {
070: NbTestSuite suite = new NbTestSuite(
071: CheckJVMExecuteWatchdogTest.class);
072: return suite;
073: }
074:
075: /** Set up. */
076: public void setUp() {
077: System.out.println("######## " + getName() + " #######");
078: }
079:
080: /** Check number of tests with proper status.
081: * @throws IOException
082: * @throws ClassNotFoundException
083: */
084: public void testWatchdog() throws IOException,
085: ClassNotFoundException {
086: log("xtest.workdir=" + System.getProperty("xtest.workdir"));
087: log("xtest.instance.results="
088: + System.getProperty("xtest.instance.results"));
089: File testFailuresFile = new File(System
090: .getProperty("xtest.instance.results"),
091: "xmlresults/testreport-failures.xml");
092: assertTrue(
093: "Tests executed using instance should fail because watchdog should kill it and file should exist: "
094: + testFailuresFile, testFailuresFile.exists());
095: XTestResultsReport report = XTestResultsReport
096: .loadFromFile(testFailuresFile);
097: TestRun testrun = report.xmlel_TestRun[0];
098: // label used in org.netbeans.xtest.NbExecutor
099: String label = "JVM Execute Watchdog";
100: TestBag[] testBags = testrun.xmlel_TestBag;
101: TestBag testBag = null;
102: for (int i = 0; i < testBags.length; i++) {
103: log("TestBag name=" + testBags[i].getName());
104: if (label.equals(testBags[i].getName())) {
105: testBag = testBags[i];
106: break;
107: }
108: }
109: assertNotNull("Testbag '" + label + "' should exist.", testBag);
110: UnitTestSuite unitTestSuite = testBag.xmlel_UnitTestSuite[0];
111: UnitTestCase unitTestCase = unitTestSuite.xmlel_UnitTestCase[0];
112: label = "org.netbeans.xtest.plugin.jvm.JVMExecuteWatchdogTest";
113: assertEquals("TestSuite '" + label + "' should exist.", label,
114: unitTestSuite.getName());
115: label = "testWatchdog";
116: assertEquals("TestCase '" + label + "' should exist.", label,
117: unitTestCase.getName());
118: assertEquals("TestCase '" + label
119: + "' should have error results.",
120: UnitTestCase.TEST_UNKNOWN, unitTestCase.getResult());
121: assertEquals("TestCase '" + label
122: + "' should have Did not finish. message.",
123: "Did not finish.", unitTestCase.getMessage());
124: }
125: }
|