Current section

Files

Jump to
nerves_system_linter test nerves system linter linter_test.exs
Raw

test/nerves/system/linter/linter_test.exs

defmodule Nerves.System.LinterTest do
use ExUnit.Case
alias Nerves.System.Linter
alias Nerves.System.Defconfig
defmodule SuccessRule do
use Nerves.System.Linter.Rule
ensure_package("BR2_PACKAGE_FWUP")
# ensure_value_match("PACKAGE_NAME", <<"nerves_system_", rest :: binary>>)
evaluate()
end
defmodule WarnRule do
use Nerves.System.Linter.Rule
ensure_package("NOT_REAL_PACKAGE_A", warn: true)
evaluate()
end
defmodule ErrorRule do
use Nerves.System.Linter.Rule
ensure_package("NOT_REAL_PACKAGE_B")
evaluate()
end
@success_rule SuccessRule
@warn_rule WarnRule
@error_rule ErrorRule
defp find_file(filename) do
file = Path.join(["fixture", "buildroot", filename])
if File.exists?(file) do
file
else
flunk "Coudl not find file: #{filename}"
end
end
@timeout :infinity
test "lints rpi0 build config" do
file = find_file("rpi0.build.config")
res = Linter.file_to_map(file)
|> Defconfig.add_rules([@success_rule, @warn_rule, @error_rule])
|> Linter.eval_rules()
# make sure all the rules were evaluated.
assert res.rules == []
assert res.errors == ["ensure_package: BR2_PACKAGE_NOT_REAL_PACKAGE_B: false"]
assert res.warnings == ["ensure_package: BR2_PACKAGE_NOT_REAL_PACKAGE_A: false"]
assert res.success == ["ensure_package: BR2_PACKAGE_FWUP: true"]
end
test "lints rpi0 defconfig" do
file = find_file("rpi0_defconfig")
res = Linter.file_to_map(file)
|> Defconfig.add_rules([@success_rule, @warn_rule, @error_rule])
|> Linter.eval_rules()
# make sure all the rules were evaluated.
assert res.rules == []
assert res.errors == ["ensure_package: BR2_PACKAGE_NOT_REAL_PACKAGE_B: false"]
assert res.warnings == ["ensure_package: BR2_PACKAGE_NOT_REAL_PACKAGE_A: false"]
assert res.success == ["ensure_package: BR2_PACKAGE_FWUP: true"]
end
end