Current section
Files
Jump to
Current section
Files
base32_clockwork
rebar.config
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"]}]}]}.