Upstream renamed this test in commit0c6f0d77ab("rtc: Rename lib_test to test_rtc_lib"), so update our modules.bzl and kunit test configs accordingly. Fixes:0c6f0d77ab("rtc: Rename lib_test to test_rtc_lib") Change-Id: I7dbacb6f0a25338782ea5f95fab0655ee998edb1 Signed-off-by: Carlos Llamas <cmllamas@google.com>
302 lines
9.9 KiB
Python
302 lines
9.9 KiB
Python
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (C) 2022 The Android Open Source Project
|
|
|
|
"""
|
|
This module contains a full list of kernel modules
|
|
compiled by GKI.
|
|
"""
|
|
|
|
_COMMON_GKI_MODULES_LIST = [
|
|
# keep sorted
|
|
"drivers/block/virtio_blk.ko",
|
|
"drivers/block/zram/zram.ko",
|
|
"drivers/bluetooth/btbcm.ko",
|
|
"drivers/bluetooth/btqca.ko",
|
|
"drivers/bluetooth/btsdio.ko",
|
|
"drivers/bluetooth/hci_uart.ko",
|
|
"drivers/char/virtio_console.ko",
|
|
"drivers/gnss/gnss.ko",
|
|
"drivers/misc/vcpu_stall_detector.ko",
|
|
"drivers/net/can/dev/can-dev.ko",
|
|
"drivers/net/can/slcan/slcan.ko",
|
|
"drivers/net/can/vcan.ko",
|
|
"drivers/net/macsec.ko",
|
|
"drivers/net/mii.ko",
|
|
"drivers/net/ppp/bsd_comp.ko",
|
|
"drivers/net/ppp/ppp_deflate.ko",
|
|
"drivers/net/ppp/ppp_generic.ko",
|
|
"drivers/net/ppp/ppp_mppe.ko",
|
|
"drivers/net/ppp/pppox.ko",
|
|
"drivers/net/ppp/pptp.ko",
|
|
"drivers/net/slip/slhc.ko",
|
|
"drivers/net/usb/aqc111.ko",
|
|
"drivers/net/usb/asix.ko",
|
|
"drivers/net/usb/ax88179_178a.ko",
|
|
"drivers/net/usb/cdc_eem.ko",
|
|
"drivers/net/usb/cdc_ether.ko",
|
|
"drivers/net/usb/cdc_ncm.ko",
|
|
"drivers/net/usb/r8152.ko",
|
|
"drivers/net/usb/r8153_ecm.ko",
|
|
"drivers/net/usb/rtl8150.ko",
|
|
"drivers/net/usb/usbnet.ko",
|
|
"drivers/net/wwan/wwan.ko",
|
|
"drivers/power/sequencing/pwrseq-core.ko",
|
|
"drivers/pps/pps_core.ko",
|
|
"drivers/ptp/ptp.ko",
|
|
"drivers/thunderbolt/thunderbolt.ko",
|
|
"drivers/usb/class/cdc-acm.ko",
|
|
"drivers/usb/mon/usbmon.ko",
|
|
"drivers/usb/serial/ftdi_sio.ko",
|
|
"drivers/usb/serial/usbserial.ko",
|
|
"drivers/virtio/virtio_balloon.ko",
|
|
"drivers/virtio/virtio_pci.ko",
|
|
"drivers/virtio/virtio_pci_legacy_dev.ko",
|
|
"drivers/virtio/virtio_pci_modern_dev.ko",
|
|
"fs/netfs/netfs.ko",
|
|
"kernel/kheaders.ko",
|
|
"lib/crc/crc-ccitt.ko",
|
|
"lib/crypto/libarc4.ko",
|
|
"mm/zsmalloc.ko",
|
|
"net/6lowpan/6lowpan.ko",
|
|
"net/6lowpan/nhc_dest.ko",
|
|
"net/6lowpan/nhc_fragment.ko",
|
|
"net/6lowpan/nhc_hop.ko",
|
|
"net/6lowpan/nhc_ipv6.ko",
|
|
"net/6lowpan/nhc_mobility.ko",
|
|
"net/6lowpan/nhc_routing.ko",
|
|
"net/6lowpan/nhc_udp.ko",
|
|
"net/8021q/8021q.ko",
|
|
"net/9p/9pnet.ko",
|
|
"net/9p/9pnet_fd.ko",
|
|
"net/bluetooth/bluetooth.ko",
|
|
"net/bluetooth/hidp/hidp.ko",
|
|
"net/bluetooth/rfcomm/rfcomm.ko",
|
|
"net/can/can.ko",
|
|
"net/can/can-bcm.ko",
|
|
"net/can/can-gw.ko",
|
|
"net/can/can-raw.ko",
|
|
"net/ieee802154/6lowpan/ieee802154_6lowpan.ko",
|
|
"net/ieee802154/ieee802154.ko",
|
|
"net/ieee802154/ieee802154_socket.ko",
|
|
"net/l2tp/l2tp_core.ko",
|
|
"net/l2tp/l2tp_ppp.ko",
|
|
"net/mac802154/mac802154.ko",
|
|
"net/nfc/nfc.ko",
|
|
"net/rfkill/rfkill.ko",
|
|
"net/tipc/tipc.ko",
|
|
"net/tipc/tipc_diag.ko",
|
|
"net/tls/tls.ko",
|
|
"net/vmw_vsock/vmw_vsock_virtio_transport.ko",
|
|
]
|
|
|
|
# Deprecated - Use `get_gki_modules_list` function instead.
|
|
COMMON_GKI_MODULES_LIST = _COMMON_GKI_MODULES_LIST
|
|
|
|
_ARM_GKI_MODULES_LIST = [
|
|
# keep sorted
|
|
"drivers/ptp/ptp_kvm.ko",
|
|
]
|
|
|
|
_ARM64_GKI_MODULES_LIST = [
|
|
# keep sorted
|
|
"drivers/char/hw_random/cctrng.ko",
|
|
"drivers/misc/open-dice.ko",
|
|
"drivers/ptp/ptp_kvm.ko",
|
|
]
|
|
|
|
_X86_GKI_MODULES_LIST = [
|
|
# keep sorted
|
|
"drivers/ptp/ptp_kvm.ko",
|
|
]
|
|
|
|
_X86_64_GKI_MODULES_LIST = [
|
|
# keep sorted
|
|
"drivers/ptp/ptp_kvm.ko",
|
|
]
|
|
|
|
def _apply(map_each, lst):
|
|
if not map_each:
|
|
return lst
|
|
ret = []
|
|
for elem in lst:
|
|
mapped = map_each(elem)
|
|
if mapped:
|
|
ret.append(mapped)
|
|
return ret
|
|
|
|
def _get_gki_modules_list_minus_select(arch, map_each):
|
|
""" Provides the list of GKI modules, minus those in select() branches.
|
|
|
|
Args:
|
|
arch: One of [arm, arm64, i386, x86_64].
|
|
map_each: A function that takes the module name as parameter, and returns
|
|
the mapped value. If the module should be filtered out, the function
|
|
should return None.
|
|
|
|
Returns:
|
|
The list of GKI modules for the given |arch|.
|
|
"""
|
|
if not arch in ("arm64", "x86_64", "arm", "i386"):
|
|
fail("{}: arch {} not supported. Use one of [arm, arm64, i386, x86_64]".format(
|
|
str(native.package_relative_label(":x")).removesuffix(":x"),
|
|
arch,
|
|
))
|
|
|
|
if arch == "arm":
|
|
return _apply(map_each, _COMMON_GKI_MODULES_LIST + _ARM_GKI_MODULES_LIST)
|
|
|
|
if arch == "i386":
|
|
return _apply(map_each, _COMMON_GKI_MODULES_LIST + _X86_GKI_MODULES_LIST)
|
|
|
|
gki_modules_list = _apply(map_each, [] + _COMMON_GKI_MODULES_LIST)
|
|
if arch == "arm64":
|
|
gki_modules_list += _apply(map_each, _ARM64_GKI_MODULES_LIST)
|
|
elif arch == "x86_64":
|
|
gki_modules_list += _apply(map_each, _X86_64_GKI_MODULES_LIST)
|
|
|
|
return gki_modules_list
|
|
|
|
# buildifier: disable=unnamed-macro
|
|
def get_gki_modules_list(arch = None, map_each = None):
|
|
"""Provides the list of GKI modules.
|
|
|
|
Args:
|
|
arch: One of [arm, arm64, i386, x86_64].
|
|
map_each: A function that takes the module name as parameter, and
|
|
returns the mapped value. If the module should be filtered out, the
|
|
function should return None.
|
|
|
|
Returns:
|
|
An opaque expression that represents the list of GKI modules for the
|
|
given |arch|. Do not treat the returned value as a list (e.g. use
|
|
list comprehension); instead, use the |map_each| argument.
|
|
"""
|
|
|
|
# TODO: b/419603781 - Turn this into a select() expression.
|
|
return _get_gki_modules_list_minus_select(arch, map_each)
|
|
|
|
# buildifier: disable=unnamed-macro
|
|
def get_gki_modules_superset(arch = None, map_each = None):
|
|
"""Provides the list of superset of GKI modules.
|
|
|
|
This includes all modules on each branch of the conditionals. For example,
|
|
Rust modules may always be included regardless of the value of
|
|
--kasan_sw_tags.
|
|
|
|
Args:
|
|
arch: One of [arm, arm64, i386, x86_64].
|
|
map_each: A function that takes the module name as parameter, and
|
|
returns the mapped value. If the module should be filtered out, the
|
|
function should return None.
|
|
|
|
Returns:
|
|
A list that contains the superset of GKI modules for the given |arch|.
|
|
"""
|
|
return _get_gki_modules_list_minus_select(arch, map_each)
|
|
|
|
_KUNIT_FRAMEWORK_MODULES = [
|
|
"lib/kunit/kunit.ko",
|
|
]
|
|
|
|
# Modules defined by tools/testing/kunit/configs/android/kunit_defconfig
|
|
_KUNIT_COMMON_MODULES_LIST = [
|
|
# keep sorted
|
|
"drivers/android/tests/binder_alloc_kunit.ko",
|
|
"drivers/base/regmap/regmap-kunit.ko",
|
|
"drivers/base/regmap/regmap-ram.ko",
|
|
"drivers/base/regmap/regmap-raw-ram.ko",
|
|
"drivers/hid/hid-uclogic-test.ko",
|
|
"drivers/iio/test/iio-test-format.ko",
|
|
"drivers/input/tests/input_test.ko",
|
|
"drivers/of/of_kunit_helpers.ko",
|
|
"drivers/rtc/test_rtc_lib.ko",
|
|
"fs/ext4/ext4-inode-test.ko",
|
|
"fs/fat/fat_test.ko",
|
|
"kernel/time/time_test.ko",
|
|
"lib/kunit/kunit-example-test.ko",
|
|
"lib/kunit/kunit-test.ko",
|
|
"lib/kunit/platform-test.ko",
|
|
# "mm/kfence/kfence_test.ko",
|
|
"net/core/dev_addr_lists_test.ko",
|
|
"sound/soc/soc-topology-test.ko",
|
|
"sound/soc/soc-utils-test.ko",
|
|
]
|
|
|
|
# Modules defined by tools/testing/kunit/configs/android/kunit_clk_defconfig
|
|
_KUNIT_CLK_MODULES_LIST = [
|
|
"drivers/clk/clk-gate_test.ko",
|
|
"drivers/clk/clk-test.ko",
|
|
"drivers/clk/clk_kunit_helpers.ko",
|
|
]
|
|
|
|
def _get_kunit_modules_list_minus_select(arch, map_each):
|
|
""" Provides the list of KUnit modules, minus those in select() branches.
|
|
|
|
Args:
|
|
arch: One of [arm, arm64, i386, x86_64].
|
|
map_each: A function that takes the module name as parameter, and returns
|
|
the mapped value. If the module should be filtered out, the function
|
|
should return None.
|
|
Returns:
|
|
The list of KUnit modules for the given |arch|.
|
|
"""
|
|
if not arch in ("arm64", "x86_64", "arm", "i386"):
|
|
fail("{}: arch {} not supported. Use one of [arm, arm64, i386, x86_64]".format(
|
|
str(native.package_relative_label(":x")).removesuffix(":x"),
|
|
arch,
|
|
))
|
|
|
|
kunit_modules_list = _KUNIT_FRAMEWORK_MODULES + _KUNIT_COMMON_MODULES_LIST
|
|
if arch == "arm":
|
|
kunit_modules_list += _KUNIT_CLK_MODULES_LIST
|
|
elif arch == "arm64":
|
|
kunit_modules_list += _KUNIT_CLK_MODULES_LIST
|
|
elif arch == "i386":
|
|
kunit_modules_list.append("drivers/clk/clk_kunit_helpers.ko")
|
|
elif arch == "x86_64":
|
|
kunit_modules_list.append("drivers/clk/clk_kunit_helpers.ko")
|
|
|
|
return _apply(map_each, kunit_modules_list)
|
|
|
|
# buildifier: disable=unnamed-macro
|
|
def get_kunit_modules_list(arch = None, map_each = None):
|
|
""" Provides the list of KUnit modules.
|
|
|
|
Args:
|
|
arch: One of [arm, arm64, i386, x86_64].
|
|
map_each: A function that takes the module name as parameter, and returns
|
|
the mapped value. If the module should be filtered out, the function
|
|
should return None.
|
|
|
|
Returns:
|
|
An opaque expression that represents the list of Kunit modules for the
|
|
given |arch|. Do not treat the returned value as a list (e.g. use
|
|
list comprehension); instead, use the |map_each| argument.
|
|
"""
|
|
|
|
# TODO: b/419603781 - Turn this into a select() expression.
|
|
return _get_kunit_modules_list_minus_select(arch, map_each)
|
|
|
|
# buildifier: disable=unnamed-macro
|
|
def get_kunit_modules_superset(arch = None, map_each = None):
|
|
"""Provides the list of superset of KUnit modules.
|
|
|
|
This includes all modules on each branch of the conditionals.
|
|
|
|
Args:
|
|
arch: One of [arm, arm64, i386, x86_64].
|
|
map_each: A function that takes the module name as parameter, and
|
|
returns the mapped value. If the module should be filtered out, the
|
|
function should return None.
|
|
|
|
Returns:
|
|
A list of superset of KUnit modules for the given |arch|.
|
|
"""
|
|
return _get_kunit_modules_list_minus_select(arch, map_each)
|
|
|
|
_COMMON_UNPROTECTED_MODULES_LIST = []
|
|
|
|
# buildifier: disable=unused-variable
|
|
def get_gki_unprotected_modules_list(arch = None):
|
|
return _COMMON_UNPROTECTED_MODULES_LIST
|