%% -*- mode: erlang;erlang-indent-level: 2;indent-tabs-mode: nil -*-
%% ex: ts=4 sw=4 ft=erlang et

%% == Erlang Compiler ==

%% Erlang compiler options
{erl_opts, [ warn_unused_vars
           , warn_export_all
           , warn_shadow_vars
           , warn_unused_import
           , warn_unused_function
           , warn_bif_clash
           , warn_unused_record
           , warn_deprecated_function
           , warn_obsolete_guard
           , strict_validation
           , warn_export_vars
           , warn_exported_vars
           , warn_missing_spec
           , warn_untyped_record
           , debug_info]}.

{profiles, [ {test, [ {extra_src_dirs, ["test/examples"]}
                    , {deps, [{meck, "0.9.2"}]}
                    , {erl_opts, [nowarn_missing_spec, nowarn_export_all]}
                    , {dialyzer, [ {warnings, [ no_return
                                              , unmatched_returns
                                              , error_handling
                                              ]}
                                 ]}
                    ]}
            ]}.

%% == Common Test ==

{ct_compile_opts, [ warn_unused_vars
                  , warn_export_all
                  , warn_shadow_vars
                  , warn_unused_import
                  , warn_unused_function
                  , warn_bif_clash
                  , warn_unused_record
                  , warn_deprecated_function
                  , warn_obsolete_guard
                  , strict_validation
                  , warn_export_vars
                  , warn_exported_vars
                  , warn_missing_spec
                  , warn_untyped_record
                  , debug_info]}.

{ct_opts, [ {sys_config, ["./config/test.config"]}
          , {logdir, "./logs"}
          , {verbose, true}
          ]}.

%% == Cover ==

{cover_enabled, true}.

{cover_opts, [verbose]}.

%% == Dependencies ==

{deps, [ {zipper, "1.0.1"}
       , {katana_code, "1.1.2"}
       ]}.

%% == Dialyzer ==

{dialyzer, [ {warnings, [ no_return
                        , unmatched_returns
                        , error_handling
                        , unknown
                        ]}
           , {plt_apps, top_level_deps}
           , {plt_extra_apps, [kernel, stdlib]}
           , {plt_location, local}]}.

{shell, [{config, "config/test.config"}]}.

%% == xref ==

{xref_checks, [ undefined_function_calls
              , locals_not_used
              , deprecated_function_calls
              ]}.

%% == Aliases ==

{alias, [{test, [xref, dialyzer, hank, ct, cover, edoc]}]}.

{project_plugins, [
    rebar3_hex,
    rebar3_hank
]}.

%% == hank ==

{hank, [
    {ignore, [
        {"test/*/**", unnecessary_function_arguments},
        {"test/*/**", unused_macros},
        {"test/*/**", unused_callbacks}
    ]}
]}.
