forked from Mirror/pmbootstrap
We'll be enabling the kernel options for waydroid which would break this test. Change it to UEFI check instead which will probably really never be used on N900.
67 lines
2.7 KiB
Python
67 lines
2.7 KiB
Python
# Copyright 2022 Antoine Fontaine
|
|
# Copyright 2022 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):
|
|
# non-existing package
|
|
assert pmb.parse.kconfig.check(args, "non-existing-kernel-package",
|
|
must_exist=False) is None
|
|
|
|
# basic checks, from easiers to hard-ish
|
|
dir = f"{pmb_test.const.testdata}/kconfig_check/"
|
|
assert not pmb.parse.kconfig.check_file(dir +
|
|
"bad-missing-required-option")
|
|
assert pmb.parse.kconfig.check_file(dir + "good")
|
|
assert not pmb.parse.kconfig.check_file(dir + "bad-wrong-option-set")
|
|
assert pmb.parse.kconfig.check_file(dir + "good-waydroid",
|
|
waydroid=True)
|
|
assert not pmb.parse.kconfig.check_file(dir +
|
|
"bad-array-missing-some-options",
|
|
waydroid=True)
|
|
assert pmb.parse.kconfig.check_file(dir + "good-nftables",
|
|
nftables=True)
|
|
assert not pmb.parse.kconfig.check_file(dir + "bad-nftables",
|
|
nftables=True)
|
|
assert pmb.parse.kconfig.check_file(dir + "good-zram",
|
|
zram=True)
|
|
assert pmb.parse.kconfig.check_file(dir + "good-uefi",
|
|
uefi=True)
|
|
assert not pmb.parse.kconfig.check_file(dir + "bad-uefi",
|
|
uefi=True)
|
|
|
|
# tests on real devices
|
|
# *** do not add more of these! ***
|
|
# moving forward, tests in pmbootstrap.git should become more/completely
|
|
# independent of the currently checked out pmaports.git (#2105)
|
|
|
|
# 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 Waydroid (with pmb:kconfigcheck-waydroid)
|
|
assert pmb.parse.kconfig.check(args, "postmarketos-allwinner")
|
|
|
|
# testing the force param: nokia-n900 will never need the uefi options
|
|
assert not pmb.parse.kconfig.check(args, "nokia-n900",
|
|
force_uefi_check=True)
|
|
|
|
# supports zram (with pmb:kconfigcheck-zram), nftables
|
|
assert pmb.parse.kconfig.check(args, "linux-purism-librem5")
|