AddTableField('build2grouprule', 'parentgroupid', 'int(11)', 'bigint', '0'); // Support for pull request notifications. AddTableField('build', 'notified', 'tinyint(1)', 'smallint', '0'); // Better caching of buildfailures. UpgradeBuildFailureTable('buildfailure', 'buildfailuredetails'); AddTableIndex('buildfailure', 'detailsid'); // Add key to label2test. // This speeds up viewTest API for builds with lots of tests & labels. AddTableIndex('label2test', 'testid'); // Better caching of build & test time, particularly for parent builds. $query = 'SELECT configureduration FROM build LIMIT 1'; $dbTest = pdo_query($query); if ($dbTest === false) { AddTableField('build', 'configureduration', 'float(7,2)', 'numeric(7,2)', '0.00'); UpgradeConfigureDuration(); UpgradeTestDuration(); } // Distinguish build step duration from (end time - start time). $query = 'SELECT buildduration FROM build LIMIT 1'; $dbTest = pdo_query($query); if ($dbTest === false) { AddTableField('build', 'buildduration', 'int(11)', 'integer', '0'); UpgradeBuildDuration(); } // Support for marking a build as "done". AddTableField('build', 'done', 'tinyint(1)', 'smallint', '0'); // Add a unique uuid field to the build table. $uuid_check = pdo_query('SELECT uuid FROM build LIMIT 1'); if ($uuid_check === false) { AddTableField('build', 'uuid', 'varchar(36)', 'character varying(36)', false); if ($db_type === 'pgsql') {
public function testUpgradeDurations() { require_once dirname(__FILE__) . '/cdash_test_case.php'; require_once 'include/common.php'; require_once 'include/pdo.php'; $retval = 0; // Get the ID of the parent Trilinos build that we will use to verify // that this upgrade was successful. $query = "SELECT id FROM build\n WHERE name = 'Windows_NT-MSVC10-SERIAL_DEBUG_DEV' AND parentid=-1"; $row = pdo_single_row_query($query); $id = qnum($row['id']); // Set build.configureduration to 0 for all builds. // This will force the upgrade function to recompute these values // based on configure start & end time. pdo_query('UPDATE build SET configureduration = 0'); // Run the configure duration upgrade function. UpgradeConfigureDuration(); // Make sure that our exemplar build has the value that we expect. $query = "SELECT configureduration FROM build WHERE id = {$id}"; $row = pdo_single_row_query($query); if ($row['configureduration'] != 309.0) { $this->fail('Expected configure duration to be 309.00, found ' . $row['configureduration']); $retval = 1; } // Similarly test our buildduration upgrade function. $query = "SELECT buildduration FROM build WHERE id = {$id}"; $row = pdo_single_row_query($query); $saved_build_duration = $row['buildduration']; pdo_query("UPDATE build SET buildduration = 0 WHERE id = {$id}"); UpgradeBuildDuration($id); $row = pdo_single_row_query($query); if ($row['buildduration'] != 1383) { $this->fail('Expected build duration to be 1383, found ' . $row['buildduration']); $retval = 1; } pdo_query("UPDATE build SET buildduration = {$saved_build_duration}\n WHERE id = {$id}"); // Remove the buildtesttime entry for our parent build. pdo_query("DELETE FROM buildtesttime WHERE buildid = {$id}"); // Run the test duration upgrade function. UpgradeTestDuration(); // Verify that it worked as expected. $query = "SELECT time FROM buildtesttime WHERE buildid = {$id}"; $row = pdo_single_row_query($query); if ($row['time'] != 48.0) { $this->fail('Expected test duration to be 48.00, found ' . $row['time']); $retval = 1; } if ($retval == 0) { $this->pass('Passed'); } return $retval; }