if ($total_loc == 0) { continue; } $coverage_array["percent"] = round($coverage_array["loctested"] / $total_loc * 100, 2); } } } // Dynamic analysis is handled here with a separate query. $defects_query = "SELECT da.checker AS checker, dd.value AS defects,\n b2g.groupid AS groupid, b.starttime AS starttime\n FROM build AS b\n LEFT JOIN build2group AS b2g ON (b2g.buildid=b.id)\n LEFT JOIN dynamicanalysis as da ON (da.buildid = b.id)\n LEFT JOIN dynamicanalysisdefect as dd ON (dd.dynamicanalysisid=da.id)\n WHERE b.projectid = '{$projectid}'\n AND b.starttime BETWEEN '{$start_date}' AND '{$end_date}'\n AND checker IS NOT NULL"; $defects_array = pdo_query($defects_query); add_last_sql_error("gather_dynamic_analysis_data"); // Keep track of the different types of dynamic analysis that are being // performed on our build groups of interest. $dynamic_analysis_types = array(); while ($defect_row = pdo_fetch_array($defects_array)) { $group_name = get_build_group_name($defect_row["groupid"]); // 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.
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; } if ($build_row['name'] == 'Aggregate Coverage') { $group_name = 'Aggregate'; } else { $group_name = get_build_group_name($build_row['groupid']); } // Skip this build if it's not from a group that is represented by // the overview dashboard. if (!$group_name) { continue; } if ($group_name !== 'Aggregate') { // From here on out, we're dealing with "build" (not static) groups. foreach ($build_measurements as $measurement) { $clean_measurement = $clean_measurements[$measurement]; if (!array_key_exists($measurement, $overview_data[$day][$group_name])) { $overview_data[$day][$group_name][$measurement] = intval($build_row[$clean_measurement]); } else { $overview_data[$day][$group_name][$measurement] += $build_row[$clean_measurement]; }