1
0
Fork 1
mirror of https://gitlab.postmarketos.org/postmarketOS/pmbootstrap.git synced 2025-07-13 19:39:51 +03:00
pmbootstrap/test/test_kconfig_check.py
BO41 944f539dd6
args.logfd: remove (MR 2114)
Replace "args.logfd" with "pmb.helpers.logging.logfd" in order to avoid
passing "args" to all functions that only use it to write to logfd. This
is the first step to get rid of this args-passed-to-all-functions
pattern in pmbootstrap.
2021-10-10 16:59:17 +02:00

56 lines
2.2 KiB
Python

# Copyright 2021 Antoine Fontaine
# Copyright 2021 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import pytest
import sys
import pmb_test
import pmb_test.const
import pmb.parse.kconfig
@pytest.fixture
def args(tmpdir, request):
import pmb.parse
sys.argv = ["pmbootstrap.py", "kconfig", "check"]
args = pmb.parse.arguments()
args.log = args.work + "/log_testsuite.txt"
pmb.helpers.logging.init(args)
request.addfinalizer(pmb.helpers.logging.logfd.close)
return args
def test_kconfig_check(args):
# basic checks, from easiers to hard-ish
dir = f"{pmb_test.const.testdata}/kconfig_check/"
assert not pmb.parse.kconfig.check_file(args, dir +
"bad-missing-required-option")
assert pmb.parse.kconfig.check_file(args, dir + "good")
assert not pmb.parse.kconfig.check_file(args, dir + "bad-wrong-option-set")
assert pmb.parse.kconfig.check_file(args, dir + "good-anbox",
anbox=True)
assert not pmb.parse.kconfig.check_file(args, dir +
"bad-array-missing-some-options",
anbox=True)
assert pmb.parse.kconfig.check_file(args, dir + "good-nftables",
nftables=True)
assert not pmb.parse.kconfig.check_file(args, dir + "bad-nftables",
nftables=True)
assert pmb.parse.kconfig.check_file(args, dir + "good-zram",
zram=True)
# tests on real devices
# it's a postmarketOS device, it will have the required options, and
# supports nftables (with pmb:kconfigcheck-nftables)
assert pmb.parse.kconfig.check(args, "nokia-n900")
# supports Anbox (with pmb:kconfigcheck-anbox)
assert pmb.parse.kconfig.check(args, "postmarketos-allwinner")
# testing the force param: nokia-n900 will never have anbox support
assert not pmb.parse.kconfig.check(args, "nokia-n900",
force_anbox_check=True)
# supports zram (with pmb:kconfigcheck-zram), nftables
assert pmb.parse.kconfig.check(args, "linux-purism-librem5")