The script executes insmod/rmmod twice with available kernel modules.
Close #72
--- /dev/null
+#!/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
--- /dev/null
+bottomhalf
+intrpt
+kbleds
\ No newline at end of file
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
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
obj-m += bottomhalf.o
obj-m += ioctl.o
+PWD := $(CURDIR)
+
all:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules