pmb.parse.kconfig: add tests (MR 1916)

This commit is contained in:
Antoine Fontaine 2020-05-14 05:29:16 +02:00 committed by Oliver Smith
parent 28da033267
commit c5d0f76005
No known key found for this signature in database
GPG Key ID: 5AE7F5513E0885CB
6 changed files with 261 additions and 0 deletions

View File

@ -0,0 +1,46 @@
# Copyright 2020 Antoine Fontaine
# Copyright 2020 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(args.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)
# tests on real devices
# it's a postmarketOS device, it will have the required options
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)

View File

@ -0,0 +1,53 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 5.3.2 Kernel Configuration
#
#
# Compiler: gcc (Alpine 9.2.0) 9.2.0
#
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=90200
CONFIG_CLANG_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y
CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
#
# General setup
#
# the required options
CONFIG_BLK_DEV_INITRD=y
CONFIG_CGROUPS=y
CONFIG_DEVTMPFS=y
CONFIG_DM_CRYPT=y
CONFIG_SYSVIPC=y
CONFIG_VT=y
CONFIG_UEVENT_HELPER=y
CONFIG_LBDAF=y
CONFIG_EXT4_FS=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_TMPFS_XATTR=y
CONFIG_ASHMEM=y
CONFIG_ANDROID_BINDER_IPC=y
# CONFIG_ANDROID_BINDERFS is not set
### although hwbinder contains "binder", it shouldn't be valid
CONFIG_ANDROID_BINDER_DEVICES="hwbinder"
CONFIG_NETFILTER_XTABLES=y
CONFIG_NETFILTER_XT_MATCH_COMMENT=y
CONFIG_IP_NF_MANGLE=y
CONFIG_FUSE_FS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_TUN=y
CONFIG_VETH=y
CONFIG_VLAN_8021Q=y
CONFIG_BRIDGE=y
CONFIG_BRIDGE_VLAN_FILTERING=y

View File

@ -0,0 +1,32 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 5.3.2 Kernel Configuration
#
#
# Compiler: gcc (Alpine 9.2.0) 9.2.0
#
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=90200
CONFIG_CLANG_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y
CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
#
# General setup
#
# the required options
CONFIG_BLK_DEV_INITRD=y
CONFIG_CGROUPS=y
CONFIG_DEVTMPFS=y
CONFIG_DM_CRYPT=y
### this option is missing:
# CONFIG_SYSVIPC is not set
CONFIG_VT=y
CONFIG_UEVENT_HELPER=y
CONFIG_LBDAF=y

View File

@ -0,0 +1,33 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 5.3.2 Kernel Configuration
#
#
# Compiler: gcc (Alpine 9.2.0) 9.2.0
#
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=90200
CONFIG_CLANG_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y
CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
#
# General setup
#
# the required options
CONFIG_BLK_DEV_INITRD=y
CONFIG_CGROUPS=y
CONFIG_DEVTMPFS=y
CONFIG_DM_CRYPT=y
CONFIG_SYSVIPC=y
CONFIG_VT=y
CONFIG_UEVENT_HELPER=y
CONFIG_LBDAF=y
### here's one wrong option set:
ANDROID_PARANOID_NETWORK=y

47
test/testdata/kconfig_check/good vendored Normal file
View File

@ -0,0 +1,47 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 5.3.2 Kernel Configuration
#
#
# Compiler: gcc (Alpine 9.2.0) 9.2.0
#
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=90200
CONFIG_CLANG_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y
CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
#
# General setup
#
# the required options
CONFIG_BLK_DEV_INITRD=y
CONFIG_CGROUPS=y
CONFIG_DEVTMPFS=y
CONFIG_DM_CRYPT=y
CONFIG_SYSVIPC=y
CONFIG_VT=y
CONFIG_UEVENT_HELPER=y
CONFIG_LBDAF=y
### here's one explicitely disabled:
# ANDROID_PARANOID_NETWORK is not set
### here's one set to module:
CONFIG_EXT4_FS=m
### here's a line set to no:
CONFIG_KINETO_GAN=n
# a bit of random stuff
CONFIG_LOCALVERSION="-nokia-n900"
CONFIG_BUILD_SALT=""
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZMA is not set
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_SWAP=y

50
test/testdata/kconfig_check/good-anbox vendored Normal file
View File

@ -0,0 +1,50 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 5.3.2 Kernel Configuration
#
#
# Compiler: gcc (Alpine 9.2.0) 9.2.0
#
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=90200
CONFIG_CLANG_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y
CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
#
# General setup
#
# the required options
CONFIG_BLK_DEV_INITRD=y
CONFIG_CGROUPS=y
CONFIG_DEVTMPFS=y
CONFIG_DM_CRYPT=y
CONFIG_SYSVIPC=y
CONFIG_VT=y
CONFIG_UEVENT_HELPER=y
CONFIG_LBDAF=y
CONFIG_EXT4_FS=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_TMPFS_XATTR=y
CONFIG_ASHMEM=y
CONFIG_ANDROID_BINDER_IPC=y
# CONFIG_ANDROID_BINDERFS is not set
CONFIG_ANDROID_BINDER_DEVICES="binder,vndbinder,hwbinder"
CONFIG_NETFILTER_XTABLES=y
CONFIG_NETFILTER_XT_MATCH_COMMENT=y
CONFIG_IP_NF_MANGLE=y
CONFIG_FUSE_FS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_TUN=y
CONFIG_VETH=y
CONFIG_VLAN_8021Q=y
CONFIG_BRIDGE=y
CONFIG_BRIDGE_VLAN_FILTERING=y