xref: /AOO41X/main/qadevOOo/runner/stats/Summarizer.java (revision ef39d40d3f5e66cf3f035b3e93783012b340500d)
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