manopapad/proper — pull request #60 by norton (2012-12-21 07:20:42+00:00)
Title: Add option for specifing a callback function to check for false positives when checking a module's specs

````
{false_positive_mfas, fun((mfa(),[Arg::term()],{fail, Result::term()} | {error | exit | throw, Reason::term()}) -> boolean()) | undefined}
````

When checking a module's spec(s), PropEr will treat a counterexample
as a false positive if the user supplied function returns true.
Otherwise, PropEr will treat the counterexample as it normally does.
The inputs to the user supplied function are the MFA, the arguments
passed to the MFA, and the result returned from the MFA or an
exception with it's reason. If needed, the user supplied function can
call erlang:get_stacktrace/0. Default is undefined.

Other changes:

- Added new unit test "test/proper_specs_tests.erl". There were no
existing tests for PropEr's "check_specs" feature.

- Fixed TODO comment in "src/proper_typeserver.erl". The old behavior
was not correct in some cases when checking functions that triggered
an exception. See "proper_typeserver:apply_spec_test/6" for
details.