Closed flowerett closed 3 years ago
Currently, OTP/23 is not supported due to the outdated version of the :proper library. We discovered that stack traces from exceptions raised inside prop checks are not visible.
:proper
This happens at this line: https://github.com/alfert/propcheck/blob/master/lib/propcheck.ex#L452 error got reraised inside the :proper.forall call: https://github.com/alfert/propcheck/blob/master/lib/propcheck.ex#L425
:proper.forall
What has been discovered and done so far:
erlang:get_stacktrace/0 is deprecated and starting from OTP/23 returns empty stack trace: https://erlang.org/doc/man/erlang.html#get_stacktrace-0
erlang:get_stacktrace/0
last version of proper was released on August 21, 2018, it's outdated - https://hex.pm/packages/proper/1.3.0 With OTP/23 next macro returns an empty stack trace: https://github.com/proper-testing/proper/blob/f2b7b81666b21707244a40857cf50f4362b6e3c2/include/proper_internal.hrl#L64
The fix for that macro is already merged to master: https://github.com/proper-testing/proper/pull/226/files
Updating to the latest version of :proper (from GitHub) solves the problem with the missing stack trace.
Updating to the latest version of :proper brakes a lot of tests due to some API changes, I guess there were several braking requests, so far I found this one: https://github.com/proper-testing/proper/pull/220/files
Work for updating the :proper started in this PR: https://github.com/alfert/propcheck/pull/179 Any help or contribution is welcome!
I will close this issues as it seems to be fixed, but we need to keep an eye on :proper's future changes.
Currently, OTP/23 is not supported due to the outdated version of the
:proper
library. We discovered that stack traces from exceptions raised inside prop checks are not visible.This happens at this line: https://github.com/alfert/propcheck/blob/master/lib/propcheck.ex#L452 error got reraised inside the
:proper.forall
call: https://github.com/alfert/propcheck/blob/master/lib/propcheck.ex#L425What has been discovered and done so far:
erlang:get_stacktrace/0
is deprecated and starting from OTP/23 returns empty stack trace: https://erlang.org/doc/man/erlang.html#get_stacktrace-0last version of proper was released on August 21, 2018, it's outdated - https://hex.pm/packages/proper/1.3.0 With OTP/23 next macro returns an empty stack trace: https://github.com/proper-testing/proper/blob/f2b7b81666b21707244a40857cf50f4362b6e3c2/include/proper_internal.hrl#L64
The fix for that macro is already merged to master: https://github.com/proper-testing/proper/pull/226/files
Updating to the latest version of
:proper
(from GitHub) solves the problem with the missing stack trace.Updating to the latest version of
:proper
brakes a lot of tests due to some API changes, I guess there were several braking requests, so far I found this one: https://github.com/proper-testing/proper/pull/220/filesWork for updating the
:proper
started in this PR: https://github.com/alfert/propcheck/pull/179 Any help or contribution is welcome!