Add call to stacktrace when missing (fix #167)
diff --git a/src/meck_code_gen.erl b/src/meck_code_gen.erl
index e7e6736..918161b 100644
--- a/src/meck_code_gen.erl
+++ b/src/meck_code_gen.erl
@@ -190,8 +190,8 @@
-spec inject(Mod::atom(), Func::atom(), Args::[any()],
meck_history:stack_trace()) ->
NewStackTrace::meck_history:stack_trace().
-inject(_Mod, _Func, _Args, []) ->
- [];
+inject(Mod, Func, Args, []) ->
+ [{Mod, Func, Args}];
inject(Mod, Func, Args, [{?MODULE, exec, _AriOrArgs, _Loc}|Stack]) ->
[{Mod, Func, Args} | Stack];
inject(Mod, Func, Args, [{?MODULE, exec, _AriOrArgs}|Stack]) ->
diff --git a/test/meck_tests.erl b/test/meck_tests.erl
index 3ea4de2..5e8dda4 100644
--- a/test/meck_tests.erl
+++ b/test/meck_tests.erl
@@ -75,6 +75,7 @@
fun ?MODULE:shortcut_call_argument_/1,
fun ?MODULE:shortcut_re_add_/1,
fun ?MODULE:shortcut_opaque_/1,
+ fun ?MODULE:shortcut_stacktrace_/1,
fun ?MODULE:delete_/1,
fun ?MODULE:called_false_no_args_/1,
fun ?MODULE:called_true_no_args_/1,
@@ -396,6 +397,13 @@
ok = meck:expect(Mod, test, 0, {test, [a, self()], Ref}),
?assertMatch({test, [a, P], Ref} when P == self(), Mod:test()).
+shortcut_stacktrace_(Mod) ->
+ ok = meck:expect(Mod, test, [true], ok),
+ ?assertEqual(
+ {'EXIT', {function_clause, [{mymod, test, [false], []}]}},
+ catch(Mod:test(false))
+ ).
+
delete_(Mod) ->
ok = meck:expect(Mod, test, 2, ok),
?assertEqual(ok, meck:delete(Mod, test, 2)),