Exemplo n.º 1
0
def check_post_err(
    fn: Callable, optionset: AnalysisOptionSet = AnalysisOptionSet()
) -> ComparableLists:
    local_opts = AnalysisOptionSet(max_iterations=20)
    options = local_opts.overlay(optionset)
    states = [m.state for m in run_checkables(analyze_function(fn, options))]
    return (states, [MessageType.POST_ERR])
Exemplo n.º 2
0
def check_fail(
    fn: Callable, optionset: AnalysisOptionSet = AnalysisOptionSet()
) -> ComparableLists:
    local_opts = AnalysisOptionSet(max_iterations=40, per_condition_timeout=5)
    options = local_opts.overlay(optionset)
    states = [m.state for m in run_checkables(analyze_function(fn, options))]
    return (states, [MessageType.POST_FAIL])
Exemplo n.º 3
0
def check_exec_err(fn: Callable, message_prefix='') -> ComparableLists:
    messages = analyze_function(fn)
    if all(m.message.startswith(message_prefix) for m in messages):
        return ([m.state for m in messages], [MessageType.EXEC_ERR])
    else:
        return ([(m.state, m.message)
                 for m in messages], [(MessageType.EXEC_ERR, message_prefix)])
Exemplo n.º 4
0
def check_unknown(
    fn: Callable, optionset: AnalysisOptionSet = AnalysisOptionSet()
) -> ComparableLists:
    local_opts = AnalysisOptionSet(max_iterations=40, per_condition_timeout=3)
    options = local_opts.overlay(optionset)
    messages = [(m.state, m.message, m.traceback)
                for m in run_checkables(analyze_function(fn, options))]
    return (messages, [(MessageType.CANNOT_CONFIRM, "Not confirmed.", "")])
Exemplo n.º 5
0
def check_ok(
    fn: Callable, optionset: AnalysisOptionSet = AnalysisOptionSet()
) -> ComparableLists:
    local_opts = AnalysisOptionSet(per_condition_timeout=5)
    options = local_opts.overlay(optionset)
    messages = [
        message for message in run_checkables(analyze_function(fn, options))
        if message.state != MessageType.CONFIRMED
    ]
    return (messages, [])
Exemplo n.º 6
0
    def test_callable_repr(self) -> None:
        def f(f1: Callable[[int], int]) -> int:
            """ post: _ != 1234 """
            return f1(4)

        messages = run_checkables(analyze_function(f))
        self.assertEqual(len(messages), 1)
        self.assertEqual(
            messages[0].message,
            "false when calling f(f1 = lambda a: 1234) (which returns 1234)",
        )
Exemplo n.º 7
0
def check_exec_err(
    fn: Callable, message_prefix="", optionset: AnalysisOptionSet = AnalysisOptionSet()
) -> ComparableLists:
    local_opts = AnalysisOptionSet(max_iterations=20, per_condition_timeout=5)
    options = local_opts.overlay(optionset)
    messages = run_checkables(analyze_function(fn, options))
    if all(m.message.startswith(message_prefix) for m in messages):
        return ([m.state for m in messages], [MessageType.EXEC_ERR])
    else:
        return (
            [(m.state, m.message) for m in messages],
            [(MessageType.EXEC_ERR, message_prefix)],
        )
Exemplo n.º 8
0
    def test_getattr(self) -> None:
        class Otter:
            def do_cute_human_things_with_hands(self) -> str:
                return "cuteness"

        def f(s: str) -> str:
            """ post: _ != "cuteness" """
            try:
                return getattr(Otter(), s)()
            except:
                return ""

        messages = run_checkables(
            analyze_function(
                f, AnalysisOptionSet(max_iterations=20,
                                     per_condition_timeout=5)))
        self.assertEqual(len(messages), 1)
        self.assertEqual(
            messages[0].message,
            "false when calling f(s = 'do_cute_human_things_with_hands') (which returns 'cuteness')",
        )
Exemplo n.º 9
0
def check_states(
    fn: Callable, optionset: AnalysisOptionSet = AnalysisOptionSet()
) -> Set[MessageType]:
    local_opts = AnalysisOptionSet(max_iterations=40, per_condition_timeout=5)
    options = local_opts.overlay(optionset)
    return set([m.state for m in run_checkables(analyze_function(fn, options))])
Exemplo n.º 10
0
def check_ok(fn: Callable,
             options: Optional[AnalysisOptions] = None) -> ComparableLists:
    messages = analyze_function(fn,
                                options) if options else analyze_function(fn)
    messages = [m for m in messages if m.state != MessageType.CONFIRMED]
    return (messages, [])
Exemplo n.º 11
0
def check_unknown(fn: Callable) -> ComparableLists:
    return ([(m.state, m.message, m.traceback) for m in analyze_function(fn)],
            [(MessageType.CANNOT_CONFIRM, 'Not confirmed.', '')])
Exemplo n.º 12
0
def check_post_err(fn: Callable) -> ComparableLists:
    return ([m.state for m in analyze_function(fn)], [MessageType.POST_ERR])
Exemplo n.º 13
0
def check_fail(fn: Callable,
               options: Optional[AnalysisOptions] = None) -> ComparableLists:
    messages = analyze_function(fn,
                                options) if options else analyze_function(fn)
    return ([m.state for m in messages], [MessageType.POST_FAIL])
Exemplo n.º 14
0
def check_ok(fn: Callable, options: Optional[AnalysisOptions]=None) -> ComparableLists:
    messages = analyze_function(fn, options) if options else analyze_function(fn)
    return (messages, [])
Exemplo n.º 15
0
def check_ok(fn: Callable) -> ComparableLists:
    return (analyze_function(fn), [])
Exemplo n.º 16
0
def check_fail(fn: Callable) -> ComparableLists:
    return ([m.state for m in analyze_function(fn)], [MessageType.POST_FAIL])