]> git.ipfire.org Git - thirdparty/kmod.git/blob - testsuite/populate-modules.sh
modprobe: Allow passing path to module
[thirdparty/kmod.git] / testsuite / populate-modules.sh
1 #!/bin/bash
2
3 set -e
4
5 MODULE_PLAYGROUND=$1
6 ROOTFS=$2
7 CONFIG_H=$3
8
9 feature_enabled() {
10 local feature=$1
11 grep KMOD_FEATURES $CONFIG_H | head -n 1 | grep -q \+$feature
12 }
13
14 declare -A map
15 map=(
16 ["test-depmod/search-order-simple/lib/modules/4.4.4/kernel/crypto/"]="mod-simple.ko"
17 ["test-depmod/search-order-simple/lib/modules/4.4.4/updates/"]="mod-simple.ko"
18 ["test-depmod/search-order-same-prefix/lib/modules/4.4.4/foo/"]="mod-simple.ko"
19 ["test-depmod/search-order-same-prefix/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
20 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
21 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
22 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-c.ko"]="mod-loop-c.ko"
23 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-d.ko"]="mod-loop-d.ko"
24 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-e.ko"]="mod-loop-e.ko"
25 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-f.ko"]="mod-loop-f.ko"
26 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-g.ko"]="mod-loop-g.ko"
27 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-h.ko"]="mod-loop-h.ko"
28 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-i.ko"]="mod-loop-i.ko"
29 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-j.ko"]="mod-loop-j.ko"
30 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-k.ko"]="mod-loop-k.ko"
31 ["test-depmod/search-order-external-first/lib/modules/4.4.4/foo/"]="mod-simple.ko"
32 ["test-depmod/search-order-external-first/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
33 ["test-depmod/search-order-external-first/lib/modules/external/"]="mod-simple.ko"
34 ["test-depmod/search-order-external-last/lib/modules/4.4.4/foo/"]="mod-simple.ko"
35 ["test-depmod/search-order-external-last/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
36 ["test-depmod/search-order-external-last/lib/modules/external/"]="mod-simple.ko"
37 ["test-depmod/search-order-override/lib/modules/4.4.4/foo/"]="mod-simple.ko"
38 ["test-depmod/search-order-override/lib/modules/4.4.4/override/"]="mod-simple.ko"
39 ["test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/foo/"]="mod-foo-b.ko"
40 ["test-dependencies/lib/modules/4.0.20-kmod/kernel/"]="mod-foo-c.ko"
41 ["test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/"]="mod-foo-a.ko"
42 ["test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/"]="mod-foo.ko"
43 ["test-init/"]="mod-simple.ko"
44 ["test-remove/"]="mod-simple.ko"
45 ["test-modprobe/show-depends/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
46 ["test-modprobe/show-depends/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
47 ["test-modprobe/show-depends/lib/modules/4.4.4/kernel/mod-simple.ko"]="mod-simple.ko"
48 ["test-modprobe/show-exports/mod-loop-a.ko"]="mod-loop-a.ko"
49 ["test-modprobe/softdep-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
50 ["test-modprobe/softdep-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
51 ["test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
52 ["test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
53 ["test-modprobe/force/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
54 ["test-modprobe/oldkernel/lib/modules/3.3.3/kernel/"]="mod-simple.ko"
55 ["test-modprobe/oldkernel-force/lib/modules/3.3.3/kernel/"]="mod-simple.ko"
56 ["test-modprobe/alias-to-none/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
57 ["test-modprobe/module-param-kcmdline/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
58 ["test-modprobe/external/lib/modules/external/"]="mod-simple.ko"
59 ["test-modprobe/module-from-abspath/home/foo/"]="mod-simple.ko"
60 ["test-modprobe/module-from-relpath/home/foo/"]="mod-simple.ko"
61 ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko"
62 ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko"
63 ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko"
64 ["test-modinfo/mod-simple-i386.ko"]="mod-simple-i386.ko"
65 ["test-modinfo/mod-simple-x86_64.ko"]="mod-simple-x86_64.ko"
66 ["test-modinfo/mod-simple-sparc64.ko"]="mod-simple-sparc64.ko"
67 ["test-modinfo/mod-simple-sha1.ko"]="mod-simple.ko"
68 ["test-modinfo/mod-simple-sha256.ko"]="mod-simple.ko"
69 ["test-modinfo/mod-simple-pkcs7.ko"]="mod-simple.ko"
70 ["test-modinfo/external/lib/modules/external/mod-simple.ko"]="mod-simple.ko"
71 ["test-tools/insert/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
72 ["test-tools/remove/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
73 )
74
75 gzip_array=(
76 "test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"
77 )
78
79 xz_array=(
80 "test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"
81 )
82
83 zstd_array=(
84 "test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"
85 )
86
87 attach_sha256_array=(
88 "test-modinfo/mod-simple-sha256.ko"
89 )
90
91 attach_sha1_array=(
92 "test-modinfo/mod-simple-sha1.ko"
93 )
94
95 attach_pkcs7_array=(
96 "test-modinfo/mod-simple-pkcs7.ko"
97 )
98
99 for k in "${!map[@]}"; do
100 dst=${ROOTFS}/$k
101 src=${MODULE_PLAYGROUND}/${map[$k]}
102
103 if [[ $dst = */ ]]; then
104 install -d "$dst"
105 install -t "$dst" "$src"
106 else
107 install -D "$src" "$dst"
108 fi
109 done
110
111 # start poking the final rootfs...
112
113 # compress modules with each format if feature is enabled
114 if feature_enabled ZLIB; then
115 for m in "${gzip_array[@]}"; do
116 gzip "$ROOTFS/$m"
117 done
118 fi
119
120 if feature_enabled XZ; then
121 for m in "${xz_array[@]}"; do
122 xz "$ROOTFS/$m"
123 done
124 fi
125
126 if feature_enabled ZSTD; then
127 for m in "${zstd_array[@]}"; do
128 zstd --rm $ROOTFS/$m
129 done
130 fi
131
132 for m in "${attach_sha1_array[@]}"; do
133 cat "${MODULE_PLAYGROUND}/dummy.sha1" >>"${ROOTFS}/$m"
134 done
135
136 for m in "${attach_sha256_array[@]}"; do
137 cat "${MODULE_PLAYGROUND}/dummy.sha256" >>"${ROOTFS}/$m"
138 done
139
140 for m in "${attach_pkcs7_array[@]}"; do
141 cat "${MODULE_PLAYGROUND}/dummy.pkcs7" >>"${ROOTFS}/$m"
142 done