Пример #1
0
    // Is this a valid groupid?
    if (!$group_name) {
        continue;
    }
    // make sure this row has both checker & defect info for us
    if (!array_key_exists("checker", $defect_row) || !array_key_exists("defects", $defect_row)) {
        continue;
    }
    if (is_null($defect_row["defects"])) {
        $defect_row["defects"] = 0;
    }
    if (!is_numeric($defect_row["defects"])) {
        continue;
    }
    // Get the day that these results are for.
    $day = get_day_index($defect_row["starttime"]);
    // add this DA checker to our list if its the first time we've
    // encountered it.
    $checker = $defect_row["checker"];
    if (!in_array($checker, $dynamic_analysis_types)) {
        $dynamic_analysis_types[] = $checker;
    }
    // Record this defect value for this checker & build group.
    $dynamic_analysis_array =& $dynamic_analysis_data[$day][$group_name];
    if (!array_key_exists($checker, $dynamic_analysis_array)) {
        $dynamic_analysis_array[$checker] = $defect_row["defects"];
    } else {
        $dynamic_analysis_array[$checker] += $defect_row["defects"];
    }
}
// Now that the data has been collected we can generate the XML.
Пример #2
0
$end_date = gmdate(FMT_DATETIME, $end_timestamp);
// Perform a query to get info about all of our builds that fall within this
// time range.
$builds_query = "SELECT b.id, b.type, b.name,\n    b.builderrors AS build_errors,\n    b.buildwarnings AS build_warnings,\n    b.testfailed AS failing_tests,\n    b.configureerrors AS configure_errors,\n    b.configurewarnings AS configure_warnings, b.starttime,\n    cs.loctested AS loctested, cs.locuntested AS locuntested,\n    das.checker AS checker, das.numdefects AS numdefects,\n    b2g.groupid AS groupid\n    FROM build AS b\n    LEFT JOIN build2group AS b2g ON (b2g.buildid=b.id)\n    LEFT JOIN coveragesummary AS cs ON (cs.buildid=b.id)\n    LEFT JOIN dynamicanalysissummary AS das ON (das.buildid=b.id)\n    WHERE b.projectid = '{$projectid}'\n    AND b.starttime BETWEEN '{$start_date}' AND '{$end_date}'\n    AND b.parentid IN (-1, 0)";
$builds_array = pdo_query($builds_query);
add_last_sql_error('gather_overview_data');
// If we have multiple coverage builds in a single day we will also
// show the aggregate.
$aggregate_tracker = array();
$show_aggregate = false;
// Keep track of the different types of dynamic analysis that are being
// performed on our build groups of interest.
$dynamic_analysis_types = array();
while ($build_row = pdo_fetch_array($builds_array)) {
    // get what day this build is for.
    $day = get_day_index($build_row['starttime']);
    $static_name = get_static_group_name($build_row['groupid']);
    // Special handling for static builds, as we don't need to record as
    // much data about them.
    if ($static_name) {
        foreach ($static_measurements as $measurement) {
            if (!array_key_exists($measurement, $overview_data[$day][$static_name])) {
                $overview_data[$day][$static_name][$measurement] = intval($build_row["build_{$measurement}"]);
            } else {
                $overview_data[$day][$static_name][$measurement] += $build_row["build_{$measurement}"];
            }
            // Don't let our measurements be thrown off by CDash's tendency
            // to store -1s in the database.
            $overview_data[$day][$static_name][$measurement] = max(0, $overview_data[$day][$static_name][$measurement]);
        }
        continue;