function main() { require_existence_of($_GET, array('builder' => '/^[A-Za-z0-9 \\(\\)\\-_]+$/')); $builder_name = $_GET['builder']; $db = connect(); $builder_row = $db->select_first_row('builders', NULL, array('name' => $builder_name)); if (!$builder_row) { exit_with_error('BuilderNotFound'); } $builder_id = $builder_row['id']; $generator = new ResultsJSONGenerator($db, $builder_id); if ($generator->generate()) { exit_with_success(); } else { exit_with_error('ResultsNotFound'); } }
function main() { require_existence_of($_POST, array('master' => '/[A-Za-z0-9\\.]+/', 'builder_name' => '/^[A-Za-z0-9 \\(\\)\\-_]+$/', 'build_number' => '/^[0-9]+?$/', 'build_slave' => '/^[A-Za-z0-9\\-_]+$/', 'revisions' => '/^.+?$/', 'start_time' => '/^[0-9]+(\\.[0-9]+)?$/', 'end_time' => '/^[0-9]+(\\.[0-9]+)?$/')); $master = $_POST['master']; $builder_name = $_POST['builder_name']; $build_number = intval($_POST['build_number']); $start_time = float_to_time($_POST['start_time']); $end_time = float_to_time($_POST['end_time']); $revisions = json_decode(str_replace('\\', '', $_POST['revisions']), TRUE); foreach ($revisions as $repository_name => $revision_data) { require_format('repository_name', $repository_name, '/^\\w+$/'); require_existence_of($revision_data, array('revision' => '/^[a-z0-9]+$/', 'timestamp' => '/^[a-z0-9\\-\\.:TZ]+$/'), 'revision'); } if (!array_key_exists('file', $_FILES) or !array_key_exists('tmp_name', $_FILES['file']) or count($_FILES['file']['tmp_name']) <= 0) { exit_with_error('ResultsJSONNotIncluded'); } $json_path = $_FILES['file']['tmp_name']; $db = connect(); store_results($db, $master, $builder_name, $build_number, $start_time, $end_time, $revisions, $json_path); echo_success(); }
function main() { require_existence_of($_GET, array('builder' => '/^[A-Za-z0-9 \\(\\)\\-_]+$/')); $builder_param = $_GET['builder']; $db = connect(); $builder_row = $db->select_first_row('builders', NULL, array('name' => $builder_param)); if (!$builder_row) { $builder_row = $db->select_first_row('builders', NULL, array('id' => $builder_param)); if (!$builder_row) { exit_with_error('BuilderNotFound'); } } $builder_id = $builder_row['id']; $generator = new ResultsJSONGenerator($db, $builder_id); if (!$generator->generate('wrongexpectations')) { exit_with_error('ResultsWithWrongExpectationsNotFound', array('builderId' => $builder_id)); } else { if (!$generator->generate('flaky')) { exit_with_error('FlakyResultsNotFound', array('builderId' => $builder_id)); } else { exit_with_success(); } } }
<?php require_once '../include/json-shared.php'; require_once '../include/test-results.php'; $db = connect(); require_existence_of($_POST, array('master' => '/[A-Za-z0-9\\.]+/', 'builder_name' => '/^[A-Za-z0-9 \\(\\)\\-_]+$/', 'build_number' => '/^[0-9]+?$/', 'build_slave' => '/^[A-Za-z0-9\\-_]+$/', 'revisions' => '/^.+?$/', 'start_time' => '/^[0-9]+(\\.[0-9]+)?$/', 'end_time' => '/^[0-9]+(\\.[0-9]+)?$/')); $master = $_POST['master']; $builder_name = $_POST['builder_name']; $build_number = intval($_POST['build_number']); if (!array_key_exists('file', $_FILES) or !array_key_exists('tmp_name', $_FILES['file']) or count($_FILES['file']['tmp_name']) <= 0) { exit_with_error('ResultsJSONNotIncluded'); } $revisions = json_decode(str_replace('\\', '', $_POST['revisions']), TRUE); foreach ($revisions as $repository_name => $revision_data) { require_format('repository_name', $repository_name, '/^\\w+$/'); require_existence_of($revision_data, array('revision' => '/^[a-z0-9]+$/', 'timestamp' => '/^[a-z0-9\\-\\.:TZ]+$/'), 'revision'); } $test_results = fetch_and_parse_test_results_json($_FILES['file']['tmp_name']); if (!$test_results) { exit_with_error('InvalidResultsJSON'); } $start_time = float_to_time($_POST['start_time']); $end_time = float_to_time($_POST['end_time']); $builder_id = add_builder($db, $master, $builder_name); if (!$builder_id) { exit_with_error('FailedToInsertBuilder', array('master' => $master, 'builderName' => $builder_name)); } $build_id = add_build($db, $builder_id, $build_number); if (!$build_id) { exit_with_error('FailedToInsertBuild', array('builderId' => $builder_id, 'buildNumber' => $build_number)); }