1f08c3bdfSopenharmony_ci#!/bin/sh 2f08c3bdfSopenharmony_ci# SPDX-License-Identifier: GPL-2.0-or-later 3f08c3bdfSopenharmony_ci# Copyright (c) 2021 Petr Vorel <pvorel@suse.cz> 4f08c3bdfSopenharmony_ci 5f08c3bdfSopenharmony_ciTST_TESTFUNC=test 6f08c3bdfSopenharmony_ciTST_SETUP=setup 7f08c3bdfSopenharmony_ciTST_CNT=4 8f08c3bdfSopenharmony_ciTST_NEEDS_CMDS="tst_check_drivers find grep head sed" 9f08c3bdfSopenharmony_ci 10f08c3bdfSopenharmony_ciMODULES_DIR="${MODULES_DIR:-/lib/modules/$(uname -r)}" 11f08c3bdfSopenharmony_ci 12f08c3bdfSopenharmony_cisetup() 13f08c3bdfSopenharmony_ci{ 14f08c3bdfSopenharmony_ci tst_res TINFO "using modules directory '$MODULES_DIR'" 15f08c3bdfSopenharmony_ci 16f08c3bdfSopenharmony_ci [ -d "$MODULES_DIR" ] || \ 17f08c3bdfSopenharmony_ci tst_brk TCONF "modules directory '$MODULES_DIR' missing" 18f08c3bdfSopenharmony_ci} 19f08c3bdfSopenharmony_ci 20f08c3bdfSopenharmony_citest_drivers() 21f08c3bdfSopenharmony_ci{ 22f08c3bdfSopenharmony_ci local paths="$*" 23f08c3bdfSopenharmony_ci local drv 24f08c3bdfSopenharmony_ci 25f08c3bdfSopenharmony_ci if [ -z "$paths" ]; then 26f08c3bdfSopenharmony_ci tst_res TCONF "no modules found" 27f08c3bdfSopenharmony_ci return 28f08c3bdfSopenharmony_ci fi 29f08c3bdfSopenharmony_ci 30f08c3bdfSopenharmony_ci for drv in $paths; do 31f08c3bdfSopenharmony_ci drv="$(echo $drv | sed 's/.*\/\([^/]\+\)\.ko.*/\1/')" 32f08c3bdfSopenharmony_ci EXPECT_PASS tst_check_drivers $drv 33f08c3bdfSopenharmony_ci drv="$(echo $drv | sed 's/_/-/g')" 34f08c3bdfSopenharmony_ci EXPECT_PASS tst_check_drivers $drv 35f08c3bdfSopenharmony_ci done 36f08c3bdfSopenharmony_ci} 37f08c3bdfSopenharmony_ci 38f08c3bdfSopenharmony_citest1() 39f08c3bdfSopenharmony_ci{ 40f08c3bdfSopenharmony_ci tst_res TINFO "check loadable module detection" 41f08c3bdfSopenharmony_ci test_drivers $(find $MODULES_DIR | grep -E '_[^/]+\.ko' | head -3) 42f08c3bdfSopenharmony_ci} 43f08c3bdfSopenharmony_ci 44f08c3bdfSopenharmony_citest2() 45f08c3bdfSopenharmony_ci{ 46f08c3bdfSopenharmony_ci tst_res TINFO "check non-existing module detection" 47f08c3bdfSopenharmony_ci EXPECT_FAIL tst_check_drivers not-existing-kernel-module 48f08c3bdfSopenharmony_ci} 49f08c3bdfSopenharmony_ci 50f08c3bdfSopenharmony_citest3() 51f08c3bdfSopenharmony_ci{ 52f08c3bdfSopenharmony_ci local f="$MODULES_DIR/modules.builtin" 53f08c3bdfSopenharmony_ci 54f08c3bdfSopenharmony_ci tst_res TINFO "check built-in module detection" 55f08c3bdfSopenharmony_ci 56f08c3bdfSopenharmony_ci [ -f "$f" ] || tst_brk TCONF "missing '$f'" 57f08c3bdfSopenharmony_ci 58f08c3bdfSopenharmony_ci test_drivers $(grep -E '_[^/]+\.ko' $f | head -3) 59f08c3bdfSopenharmony_ci} 60f08c3bdfSopenharmony_ci 61f08c3bdfSopenharmony_citest4() 62f08c3bdfSopenharmony_ci{ 63f08c3bdfSopenharmony_ci local f="$MODULES_DIR/modules.builtin" 64f08c3bdfSopenharmony_ci 65f08c3bdfSopenharmony_ci tst_res TINFO "check for x68_64 arch module detection" 66f08c3bdfSopenharmony_ci 67f08c3bdfSopenharmony_ci [ -f "$f" ] || tst_brk TCONF "missing '$f'" 68f08c3bdfSopenharmony_ci test_drivers $(grep -E '[^/]+[-_]x86[-_]64.*\.ko' $f | head -3) 69f08c3bdfSopenharmony_ci} 70f08c3bdfSopenharmony_ci 71f08c3bdfSopenharmony_ci. tst_test.sh 72f08c3bdfSopenharmony_citst_run 73