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