1 5 package polyglot.pth; 6 7 import java.io.PrintStream ; 8 import java.util.Iterator ; 9 10 import polyglot.util.ErrorQueue; 11 12 15 public class StdOutputController extends OutputController{ 16 public StdOutputController(PrintStream out) { 17 super(out); 18 } 19 20 protected void startScriptTestSuite(ScriptTestSuite sts) { 21 out.println("Test script " + sts.getName()); 22 } 23 protected void finishScriptTestSuite(ScriptTestSuite sts) { 24 if (!sts.success() && sts.failureMessage != null) { 25 out.println(sts.failureMessage); 26 } 27 28 out.println(sts.getName() + ": " + 29 sts.getSuccesfulTestCount() + " out of " + sts.getTotalTestCount() + 30 " tests succeeded."); 31 } 32 33 protected void startSourceFileTest(SourceFileTest sft) { 34 out.print(" " + sft.getName() + ": "); 35 } 36 37 protected void finishSourceFileTest(SourceFileTest sft, ErrorQueue eq) { 38 if (sft.success()) { 39 out.println("OK"); 40 } 41 else if (sft.getFailureMessage() != null) { 42 out.println(sft.getFailureMessage()); 43 } 44 else { 45 out.println("Failed (no message)"); 46 } 47 } 48 49 50 public void displayTestSuiteResults(String suiteName, TestSuite ts) { 51 TestSuiteResult tsr = ts.getTestSuiteResult(); 52 53 if (tsr == null || tsr.testResults.isEmpty()) { 54 out.println("No test results for " + suiteName); 55 return; 56 } 57 58 out.print("Test script \"" + tsr.testName + "\""); 59 out.println(" Last run: " + getDateDisplay(tsr.dateTestRun)); 60 out.println(" Contains tests:"); 61 62 int total = 0; 63 int grandTotal = 0; 64 int lastSuccess = 0; 65 int neverRun = 0; 66 int neverSuccess = 0; 67 for (Iterator iter = ts.getTests().iterator(); iter.hasNext(); ) { 68 Test t = (Test)iter.next(); 69 String testName = t.getName(); 70 TestResult tr = (TestResult)tsr.testResults.get(testName); 71 if (TestSuite.executeTest(testName, tr)) { 72 displayTestResults(tr, testName); 73 74 total++; 75 if (tr != null && tr.dateLastSuccess != null && tr.dateLastSuccess.equals(tr.dateTestRun)) { 76 lastSuccess++; 77 } 78 if (tr == null || tr.dateTestRun == null) { 79 neverRun++; 80 } 81 if (tr == null || tr.dateLastSuccess == null) { 82 neverSuccess++; 83 } 84 } 85 grandTotal++; 86 } 87 out.print("Total tests displayed: " + total); 88 if (total != grandTotal) { 89 out.print(" (out of " + grandTotal + " in script)"); 90 } 91 out.println(); 92 out.println(" Succeeded last run: " + lastSuccess); 93 out.println(" Never run : " + neverRun); 94 out.println(" Never succeeded : " + neverSuccess); 95 } 96 97 private static final int TEST_NAME_COLUMN_WIDTH = 30; 98 public void displayTestResults(TestResult tr, String testName) { 99 StringBuffer sb = new StringBuffer (); 100 sb.append(" "); 101 sb.append(testName); 102 while (sb.length() < TEST_NAME_COLUMN_WIDTH) { 103 sb.append(' '); 104 } 105 sb.append(" run "); 106 sb.append(getDateDisplay(tr==null?null:tr.dateTestRun)); 107 sb.append("; success "); 108 sb.append(getDateDisplay(tr==null?null:tr.dateLastSuccess)); 109 out.println(sb.toString()); 110 } 111 } 112 | Popular Tags |