def _testcase_reproduces_in_revision(testcase, testcase_file_path, job_type, revision, should_log=True, min_revision=None, max_revision=None):
    'Test to see if a test case reproduces in the specified revision.'
    if should_log:
        log_message = ('Testing r%d' % revision)
        if ((min_revision is not None) and (max_revision is not None)):
            log_message += (' (current range %d:%d)' % (min_revision, max_revision))
        testcase = data_handler.get_testcase_by_id(testcase.key.id())
        data_handler.update_testcase_comment(testcase, data_types.TaskState.WIP, log_message)
    build_manager.setup_build(revision)
    if (not build_manager.check_app_path()):
        raise errors.BuildSetupError(revision, job_type)
    if testcase_manager.check_for_bad_build(job_type, revision):
        log_message = ('Bad build at r%d. Skipping' % revision)
        testcase = data_handler.get_testcase_by_id(testcase.key.id())
        data_handler.update_testcase_comment(testcase, data_types.TaskState.WIP, log_message)
        raise errors.BadBuildError(revision, job_type)
    test_timeout = environment.get_value('TEST_TIMEOUT', 10)
    result = testcase_manager.test_for_crash_with_retries(testcase, testcase_file_path, test_timeout, http_flag=testcase.http_flag)
    return result.is_crash()
Test to see if a test case reproduces in the specified revision.
def _testcase_reproduces_in_revision(testcase, testcase_file_path, job_type, revision, should_log=True, min_revision=None, max_revision=None):
    
    if should_log:
        log_message = ('Testing r%d' % revision)
        if ((min_revision is not None) and (max_revision is not None)):
            log_message += (' (current range %d:%d)' % (min_revision, max_revision))
        testcase = data_handler.get_testcase_by_id(testcase.key.id())
        data_handler.update_testcase_comment(testcase, data_types.TaskState.WIP, log_message)
    build_manager.setup_build(revision)
    if (not build_manager.check_app_path()):
        raise errors.BuildSetupError(revision, job_type)
    if testcase_manager.check_for_bad_build(job_type, revision):
        log_message = ('Bad build at r%d. Skipping' % revision)
        testcase = data_handler.get_testcase_by_id(testcase.key.id())
        data_handler.update_testcase_comment(testcase, data_types.TaskState.WIP, log_message)
        raise errors.BadBuildError(revision, job_type)
    test_timeout = environment.get_value('TEST_TIMEOUT', 10)
    result = testcase_manager.test_for_crash_with_retries(testcase, testcase_file_path, test_timeout, http_flag=testcase.http_flag)
    return result.is_crash()