anchor.diff:           other_sample_hook_c/1,
            other_sample_hook_d/1,
            other_sample_hook_e/1,
  -         other_sample_hook_f/1
  +         other_sample_hook_f/1,
  +         other_sample_hook_x/1
           ]).
   -endif.
   
  
positive.code:     application:set_env(vmq_plugin, vmq_plugin_hooks, Hooks),
      %% we have to step out .eunit
      application:set_env(vmq_plugin, plugin_dir, ".."),
      application:start(vmq_plugin),
      %% no plugin is yet registered
      call_no_hooks(),
  
  
negative.code: check_plugins([{plugins, Plugins}], Acc) ->
      check_plugins(Plugins, Acc);
  check_plugins([{module, {Name, Module, Fun, Arity}}|Rest], Acc) ->
      case catch apply(Module, module_info, [exports]) of
          {'EXIT', _} ->
              {error, unknown_module};
          Exports ->
              case lists:member({Fun, Arity}, Exports) of
                  true ->
                      check_plugins(Rest,
                                    [{module_plugin,
                                      [{Name, Module, Fun, Arity}]} | Acc]);
                  false ->
                      {error, no_matching_fun_in_module}
              end
      end;
  check_plugins([{application, App, AppPath}|Rest], Acc) ->
      case check_plugin(App, AppPath) of
  