def test_timeout(use_docker, solution_timeout):
    request = ProcessRequest(src=solution_timeout.read_text(),
                             docker=use_docker,
                             **solve_request_base)
    request.process()

    evaluation = request.result.result
    case.assertIs(evaluation.status, ExecutorStatus.ANSWER_CORRECT_TIMEOUT)

    case.assertIs(request.result['case-1.s'].status,
                  ExecutorStatus.ANSWER_CORRECT_TIMEOUT)
    case.assertGreater(request.result['case-1.s'].duration, 1.0)

    case.assertIs(request.result['case-2'].status,
                  ExecutorStatus.ANSWER_CORRECT)
    case.assertIs(request.result['case-3.0'].status,
                  ExecutorStatus.ANSWER_CORRECT_TIMEOUT)
    case.assertIs(request.result['case-3.1'].status,
                  ExecutorStatus.ANSWER_CORRECT_TIMEOUT)
    case.assertIs(request.result['case-3.2'].status,
                  ExecutorStatus.ANSWER_CORRECT_TIMEOUT)
    case.assertIs(request.result['case-3.3'].status,
                  ExecutorStatus.ANSWER_CORRECT_TIMEOUT)
    case.assertIs(request.result['case-3.4'].status,
                  ExecutorStatus.ANSWER_CORRECT_TIMEOUT)
def test_solution_fatal_compile(use_docker, solution_fatal_compile):
    request = ProcessRequest(src=solution_fatal_compile.read_text(),
                             docker=use_docker,
                             **solve_request_base)

    with case.assertRaises(CompileException):
        request.process()
def test_wrong(use_docker, solution_wrong):
    request = ProcessRequest(src=solution_wrong.read_text(),
                             docker=use_docker,
                             **solve_request_base)
    request.process()

    evaluation = request.result.result
    case.assertIs(evaluation.status, ExecutorStatus.ANSWER_WRONG)

    for subcase in request.iter_subcases():
        result = request.result[subcase.id]
        case.assertIs(result.status, ExecutorStatus.ANSWER_WRONG)
Example #4
0
def test_solution_fatal(use_docker, solution_fatal):
    request = ProcessRequest(src=None,
                             docker=use_docker,
                             **generate_input_request_base)
    request.process()

    evaluation = request.result.result
    case.assertIs(evaluation.status, ExecutorStatus.ERROR_WHILE_RUNNING)
    case.assertIs(request.result.compilation.status, ExecutorStatus.OK)

    for subcase in request.iter_subcases():
        result = request.result[subcase.id]
        case.assertIs(result.status, ExecutorStatus.ERROR_WHILE_RUNNING)
def test_fatal(use_docker, solution_fatal):
    request = ProcessRequest(src=solution_fatal.read_text(),
                             docker=use_docker,
                             **solve_request_base)
    request.process()

    evaluation = request.result.result
    case.assertIs(evaluation.status, ExecutorStatus.ERROR_WHILE_RUNNING)

    for subcase in request.iter_subcases():
        result = request.result[subcase.id]
        case.assertIs(result.status, ExecutorStatus.ERROR_WHILE_RUNNING)
        case.assertIn('!!!FOOBAR!!!', result.stderr.read_text())
def test_solution_timeout(use_docker, solution_timeout):
    request = ProcessRequest(src=solution_timeout.read_text(),
                             docker=use_docker,
                             **solve_request_base)
    request.process()

    evaluation = request.result.result
    case.assertIs(evaluation.status, ExecutorStatus.ANSWER_CORRECT_TIMEOUT)
    case.assertIs(request.result.compilation.status, ExecutorStatus.OK)

    for subcase in request.iter_subcases():
        result = request.result[subcase.id]
        case.assertIs(result.status, ExecutorStatus.ANSWER_CORRECT_TIMEOUT)
def test_ok(use_docker, solution_correct):
    request = ProcessRequest(src=None,
                             docker=use_docker,
                             **generate_output_request_base)
    request.process()

    evaluation = request.result.result
    case.assertIs(evaluation.status, ExecutorStatus.OK)
    case.assertIs(request.result.compilation.status, ExecutorStatus.OK)

    for subcase in request.iter_subcases():
        result = request.result[subcase.id]
        case.assertIs(result.status, ExecutorStatus.OK)
def test_solution_correct(use_docker, solution_correct):
    request = ProcessRequest(src=None,
                             docker=use_docker,
                             **generate_input_request_base)
    request.process()

    evaluation = request.result.result
    case.assertIs(evaluation.status, ExecutorStatus.OK)

    case.assertIs(request.result['case-1.s'].status, ExecutorStatus.IGNORE)
    case.assertIs(request.result['case-2'].status, ExecutorStatus.OK)
    case.assertIs(request.result['case-3.0'].status, ExecutorStatus.OK)
    case.assertIs(request.result['case-3.1'].status, ExecutorStatus.OK)
    case.assertIs(request.result['case-3.2'].status, ExecutorStatus.OK)
    case.assertIs(request.result['case-3.3'].status, ExecutorStatus.OK)
    case.assertIs(request.result['case-3.4'].status, ExecutorStatus.OK)
Example #9
0
def test_solution_fatal(use_docker, solution_fatal):
    request = ProcessRequest(
        src=None,
        docker=use_docker,
        **generate_output_request_base
    )
    request.process()

    evaluation = request.result.result
    case.assertIs(evaluation.status, ExecutorStatus.ERROR_WHILE_RUNNING)

    case.assertIs(request.result['case-1.s'].status, ExecutorStatus.ERROR_WHILE_RUNNING)
    case.assertIs(request.result['case-2'].status, ExecutorStatus.ERROR_WHILE_RUNNING)
    case.assertIs(request.result['case-3.0'].status, ExecutorStatus.ERROR_WHILE_RUNNING)
    case.assertIs(request.result['case-3.1'].status, ExecutorStatus.ERROR_WHILE_RUNNING)
    case.assertIs(request.result['case-3.2'].status, ExecutorStatus.ERROR_WHILE_RUNNING)
    case.assertIs(request.result['case-3.3'].status, ExecutorStatus.ERROR_WHILE_RUNNING)
    case.assertIs(request.result['case-3.4'].status, ExecutorStatus.ERROR_WHILE_RUNNING)
    case.assertIn('!!!FOOBAR!!!', request.result['case-3.4'].stderr.read_text())