コード例 #1
0
ファイル: failing-tests.php プロジェクト: kodybrown/webkit
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');
    }
}
コード例 #2
0
ファイル: report.php プロジェクト: fka2004/webkit
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();
}
コード例 #3
0
ファイル: failing-tests.php プロジェクト: fka2004/webkit
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();
        }
    }
}
コード例 #4
0
ファイル: report.php プロジェクト: kodybrown/webkit
<?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));
}