1*ef39d40dSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*ef39d40dSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*ef39d40dSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*ef39d40dSAndrew Rist * distributed with this work for additional information 6*ef39d40dSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*ef39d40dSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*ef39d40dSAndrew Rist * "License"); you may not use this file except in compliance 9*ef39d40dSAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*ef39d40dSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*ef39d40dSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*ef39d40dSAndrew Rist * software distributed under the License is distributed on an 15*ef39d40dSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*ef39d40dSAndrew Rist * KIND, either express or implied. See the License for the 17*ef39d40dSAndrew Rist * specific language governing permissions and limitations 18*ef39d40dSAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*ef39d40dSAndrew Rist *************************************************************/ 21*ef39d40dSAndrew Rist 22*ef39d40dSAndrew Rist 23cdf0e10cSrcweir package stats; 24cdf0e10cSrcweir 25cdf0e10cSrcweir import java.util.Vector; 26cdf0e10cSrcweir import share.DescEntry; 27cdf0e10cSrcweir 28cdf0e10cSrcweir /** 29cdf0e10cSrcweir * 30cdf0e10cSrcweir * this class summs up the results of the subentries of a given DescEntry<br> 31cdf0e10cSrcweir * and fills the subentries in cases of SKIPPED states 32cdf0e10cSrcweir */ 33cdf0e10cSrcweir public class Summarizer 34cdf0e10cSrcweir { 35cdf0e10cSrcweir 36cdf0e10cSrcweir /** 37cdf0e10cSrcweir * 38cdf0e10cSrcweir * gets the state for a SuperEntry according to its subentries 39cdf0e10cSrcweir * @param entry 40cdf0e10cSrcweir */ summarizeUp(DescEntry entry)41cdf0e10cSrcweir public void summarizeUp(DescEntry entry) 42cdf0e10cSrcweir { 43cdf0e10cSrcweir if ((entry.State != null) && !entry.State.equals("UNKNOWN")) 44cdf0e10cSrcweir { 45cdf0e10cSrcweir return; 46cdf0e10cSrcweir } 47cdf0e10cSrcweir int count = entry.SubEntryCount; 48cdf0e10cSrcweir int knownIssues = 0; 49cdf0e10cSrcweir Vector failures = new Vector(); 50cdf0e10cSrcweir Vector states = new Vector(); 51cdf0e10cSrcweir for (int i = 0; i < count; i++) 52cdf0e10cSrcweir { 53cdf0e10cSrcweir if (entry.SubEntries[i].State == null) 54cdf0e10cSrcweir { 55cdf0e10cSrcweir entry.SubEntries[i].State = "PASSED.FAILED"; 56cdf0e10cSrcweir } 57cdf0e10cSrcweir if (entry.SubEntries[i].State.equals("known issue")) 58cdf0e10cSrcweir { 59cdf0e10cSrcweir entry.SubEntries[i].State = "PASSED.OK"; 60cdf0e10cSrcweir knownIssues++; 61cdf0e10cSrcweir } 62cdf0e10cSrcweir if (!entry.SubEntries[i].State.endsWith("OK")) 63cdf0e10cSrcweir { 64cdf0e10cSrcweir String sFailure = "[" + entry.SubEntries[i].longName + "]" + " is testcode: [" + entry.SubEntries[i].entryName + "]"; 65cdf0e10cSrcweir failures.add(sFailure); 66cdf0e10cSrcweir states.add(entry.SubEntries[i].State); 67cdf0e10cSrcweir } 68cdf0e10cSrcweir } 69cdf0e10cSrcweir if (failures.size() > 0) 70cdf0e10cSrcweir { 71cdf0e10cSrcweir String errMsg = ""; 72cdf0e10cSrcweir String state = "PASSED.FAILED"; 73cdf0e10cSrcweir for (int j = 0; j < failures.size(); j++) 74cdf0e10cSrcweir { 75cdf0e10cSrcweir if (states.elementAt(j).equals("not part of the job")) 76cdf0e10cSrcweir { 77cdf0e10cSrcweir state = "PASSED(some interfaces/services not tested).OK"; 78cdf0e10cSrcweir } 79cdf0e10cSrcweir else 80cdf0e10cSrcweir { 81cdf0e10cSrcweir errMsg += 82cdf0e10cSrcweir failures.elementAt(j) + " - " + states.elementAt(j) + "\r\n"; 83cdf0e10cSrcweir } 84cdf0e10cSrcweir } 85cdf0e10cSrcweir entry.hasErrorMsg = true; 86cdf0e10cSrcweir entry.ErrorMsg = errMsg; 87cdf0e10cSrcweir entry.State = state; 88cdf0e10cSrcweir } 89cdf0e10cSrcweir else if (entry.EntryType.equals("component") && knownIssues > 0) 90cdf0e10cSrcweir { 91cdf0e10cSrcweir entry.State = "PASSED(with known issues).OK"; 92cdf0e10cSrcweir } 93cdf0e10cSrcweir else 94cdf0e10cSrcweir { 95cdf0e10cSrcweir entry.State = "PASSED.OK"; 96cdf0e10cSrcweir } 97cdf0e10cSrcweir } 98cdf0e10cSrcweir summarizeDown(DescEntry entry, String state)99cdf0e10cSrcweir public static void summarizeDown(DescEntry entry, String state) 100cdf0e10cSrcweir { 101cdf0e10cSrcweir if ((entry.State == null) || entry.State.equals("UNKNOWN")) 102cdf0e10cSrcweir { 103cdf0e10cSrcweir entry.State = state; 104cdf0e10cSrcweir } 105cdf0e10cSrcweir for (int i = 0; i < entry.SubEntryCount; i++) 106cdf0e10cSrcweir { 107cdf0e10cSrcweir summarizeDown(entry.SubEntries[i], entry.State); 108cdf0e10cSrcweir } 109cdf0e10cSrcweir } 110cdf0e10cSrcweir } 111