Changeset 64951 in vbox for trunk/src/VBox/ValidationKit/testmanager/core
- Timestamp:
- Dec 18, 2016 2:50:33 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 112364
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/testmanager/core/testresults.py
r62484 r64951 40 40 TMTooManyRows, TMRowNotFound; 41 41 from testmanager.core.testgroup import TestGroupData; 42 from testmanager.core.build import BuildDataEx ;42 from testmanager.core.build import BuildDataEx, BuildCategoryData; 43 43 from testmanager.core.failurereason import FailureReasonLogic; 44 44 from testmanager.core.testbox import TestBoxData; … … 651 651 ksResultsGroupingTypeNone = 'ResultsGroupingTypeNone'; 652 652 ksResultsGroupingTypeTestGroup = 'ResultsGroupingTypeTestGroup'; 653 ksResultsGroupingTypeBuildRev = 'ResultsGroupingTypeBuild'; 653 ksResultsGroupingTypeBuildCat = 'ResultsGroupingTypeBuildCat'; 654 ksResultsGroupingTypeBuildRev = 'ResultsGroupingTypeBuildRev'; 654 655 ksResultsGroupingTypeTestBox = 'ResultsGroupingTypeTestBox'; 655 656 ksResultsGroupingTypeTestCase = 'ResultsGroupingTypeTestCase'; 657 ksResultsGroupingTypeOS = 'ResultsGroupingTypeOS'; 658 ksResultsGroupingTypeArch = 'ResultsGroupingTypeArch'; 656 659 ksResultsGroupingTypeSchedGroup = 'ResultsGroupingTypeSchedGroup'; 657 660 … … 793 796 ksResultsGroupingTypeTestBox: ('', 'TestSets.idTestBox', None, {},), 794 797 ksResultsGroupingTypeTestCase: ('', 'TestSets.idTestCase', None, {},), 798 ksResultsGroupingTypeOS: ( 799 ', TestBoxes', 800 'TestBoxes.idStrOs', 801 ' AND TestBoxes.idGenTestBox = TestSets.idGenTestBox', 802 {}, 803 ), 804 ksResultsGroupingTypeArch: ( 805 ', TestBoxes', 806 'TestBoxes.idStrCpuArch', 807 ' AND TestBoxes.idGenTestBox = TestSets.idGenTestBox', 808 {}, 809 ), 810 ksResultsGroupingTypeBuildCat: ('', 'TestSets.idBuildCategory', None, {},), 795 811 ksResultsGroupingTypeBuildRev: ( 796 812 ', Builds', … … 1186 1202 return aoRet 1187 1203 1204 def getOSes(self, tsNow, sPeriod): 1205 """ 1206 Get a list of [idStrOs, sOs] tuples of the OSes that appears in the specified result period. 1207 """ 1208 1209 # Note! INNER JOIN TestBoxesWithStrings performs miserable compared to LEFT OUTER JOIN. Doesn't matter for the result 1210 # because TestSets.idGenTestBox is a foreign key and unique in TestBoxes. So, let's do what ever is faster. 1211 self._oDb.execute('SELECT DISTINCT TestBoxesWithStrings.idStrOs, TestBoxesWithStrings.sOs\n' 1212 'FROM ( SELECT idTestBox AS idTestBox,\n' 1213 ' MAX(idGenTestBox) AS idGenTestBox\n' 1214 ' FROM TestSets\n' 1215 ' WHERE ' + self._getTimePeriodQueryPart(tsNow, sPeriod, ' ') + 1216 ' GROUP BY idTestBox\n' 1217 ' ) AS TestBoxIDs\n' 1218 ' LEFT OUTER JOIN TestBoxesWithStrings\n' 1219 ' ON TestBoxesWithStrings.idGenTestBox = TestBoxIDs.idGenTestBox\n' 1220 'ORDER BY TestBoxesWithStrings.sOs\n' ); 1221 return self._oDb.fetchAll(); 1222 1223 def getArchitectures(self, tsNow, sPeriod): 1224 """ 1225 Get a list of [idStrCpuArch, sCpuArch] tuples of the architecutres 1226 that appears in the specified result period. 1227 """ 1228 1229 # Note! INNER JOIN TestBoxesWithStrings performs miserable compared to LEFT OUTER JOIN. Doesn't matter for the result 1230 # because TestSets.idGenTestBox is a foreign key and unique in TestBoxes. So, let's do what ever is faster. 1231 self._oDb.execute('SELECT DISTINCT TestBoxesWithStrings.idStrCpuArch, TestBoxesWithStrings.sCpuArch\n' 1232 'FROM ( SELECT idTestBox AS idTestBox,\n' 1233 ' MAX(idGenTestBox) AS idGenTestBox\n' 1234 ' FROM TestSets\n' 1235 ' WHERE ' + self._getTimePeriodQueryPart(tsNow, sPeriod, ' ') + 1236 ' GROUP BY idTestBox\n' 1237 ' ) AS TestBoxIDs\n' 1238 ' LEFT OUTER JOIN TestBoxesWithStrings\n' 1239 ' ON TestBoxesWithStrings.idGenTestBox = TestBoxIDs.idGenTestBox\n' 1240 'ORDER BY TestBoxesWithStrings.sCpuArch\n' ); 1241 return self._oDb.fetchAll(); 1242 1243 def getBuildCategories(self, tsNow, sPeriod): 1244 """ 1245 Get a list of BuildCategoryData that appears in the specified result period. 1246 """ 1247 1248 self._oDb.execute('SELECT DISTINCT BuildCategories.*\n' 1249 'FROM ( SELECT DISTINCT idBuildCategory AS idBuildCategory\n' 1250 ' FROM TestSets\n' 1251 ' WHERE ' + self._getTimePeriodQueryPart(tsNow, sPeriod, ' ') + 1252 ' ) AS BuildCategoryIDs\n' 1253 ' LEFT OUTER JOIN BuildCategories\n' 1254 ' ON BuildCategories.idBuildCategory = BuildCategoryIDs.idBuildCategory\n' 1255 'ORDER BY BuildCategories.sProduct, BuildCategories.sBranch, BuildCategories.sType\n'); 1256 aoRet = []; 1257 for aoRow in self._oDb.fetchAll(): 1258 aoRet.append(BuildCategoryData().initFromDbRow(aoRow)); 1259 return aoRet; 1260 1188 1261 def getSchedGroups(self, tsNow, sPeriod): 1189 1262 """
Note:
See TracChangeset
for help on using the changeset viewer.