Meck doesn't support modules built with '+deterministic' compile option
nablaa opened this issue · 1 comments
nablaa commented
Running meck against modules built with +deterministic
compile option fails with the following stacktrace:
::{function_clause,[{lists,'-filter/2-lc$^0/1-0-',
[undefined],
[{file,"lists.erl"},{line,1286}]},
{meck_proc,backup_original,3,
[{file,"/home/foobar/meck/_build/default/lib/meck/src/meck_proc.erl"},
{line,361}]},
{meck_proc,init,1,
[{file,"/home/foobar/meck/_build/default/lib/meck/src/meck_proc.erl"},
{line,206}]},
{gen_server,init_it,2,
[{file,"gen_server.erl"},{line,365}]},
{gen_server,init_it,6,[{file,[...]},{line,...}]},
{proc_lib,init_p_do_apply,3,[{file,...},{...}]}]}
This is caused by the fact that the module doesn't have compile options in module_info/1
:
$ cat foo.erl
-module(foo).
$ erlc foo.erl
$ erl -noshell -eval 'io:format("~p~n", [foo:module_info(compile)])' -run init stop
[{options,[]},
{version,"7.1.1"},
{source,"/home/foobar/foo.erl"}]
$ rm foo.beam
$ erlc +deterministic foo.erl
$ erl -noshell -eval 'io:format("~p~n", [foo:module_info(compile)])' -run init stop
[{version,"7.1.1"}]
Reproduction Steps
Run meck against modules built with +deterministic
option.
Expected behavior
Meck should run against modules built with +deterministic
.
Versions
- Meck version: a1f83d3
- Erlang version: OTP/20