Changeset 61255 in vbox for trunk/src/VBox/ValidationKit
- Timestamp:
- May 28, 2016 3:52:35 AM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 107547
- Location:
- trunk/src/VBox/ValidationKit/testmanager
- Files:
-
- 1 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/testmanager/core/report.py
r61254 r61255 340 340 oSet = ReportFailureReasonSet(); 341 341 for iPeriod in xrange(self.cPeriods): 342 #cHoursStarted = (self.cPeriods - iPeriod) * self.cHoursPerPeriod;343 #if self.tsNow is None:344 # sTsFirst = '(CURRENT_TIMESTAMP - interval \'%u hours\')' % (cHoursStarted,);345 #346 #else:347 # sTsFirst = '(%s - interval \'%u hours\')' \348 # % ( self._oDb.formatBindArgs('%s::TIMESTAMP', (self.tsNow,)), cHoursStarted,) ;349 #350 #self._oDb.execute('SELECT TestResultFailures.idFailureReason,\n'351 # ' COUNT(TestResultFailures.idTestResult),\n'352 # ' MIN(TestSets.tsDone),\n'353 # ' MAX(TestSets.tsDone)\n'354 # 'FROM TestResultFailures,\n'355 # ' TestResults,\n'356 # ' TestSets' + self.getExtraSubjectTables() + '\n'357 # 'WHERE TestResultFailures.idTestResult = TestResults.idTestResult\n'358 # ' AND TestResultFailures.tsExpire = \'infinity\'::TIMESTAMP\n'359 # ' AND TestResultFailures.tsEffective >= ' + sTsFirst + '\n'360 # ' AND TestResults.enmStatus <> \'running\'\n'361 # ' AND TestResults.enmStatus <> \'success\'\n'362 # ' AND TestResults.tsCreated >= ' + sTsFirst + '\n'363 # ' AND TestResults.idTestSet = TestSets.idTestSet\n'364 # + self.getExtraSubjectWhereExpr()365 # + self.getExtraWhereExprForPeriod(iPeriod)366 # + 'GROUP BY TestResultFailures.idFailureReason\n');367 368 342 self._oDb.execute('SELECT idFailureReason,\n' 369 343 ' COUNT(idTestResult),\n' … … 374 348 + self.getExtraWhereExprForPeriod(iPeriod).replace('TestSets.', '') 375 349 + 'GROUP BY idFailureReason\n'); 376 377 350 aaoRows = self._oDb.fetchAll() 378 351 … … 400 373 oPeriod.tsMax = oPeriodRow.tsMax; 401 374 oSet.cHits += oPeriod.cHits; 375 376 ## Count how many test sets we've got without any reason associated with them. 377 #self._oDb.execute('SELECT COUNT(idTestSet)\n' 378 # 'FROM TestSets,\n' 379 # ' Test' 380 # 'WHERE TRUE\n' 381 # + self.getExtraWhereExprForPeriod(iPeriod) + 382 # ' AND TestSets.enmStatus <> \'running\'\n' 383 # ' AND TestSets.enmStatus <> \'success\'\n' 384 # 385 # 'WHERE TestResultFailures.idTestResult = TestResults.idTestResult\n' 386 # ' AND TestResultFailures.tsExpire = \'infinity\'::TIMESTAMP\n' 387 # ' AND TestResultFailures.tsEffective >= ' + sTsFirst + '\n' 388 # ' AND TestResults.enmStatus <> \'running\'\n' 389 # ' AND TestResults.enmStatus <> \'success\'\n' 390 # ' AND TestResults.tsCreated >= ' + sTsFirst + '\n' 391 # ' AND TestResults.tsCreated < ' + sTsNow + '\n' 392 # ' AND TestResults.idTestSet = TestSets.idTestSet\n' 393 # ' AND TestSets.tsDone >= ' + sTsFirst + '\n' 394 # ' AND TestSets.tsDone < ' + sTsNow + '\n' 395 # 396 # + self.getExtraWhereExprForPeriod(iPeriod).replace('TestSets.', '') 397 # + 'GROUP BY idFailureReason\n'); 398 #aaoRows = self._oDb.fetchAll() 399 402 400 403 401 # -
trunk/src/VBox/ValidationKit/testmanager/core/testcase.py
r61220 r61255 1154 1154 self._oDb.execute('INSERT INTO TestCaseArgs (\n' 1155 1155 ' idTestCase, uidAuthor, sArgs, cSecTimeout,\n' 1156 ' sTestBoxReqExpr, sBuildReqExpr, cGangMembers )\n'1157 'VALUES (%s, %s, %s, %s, %s, %s, %s )'1156 ' sTestBoxReqExpr, sBuildReqExpr, cGangMembers, sSubName)\n' 1157 'VALUES (%s, %s, %s, %s, %s, %s, %s, %s)' 1158 1158 , ( oData.idTestCase, uidAuthor, oVar.sArgs, oVar.cSecTimeout, 1159 oVar.sTestBoxReqExpr, oVar.sBuildReqExpr, oVar.cGangMembers, ));1159 oVar.sTestBoxReqExpr, oVar.sBuildReqExpr, oVar.cGangMembers, oVar.sSubName, )); 1160 1160 1161 1161 self._oDb.maybeCommit(fCommit); … … 1277 1277 self._oDb.execute('INSERT INTO TestCaseArgs (\n' 1278 1278 ' idTestCase, uidAuthor, sArgs, cSecTimeout,\n' 1279 ' sTestBoxReqExpr, sBuildReqExpr, cGangMembers )\n'1280 'VALUES (%s, %s, %s, %s, %s, %s, %s )'1279 ' sTestBoxReqExpr, sBuildReqExpr, cGangMembers, sSubName)\n' 1280 'VALUES (%s, %s, %s, %s, %s, %s, %s, %s)' 1281 1281 , ( oData.idTestCase, uidAuthor, oNewVar.sArgs, oNewVar.cSecTimeout, 1282 oNewVar.sTestBoxReqExpr, oNewVar.sBuildReqExpr, oNewVar.cGangMembers, ));1282 oNewVar.sTestBoxReqExpr, oNewVar.sBuildReqExpr, oNewVar.cGangMembers, oNewVar.sSubName)); 1283 1283 else: 1284 1284 oCurVar = TestCaseArgsData().initFromDbRow(aoRow); … … 1288 1288 and oNewVar.sTestBoxReqExpr == oCurVar.sTestBoxReqExpr \ 1289 1289 and oNewVar.sBuildReqExpr == oCurVar.sBuildReqExpr \ 1290 and oNewVar.cGangMembers == oCurVar.cGangMembers: 1290 and oNewVar.cGangMembers == oCurVar.cGangMembers \ 1291 and oNewVar.sSubName == oCurVar.sSubName: 1291 1292 oNewVar.idTestCaseArgs = oCurVar.idTestCaseArgs; 1292 1293 oNewVar.idGenTestCaseArgs = oCurVar.idGenTestCaseArgs; … … 1299 1300 self._oDb.execute('INSERT INTO TestCaseArgs (\n' 1300 1301 ' idTestCaseArgs, idTestCase, uidAuthor, sArgs, cSecTimeout,\n' 1301 ' sTestBoxReqExpr, sBuildReqExpr, cGangMembers )\n'1302 'VALUES (%s, %s, %s, %s, %s, %s, %s, %s )\n'1302 ' sTestBoxReqExpr, sBuildReqExpr, cGangMembers, sSubName)\n' 1303 'VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)\n' 1303 1304 'RETURNING idGenTestCaseArgs\n' 1304 1305 , ( oCurVar.idTestCaseArgs, oData.idTestCase, uidAuthor, oNewVar.sArgs, oNewVar.cSecTimeout, 1305 oNewVar.sTestBoxReqExpr, oNewVar.sBuildReqExpr, oNewVar.cGangMembers, ));1306 oNewVar.sTestBoxReqExpr, oNewVar.sBuildReqExpr, oNewVar.cGangMembers, oNewVar.sSubName)); 1306 1307 oNewVar.idGenTestCaseArgs = self._oDb.fetchOne()[0]; 1307 1308 -
trunk/src/VBox/ValidationKit/testmanager/core/testcaseargs.py
r61220 r61255 64 64 ksParam_sBuildReqExpr = 'TestCaseArgs_sBuildReqExpr'; 65 65 ksParam_cGangMembers = 'TestCaseArgs_cGangMembers'; 66 ksParam_sSubName = 'TestCaseArgs_sSubName'; 67 68 kcDbColumns = 12; 66 69 67 70 kasAllowNullAttributes = [ 'idTestCase', 'idTestCaseArgs', 'tsEffective', 'tsExpire', 'uidAuthor', 'idGenTestCaseArgs', 68 'cSecTimeout', 'sTestBoxReqExpr', 'sBuildReqExpr', ];71 'cSecTimeout', 'sTestBoxReqExpr', 'sBuildReqExpr', 'sSubName', ]; 69 72 70 73 def __init__(self): … … 86 89 self.sBuildReqExpr = None; 87 90 self.cGangMembers = 1; 91 self.sSubName = None; 88 92 89 93 def initFromDbRow(self, aoRow): … … 106 110 self.sBuildReqExpr = aoRow[9]; 107 111 self.cGangMembers = aoRow[10]; 112 self.sSubName = aoRow[11]; 108 113 return self; 109 114 … … 132 137 def initFromValues(self, sArgs, cSecTimeout = None, sTestBoxReqExpr = None, sBuildReqExpr = None, # pylint: disable=R0913 133 138 cGangMembers = 1, idTestCase = None, idTestCaseArgs = None, tsEffective = None, tsExpire = None, 134 uidAuthor = None, idGenTestCaseArgs = None ):139 uidAuthor = None, idGenTestCaseArgs = None, sSubName = None): 135 140 """ 136 141 Reinitialize from values. … … 148 153 self.sBuildReqExpr = sBuildReqExpr; 149 154 self.cGangMembers = cGangMembers; 155 self.sSubName = sSubName; 150 156 return self; 151 157 -
trunk/src/VBox/ValidationKit/testmanager/core/testresults.py
r61250 r61255 441 441 ksParam_tsExpire = 'TestResultFailure_tsExpire'; 442 442 ksParam_uidAuthor = 'TestResultFailure_uidAuthor'; 443 ksParam_idTestSet = 'TestResultFailure_idTestSet'; 443 444 ksParam_idFailureReason = 'TestResultFailure_idFailureReason'; 444 445 ksParam_sComment = 'TestResultFailure_sComment'; … … 446 447 kasAllowNullAttributes = ['tsEffective', 'tsExpire', 'uidAuthor', 'sComment' ]; 447 448 448 kcDbColumns = 6;449 kcDbColumns = 7; 449 450 450 451 def __init__(self): … … 454 455 self.tsExpire = None; 455 456 self.uidAuthor = None; 457 self.idTestSet = None; 456 458 self.idFailureReason = None; 457 459 self.sComment = None; … … 469 471 self.tsExpire = aoRow[2]; 470 472 self.uidAuthor = aoRow[3]; 471 self.idFailureReason = aoRow[4]; 472 self.sComment = aoRow[5]; 473 self.idTestSet = aoRow[4]; 474 self.idFailureReason = aoRow[5]; 475 self.sComment = aoRow[6]; 473 476 return self; 474 477 … … 2080 2083 'Perhaps someone else beat you to it? Or did you try resubmit?' 2081 2084 % (oData.idTestResult, oOldData)); 2085 oData = self._resolveSetTestIdIfMissing(oData); 2082 2086 2083 2087 # … … 2102 2106 2103 2107 oOldData = self.getById(oData.idTestResult) 2108 oData.idTestSet = oOldData.idTestSet; 2104 2109 2105 2110 # … … 2147 2152 ' tsEffective,\n' 2148 2153 ' idTestResult,\n' 2154 ' idTestSet,\n' 2149 2155 ' idFailureReason,\n' 2150 2156 ' sComment)\n' 2151 'VALUES (%s, %s, %s, %s, %s )\n'2157 'VALUES (%s, %s, %s, %s, %s, %s)\n' 2152 2158 , ( uidAuthor, 2153 2159 tsEffective, 2154 2160 oData.idTestResult, 2161 oData.idTestSet, 2155 2162 oData.idFailureReason, 2156 2163 oData.sComment,) ); … … 2170 2177 2171 2178 2179 def _resolveSetTestIdIfMissing(self, oData): 2180 """ Resolve any missing idTestSet reference (it's a duplicate for speed efficiency). """ 2181 if oData.idTestSet is None and oData.idTestResult is not None : 2182 self._oDb.execute('SELECT idTestSet FROM TestResults WHERE idTestResult = %s', (oData.idTestResult,)); 2183 oData.idTestResult = self._oDb.fetchOne()[0]; 2184 return oData; 2185 2186 2172 2187 2173 2188 # -
trunk/src/VBox/ValidationKit/testmanager/db/TestManagerDatabaseInit.pgsql
r56789 r61255 402 402 --- Number of testboxes required (gang scheduling). 403 403 cGangMembers SMALLINT DEFAULT 1 NOT NULL CHECK (cGangMembers > 0 AND cGangMembers < 1024), 404 --- Optional variation sub-name. 405 sSubName TEXT DEFAULT NULL, 404 406 405 407 --- The arguments are part of the primary key for several reasons. … … 957 959 -- Non-unique foreign key: Users(uid) 958 960 uidAuthor INTEGER NOT NULL, 961 --- The testsest this result is a part of. 962 -- This is mainly an aid for bypassing the enormous TestResults table. 963 -- Note! This is a foreign key, but we have to add it after TestSets has 964 -- been created, see further down. 965 idTestSet INTEGER NOT NULL, 959 966 960 967 --- The suggested failure reason. … … 966 973 PRIMARY KEY (idTestResult, tsExpire) 967 974 ); 968 975 CREATE INDEX TestResultFailureIdx ON TestResultFailures (idTestSet, tsExpire DESC, tsEffective ASC); 976 CREATE INDEX TestResultFailureIdx2 ON TestResultFailures (idTestResult, tsExpire DESC, tsEffective ASC); 977 CREATE INDEX TestResultFailureIdx3 ON TestResultFailures (idFailureReason, idTestResult, tsExpire DESC, tsEffective ASC); 969 978 970 979 … … 1309 1318 OR (cErrors = 0 AND enmStatus IN ('running'::TestStatus_T, 'success'::TestStatus_T, 1310 1319 'skipped'::TestStatus_T, 'aborted'::TestStatus_T, 'bad-testbox'::TestStatus_T)) 1311 ) 1320 ), 1321 -- The following is for the TestResultFailures foreign key. 1322 -- Note! This was added with the name TestResults_idTestResult_idTestSet_key in the tmdb-r16 update script. 1323 UNIQUE (idTestResult, idTestSet) 1312 1324 ); 1313 1325 … … 1318 1330 CREATE INDEX TestResultsNameIdx2 ON TestResults (idTestResult, idStrName); 1319 1331 1320 ALTER TABLE TestResultFailures 1321 ADD CONSTRAINT idTestResultFk FOREIGN KEY (idTestResult) REFERENCES TestResults(idTestResult) MATCH FULL;1332 ALTER TABLE TestResultFailures ADD CONSTRAINT TestResultFailures_idTestResult_idTestSet_fkey 1333 FOREIGN KEY (idTestResult, idTestSet) REFERENCES TestResults(idTestResult, idTestSet) MATCH FULL; 1322 1334 1323 1335 … … 1557 1569 ALTER TABLE TestResults ADD FOREIGN KEY (idTestSet) REFERENCES TestSets(idTestSet) MATCH FULL; 1558 1570 ALTER TABLE TestResultValues ADD FOREIGN KEY (idTestSet) REFERENCES TestSets(idTestSet) MATCH FULL; 1571 ALTER TABLE TestResultFailures ADD CONSTRAINT idTestSetFk FOREIGN KEY (idTestSet) REFERENCES TestSets(idTestSet) MATCH FULL; 1559 1572 1560 1573 -
trunk/src/VBox/ValidationKit/testmanager/htdocs/css/common.css
r56295 r61255 586 586 } 587 587 588 .tmform-field-subname input { 589 width: 10em; 590 } 591 588 592 .tmform-field-timestamp input { 589 593 width: 20em; -
trunk/src/VBox/ValidationKit/testmanager/webui/wuiadmintestcase.py
r56295 r61255 69 69 # Base command and variations. 70 70 fNoGang = True; 71 fNoSubName = True; 72 fAllDefaultTimeouts = True; 71 73 for oVar in oEntry.aoTestCaseArgs: 74 if fNoSubName and oVar.sSubName is not None and len(oVar.sSubName.strip()) > 0: 75 fNoSubName = False; 72 76 if oVar.cGangMembers > 1: 73 77 fNoGang = False; 74 break; 78 if oVar.cSecTimeout is not None: 79 fAllDefaultTimeouts = False; 80 75 81 sHtml = ' <table class="tminnertbl" width=100%>\n' \ 76 82 ' <tr>\n' \ 77 ' <th>'; 83 ' '; 84 if not fNoSubName: 85 sHtml += '<th class="tmtcasubname">Sub-name</th>'; 78 86 if not fNoGang: 79 sHtml += '<th>Gang Size</th>'; 80 sHtml += 'Timeout</th><th>Additional Arguments</b></th>\n' \ 87 sHtml += '<th class="tmtcagangsize">Gang Size</th>'; 88 if not fAllDefaultTimeouts: 89 sHtml += '<th class="tmtcatimeout">Timeout</th>'; 90 sHtml += '<th>Additional Arguments</b></th>\n' \ 81 91 ' </tr>\n' 82 92 for oTmp in oEntry.aoTestCaseArgs: 83 93 sHtml += '<tr>'; 94 if not fNoSubName: 95 sHtml += '<td>%s</td>' % (webutils.escapeElem(oTmp.sSubName) if oTmp.sSubName is not None else ''); 84 96 if not fNoGang: 85 97 sHtml += '<td>%d</td>' % (oTmp.cGangMembers,) 86 sHtml += '<td>%s</td><td>%s</td></tr>\n' \ 87 % ( utils.formatIntervalSeconds(oTmp.cSecTimeout) if oTmp.cSecTimeout is not None else 'Default', 88 webutils.escapeElem(oTmp.sArgs.replace('-', u'\u2011')),) 98 if not fAllDefaultTimeouts: 99 sHtml += '<td>%s</td>' \ 100 % (utils.formatIntervalSeconds(oTmp.cSecTimeout) if oTmp.cSecTimeout is not None else 'Default',) 101 sHtml += u'<td>%s</td></tr>' \ 102 % ( webutils.escapeElem(oTmp.sArgs.replace('-', u'\u2011')) if len(oTmp.sArgs) > 0 else u'\u2011',); 103 sHtml += '</tr>\n'; 89 104 sHtml += ' </table>' 90 105 -
trunk/src/VBox/ValidationKit/testmanager/webui/wuihlpform.py
r61250 r61255 452 452 sHtml += u'}\n'; 453 453 sHtml += u'\n'; 454 sHtml += u'function %s_extendListEx( cGangMembers, cSecTimeout, sArgs, sTestBoxReqExpr, sBuildReqExpr)\n' % (sName,);454 sHtml += u'function %s_extendListEx(sSubName, cGangMembers, cSecTimeout, sArgs, sTestBoxReqExpr, sBuildReqExpr)\n' % (sName,); 455 455 sHtml += u'{\n'; 456 456 sHtml += u' var oElement = document.getElementById(\'%s\');\n' % (sTableId,); … … 466 466 sHtml += u'\n'; 467 467 sHtml += u' sHtml += \'<tr class="tmform-testcasevars-first-row">\';\n'; 468 sHtml += u' sHtml += \' <td>Sub-Name:</td>\';\n'; 469 sHtml += u' sHtml += \' <td class="tmform-field-subname">' \ 470 '<input name="%s[\' + sId + \'][%s]" id="%s[\' + sId + \'][0]" value="\' + sSubName + \'"></td>\';\n' \ 471 % (sName, TestCaseArgsData.ksParam_sSubName, sName,); 468 472 sHtml += u' sHtml += \' <td>Gang Members:</td>\';\n'; 469 473 sHtml += u' sHtml += \' <td class="tmform-field-tiny-int">' \ … … 481 485 sHtml += u' sHtml += \'<tr class="tmform-testcasevars-inner-row">\';\n'; 482 486 sHtml += u' sHtml += \' <td>Arguments:</td>\';\n'; 483 sHtml += u' sHtml += \' <td class="tmform-field-wide100" colspan=" 4">' \487 sHtml += u' sHtml += \' <td class="tmform-field-wide100" colspan="6">' \ 484 488 u'<input name="%s[\' + sId + \'][%s]" id="%s[\' + sId + \'][2]" value="\' + sArgs + \'"></td>\';\n' \ 485 489 % (sName, TestCaseArgsData.ksParam_sArgs, sName,); … … 489 493 sHtml += u' sHtml += \'<tr class="tmform-testcasevars-inner-row">\';\n'; 490 494 sHtml += u' sHtml += \' <td>TestBox Reqs:</td>\';\n'; 491 sHtml += u' sHtml += \' <td class="tmform-field-wide100" colspan=" 4">' \495 sHtml += u' sHtml += \' <td class="tmform-field-wide100" colspan="6">' \ 492 496 u'<input name="%s[\' + sId + \'][%s]" id="%s[\' + sId + \'][2]" value="\' + sTestBoxReqExpr' \ 493 497 u' + \'"></td>\';\n' \ … … 498 502 sHtml += u' sHtml += \'<tr class="tmform-testcasevars-final-row">\';\n'; 499 503 sHtml += u' sHtml += \' <td>Build Reqs:</td>\';\n'; 500 sHtml += u' sHtml += \' <td class="tmform-field-wide100" colspan=" 4">' \504 sHtml += u' sHtml += \' <td class="tmform-field-wide100" colspan="6">' \ 501 505 u'<input name="%s[\' + sId + \'][%s]" id="%s[\' + sId + \'][2]" value="\' + sBuildReqExpr + \'"></td>\';\n' \ 502 506 % (sName, TestCaseArgsData.ksParam_sBuildReqExpr, sName,); … … 515 519 sHtml += u'function %s_extendList()\n' % (sName,); 516 520 sHtml += u'{\n'; 517 sHtml += u' %s_extendListEx("%s", "%s", "%s", "%s", "%s" );\n' % (sName,518 escapeAttr(unicode(oVarDefaults. cGangMembers)), escapeAttr(unicode(oVarDefaults.cSecTimeout)),519 escapeAttr( oVarDefaults.sArgs), escapeAttr(oVarDefaults.sTestBoxReqExpr),520 escapeAttr(oVarDefaults.s BuildReqExpr), );521 sHtml += u' %s_extendListEx("%s", "%s", "%s", "%s", "%s", "%s");\n' % (sName, 522 escapeAttr(unicode(oVarDefaults.sSubName)), escapeAttr(unicode(oVarDefaults.cGangMembers)), 523 escapeAttr(unicode(oVarDefaults.cSecTimeout)), escapeAttr(oVarDefaults.sArgs), 524 escapeAttr(oVarDefaults.sTestBoxReqExpr), escapeAttr(oVarDefaults.sBuildReqExpr), ); 521 525 sHtml += u'}\n'; 522 526 if config.g_kfVBoxSpecific: … … 524 528 sHtml += u'function vbox_%s_add_uni()\n' % (sName,); 525 529 sHtml += u'{\n'; 526 sHtml += u' %s_extendListEx(" 1", "%s", "--cpu-counts 1 --virt-modes raw", ' \530 sHtml += u' %s_extendListEx("uni-raw", "1", "%s", "--cpu-counts 1 --virt-modes raw", ' \ 527 531 u' "", "");\n' % (sName, sSecTimeoutDef); 528 sHtml += u' %s_extendListEx(" 1", "%s", "--cpu-counts 1 --virt-modes hwvirt", ' \532 sHtml += u' %s_extendListEx("uni-hw", "1", "%s", "--cpu-counts 1 --virt-modes hwvirt", ' \ 529 533 u' "fCpuHwVirt is True", "");\n' % (sName, sSecTimeoutDef); 530 sHtml += u' %s_extendListEx(" 1", "%s", "--cpu-counts 1 --virt-modes hwvirt-np", ' \534 sHtml += u' %s_extendListEx("uni-np", "1", "%s", "--cpu-counts 1 --virt-modes hwvirt-np", ' \ 531 535 u' "fCpuNestedPaging is True", "");\n' % (sName, sSecTimeoutDef); 532 536 sHtml += u'}\n'; 533 537 sHtml += u'function vbox_%s_add_uni_amd64()\n' % (sName,); 534 538 sHtml += u'{\n'; 535 sHtml += u' %s_extendListEx(" 1", "%s", "--cpu-counts 1 --virt-modes hwvirt", ' \539 sHtml += u' %s_extendListEx("uni-64-hw", "1", "%s", "--cpu-counts 1 --virt-modes hwvirt", ' \ 536 540 u' "fCpuHwVirt is True", "");\n' % (sName, sSecTimeoutDef); 537 sHtml += u' %s_extendListEx(" 1", "%s", "--cpu-counts 1 --virt-modes hwvirt-np", ' \541 sHtml += u' %s_extendListEx("uni-64-np", "%s", "--cpu-counts 1 --virt-modes hwvirt-np", ' \ 538 542 u' "fCpuNestedPaging is True", "");\n' % (sName, sSecTimeoutDef); 539 543 sHtml += u'}\n'; 540 544 sHtml += u'function vbox_%s_add_smp()\n' % (sName,); 541 545 sHtml += u'{\n'; 542 sHtml += u' %s_extendListEx(" 1", "%s", "--cpu-counts 2 --virt-modes hwvirt",' \546 sHtml += u' %s_extendListEx("smp2-hw", "1", "%s", "--cpu-counts 2 --virt-modes hwvirt",' \ 543 547 u' "fCpuHwVirt is True and cCpus >= 2", "");\n' % (sName, sSecTimeoutDef); 544 sHtml += u' %s_extendListEx(" 1", "%s", "--cpu-counts 2 --virt-modes hwvirt-np",' \548 sHtml += u' %s_extendListEx("smp2-np", "1", "%s", "--cpu-counts 2 --virt-modes hwvirt-np",' \ 545 549 u' "fCpuNestedPaging is True and cCpus >= 2", "");\n' % (sName, sSecTimeoutDef); 546 sHtml += u' %s_extendListEx(" 1", "%s", "--cpu-counts 3 --virt-modes hwvirt",' \550 sHtml += u' %s_extendListEx("smp3-hw", "1", "%s", "--cpu-counts 3 --virt-modes hwvirt",' \ 547 551 u' "fCpuHwVirt is True and cCpus >= 3", "");\n' % (sName, sSecTimeoutDef); 548 sHtml += u' %s_extendListEx(" 1", "%s", "--cpu-counts 4 --virt-modes hwvirt-np ",' \552 sHtml += u' %s_extendListEx("smp4-np", "1", "%s", "--cpu-counts 4 --virt-modes hwvirt-np ",' \ 549 553 u' "fCpuNestedPaging is True and cCpus >= 4", "");\n' % (sName, sSecTimeoutDef); 550 #sHtml += u' %s_extendListEx(" 1", "%s", "--cpu-counts 6 --virt-modes hwvirt",' \554 #sHtml += u' %s_extendListEx("smp6-hw", "1", "%s", "--cpu-counts 6 --virt-modes hwvirt",' \ 551 555 # u' "fCpuHwVirt is True and cCpus >= 6", "");\n' % (sName, sSecTimeoutDef); 552 #sHtml += u' %s_extendListEx(" 1", "%s", "--cpu-counts 8 --virt-modes hwvirt-np",' \556 #sHtml += u' %s_extendListEx("smp8-np", "1", "%s", "--cpu-counts 8 --virt-modes hwvirt-np",' \ 553 557 # u' "fCpuNestedPaging is True and cCpus >= 8", "");\n' % (sName, sSecTimeoutDef); 554 558 sHtml += u'}\n'; … … 581 585 sHtml += u'<tbody id="%s[%s][6]">\n' % (sName, iVar,) 582 586 sHtml += u' <tr class="tmform-testcasevars-first-row">\n' \ 587 u' <td>Sub-name:</td>' \ 588 u' <td class="tmform-field-subname"><input name="%s[%s][%s]" id="%s[%s][1]" value="%s"%s></td>\n' \ 583 589 u' <td>Gang Members:</td>' \ 584 590 u' <td class="tmform-field-tiny-int"><input name="%s[%s][%s]" id="%s[%s][1]" value="%s"%s></td>\n' \ 585 591 u' <td>Timeout:</td>' \ 586 592 u' <td class="tmform-field-int"><input name="%s[%s][%s]" id="%s[%s][2]" value="%s"%s></td>\n' \ 587 % ( sName, iVar, TestCaseArgsData.ksParam_cGangMembers, sName, iVar, oVar.cGangMembers, sReadOnlyAttr, 593 % ( sName, iVar, TestCaseArgsData.ksParam_sSubName, sName, iVar, oVar.sSubName, sReadOnlyAttr, 594 sName, iVar, TestCaseArgsData.ksParam_cGangMembers, sName, iVar, oVar.cGangMembers, sReadOnlyAttr, 588 595 sName, iVar, TestCaseArgsData.ksParam_cSecTimeout, sName, iVar, 589 596 utils.formatIntervalSeconds2(oVar.cSecTimeout), sReadOnlyAttr, ); … … 598 605 sHtml += u' <tr class="tmform-testcasevars-inner-row">\n' \ 599 606 u' <td>Arguments:</td>' \ 600 u' <td class="tmform-field-wide100" colspan=" 4">' \607 u' <td class="tmform-field-wide100" colspan="6">' \ 601 608 u'<input name="%s[%s][%s]" id="%s[%s][3]" value="%s"%s></td>\n' \ 602 609 u' <td></td>\n' \ … … 606 613 sHtml += u' <tr class="tmform-testcasevars-inner-row">\n' \ 607 614 u' <td>TestBox Reqs:</td>' \ 608 u' <td class="tmform-field-wide100" colspan=" 4">' \615 u' <td class="tmform-field-wide100" colspan="6">' \ 609 616 u'<input name="%s[%s][%s]" id="%s[%s][4]" value="%s"%s></td>\n' \ 610 617 u' <td></td>\n' \ … … 615 622 sHtml += u' <tr class="tmform-testcasevars-final-row">\n' \ 616 623 u' <td>Build Reqs:</td>' \ 617 u' <td class="tmform-field-wide100" colspan=" 4">' \624 u' <td class="tmform-field-wide100" colspan="6">' \ 618 625 u'<input name="%s[%s][%s]" id="%s[%s][5]" value="%s"%s></td>\n' \ 619 626 u' <td></td>\n' \ -
trunk/src/VBox/ValidationKit/testmanager/webui/wuitestresult.py
r61250 r61255 392 392 oForm.addTextHidden(TestResultFailureData.ksParam_tsExpire, oData.tsExpire); 393 393 oForm.addTextHidden(TestResultFailureData.ksParam_uidAuthor, oData.uidAuthor); 394 oForm.addTextHidden(TestResultFailureData.ksParam_idTestSet, oData.idTestSet); 394 395 oForm.addSubmit('Change Reason'); 395 396 … … 401 402 oForm.addTextHidden(TestResultFailureData.ksParam_tsExpire, ''); 402 403 oForm.addTextHidden(TestResultFailureData.ksParam_uidAuthor, ''); 404 oForm.addTextHidden(TestResultFailureData.ksParam_idTestSet, oData.idTestSet); 403 405 oForm.addSubmit('Add Reason'); 404 406 -
trunk/src/VBox/ValidationKit/testmanager/webui/wuitestresultfailure.py
r61253 r61255 79 79 oForm.addMultilineText(TestResultFailureData.ksParam_sComment, oData.sComment, 'Comment'); 80 80 oForm.addIntRO( TestResultFailureData.ksParam_idTestResult, oData.idTestResult, 'Test Result ID'); 81 oForm.addIntRO( TestResultFailureData.ksParam_idTestSet, oData.idTestSet, 'Test Set ID'); 81 82 oForm.addTimestampRO(TestResultFailureData.ksParam_tsEffective, oData.tsEffective, 'Effective Date'); 82 83 oForm.addTimestampRO(TestResultFailureData.ksParam_tsExpire, oData.tsExpire, 'Expire (excl)');
Note:
See TracChangeset
for help on using the changeset viewer.