From: fennecJ <58484289+fennecJ@users.noreply.github.com> Date: Wed, 8 Sep 2021 12:38:50 +0000 (+0800) Subject: Improve CI pipeline to automate module testing (#95) X-Git-Tag: latest~115 X-Git-Url: https://www.ivnss.com/gitweb/?a=commitdiff_plain;h=3fcbb8e182e2af04fadaba13bed855aebb2e83ff;p=lkmpg Improve CI pipeline to automate module testing (#95) The script executes insmod/rmmod twice with available kernel modules. Close #72 --- diff --git a/.ci/build-n-run.sh b/.ci/build-n-run.sh new file mode 100755 index 0000000..4d9dc63 --- /dev/null +++ b/.ci/build-n-run.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +function build_example() +{ + make -C examples || exit 1 +} + +function list_mod() +{ + #following list will contain all file names which are not specified in file non-working. + echo `ls examples/*.ko | awk -F "[/|.]" '{print $2}' | grep -vFxf .ci/non-working` +} + +#test module 2 times +function run_mod() +{ + ( sudo insmod "examples/$1.ko" && sudo rmmod "$1" ) || exit 1; + ( sudo insmod "examples/$1.ko" && sudo rmmod "$1" ) || exit 1; +} + +function run_examples() +{ + for module in $(list_mod); do + echo "$module" + run_mod "$module" + done +} + +build_example +run_examples \ No newline at end of file diff --git a/.ci/non-working b/.ci/non-working new file mode 100644 index 0000000..bf7e848 --- /dev/null +++ b/.ci/non-working @@ -0,0 +1,3 @@ +bottomhalf +intrpt +kbleds \ No newline at end of file diff --git a/.github/workflows/generate_doc.yaml b/.github/workflows/generate_doc.yaml index fe640fc..76f4f04 100644 --- a/.github/workflows/generate_doc.yaml +++ b/.github/workflows/generate_doc.yaml @@ -36,13 +36,14 @@ jobs: tag_name: "latest" prerelease: true - coding_style: + validate: runs-on: ubuntu-20.04 steps: - name: checkout code uses: actions/checkout@v2 - - name: style check + - name: validate coding style and functionality run: | sudo apt-get install -q -y clang-format-11 sh .ci/check-format.sh - shell: bash + bash .ci/build-n-run.sh + shell: bash \ No newline at end of file diff --git a/examples/Makefile b/examples/Makefile index d20a9e9..098f20b 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -3,8 +3,8 @@ obj-m += hello-2.o obj-m += hello-3.o obj-m += hello-4.o obj-m += hello-5.o -obj-m += start.o -obj-m += stop.o +obj-m += startstop.o +startstop-objs := start.o stop.o obj-m += chardev.o obj-m += procfs1.o obj-m += procfs2.o @@ -30,6 +30,8 @@ obj-m += example_mutex.o obj-m += bottomhalf.o obj-m += ioctl.o +PWD := $(CURDIR) + all: $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules