Current section

Files

Jump to
base32_clockwork rebar.config
Raw

rebar.config

{minimum_otp_vsn, "29.0"}.

{erl_opts, [{i, "src"},
            warnings_as_errors,
            warn_shadow_vars,
            warn_export_all,
            warn_unused_import]}.

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

%% https://rebar3.org/docs/configuration/configuration/#dialyzer
{dialyzer, [{warnings, [error_handling,
                        extra_return,
                        missing_return,
                        %% underspecs,
                        unmatched_returns
                        %% overspecs
                        %% specdiffs
                       ]},
            incremental,
            {plt_apps, top_level_deps},
            %% {plt_apps, all_apps},
            {plt_location, local},
            {base_plt_location, global}]}.

{cover_enabled, true}.

{validate_app_modules, true}.

%% rebar3_fuzzer が使う fuzzing の設定。
%% feedback にはデコーダーの行の到達を計測するモジュールを指定する。
{fuzzer,
 [{target, base32_fuzz_target},
  {max_length, 4096},
  {timeout, 10},
  {on_crash, continue},
  {feedback, [base32, base32_rfc4648, base32_crockford, base32_clockwork, base32_utils]}]}.

{plugins, [rebar3_hex]}.

{profiles,
 [{test,
   [{plugins, [rebar3_proper]},
    {deps, [{proper,
             {git, "https://github.com/proper-testing/proper", {branch, "master"}}}]}]},
  %% fuzzing 専用の profile。fuzzer は Clang と compiler-rt を使った NIF のビルドを
  %% 必要とするため、通常のビルドや test に含めず分離している。
  {fuzzing,
   [{deps, [{fuzzer, "2026.1.0-canary.2"}]},
    %% fuzzer の NIF ビルドと実行を rebar3_fuzzer に任せる。
    %% Hex では公開されていないため、fuzzer と同じタグを git_subdir で指定する。
    {plugins,
     [{rebar3_fuzzer,
       {git_subdir,
        "https://github.com/shiguredo/fuzzer.git",
        {tag, "2026.1.0-canary.2"},
        "rebar3_fuzzer"}}]},
    %% fuzz target は配布物に含めない
    {src_dirs, ["src", "fuzz"]}]}]}.