]> git.ipfire.org Git - thirdparty/kmod.git/blame - testsuite/setup-rootfs.sh
testsuite: Move setup-rootfs logic from Makefile to script
[thirdparty/kmod.git] / testsuite / setup-rootfs.sh
CommitLineData
4002d77a
LDM
1#!/bin/bash
2
3set -e
4
184a0707 5ROOTFS_PRISTINE=$1
4002d77a 6ROOTFS=$2
184a0707
LDM
7MODULE_PLAYGROUND=$3
8CONFIG_H=$4
9
10# create rootfs from rootfs-pristine
11
12create_rootfs() {
13 rm -rf "$ROOTFS"
14 mkdir -p $(dirname "$ROOTFS")
15 cp -r "$ROOTFS_PRISTINE" "$ROOTFS"
16 find "$ROOTFS" -type d -exec chmod +w {} \;
17 find "$ROOTFS" -type f -name .gitignore -exec rm -f {} \;
18}
1921c370
LDM
19
20feature_enabled() {
21 local feature=$1
22 grep KMOD_FEATURES $CONFIG_H | head -n 1 | grep -q \+$feature
23}
4002d77a
LDM
24
25declare -A map
26map=(
27 ["test-depmod/search-order-simple/lib/modules/4.4.4/kernel/crypto/"]="mod-simple.ko"
28 ["test-depmod/search-order-simple/lib/modules/4.4.4/updates/"]="mod-simple.ko"
8dddac59
LDM
29 ["test-depmod/search-order-same-prefix/lib/modules/4.4.4/foo/"]="mod-simple.ko"
30 ["test-depmod/search-order-same-prefix/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
d9ab7abe
LDM
31 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
32 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
33 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-c.ko"]="mod-loop-c.ko"
34 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-d.ko"]="mod-loop-d.ko"
35 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-e.ko"]="mod-loop-e.ko"
965886b5
MYK
36 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-f.ko"]="mod-loop-f.ko"
37 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-g.ko"]="mod-loop-g.ko"
9be03c52
YK
38 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-h.ko"]="mod-loop-h.ko"
39 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-i.ko"]="mod-loop-i.ko"
40 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-j.ko"]="mod-loop-j.ko"
41 ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-k.ko"]="mod-loop-k.ko"
df492f5c
YK
42 ["test-depmod/search-order-external-first/lib/modules/4.4.4/foo/"]="mod-simple.ko"
43 ["test-depmod/search-order-external-first/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
44 ["test-depmod/search-order-external-first/lib/modules/external/"]="mod-simple.ko"
45 ["test-depmod/search-order-external-last/lib/modules/4.4.4/foo/"]="mod-simple.ko"
46 ["test-depmod/search-order-external-last/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
47 ["test-depmod/search-order-external-last/lib/modules/external/"]="mod-simple.ko"
809b9fb6
YK
48 ["test-depmod/search-order-override/lib/modules/4.4.4/foo/"]="mod-simple.ko"
49 ["test-depmod/search-order-override/lib/modules/4.4.4/override/"]="mod-simple.ko"
450c1f03
LDM
50 ["test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/foo/"]="mod-foo-b.ko"
51 ["test-dependencies/lib/modules/4.0.20-kmod/kernel/"]="mod-foo-c.ko"
52 ["test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/"]="mod-foo-a.ko"
53 ["test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/"]="mod-foo.ko"
1669be85
LDM
54 ["test-init/"]="mod-simple.ko"
55 ["test-remove/"]="mod-simple.ko"
eeb62700
LDM
56 ["test-modprobe/show-depends/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
57 ["test-modprobe/show-depends/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
58 ["test-modprobe/show-depends/lib/modules/4.4.4/kernel/mod-simple.ko"]="mod-simple.ko"
068729e3 59 ["test-modprobe/show-exports/mod-loop-a.ko"]="mod-loop-a.ko"
1e128242
LDM
60 ["test-modprobe/softdep-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
61 ["test-modprobe/softdep-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
621ac887
LDM
62 ["test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
63 ["test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
a1a13690 64 ["test-modprobe/force/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
33c11852
LDM
65 ["test-modprobe/oldkernel/lib/modules/3.3.3/kernel/"]="mod-simple.ko"
66 ["test-modprobe/oldkernel-force/lib/modules/3.3.3/kernel/"]="mod-simple.ko"
bf0b87f4 67 ["test-modprobe/alias-to-none/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
246d67d4 68 ["test-modprobe/module-param-kcmdline/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
df492f5c 69 ["test-modprobe/external/lib/modules/external/"]="mod-simple.ko"
883d931d
GS
70 ["test-modprobe/module-from-abspath/home/foo/"]="mod-simple.ko"
71 ["test-modprobe/module-from-relpath/home/foo/"]="mod-simple.ko"
2a38870e
LDM
72 ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko"
73 ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko"
74 ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko"
1712a154
EV
75 ["test-depmod/modules-outdir/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko"
76 ["test-depmod/modules-outdir/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko"
77 ["test-depmod/modules-outdir/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko"
77fdc664
LDM
78 ["test-modinfo/mod-simple-i386.ko"]="mod-simple-i386.ko"
79 ["test-modinfo/mod-simple-x86_64.ko"]="mod-simple-x86_64.ko"
80 ["test-modinfo/mod-simple-sparc64.ko"]="mod-simple-sparc64.ko"
3f0eb43b
LDM
81 ["test-modinfo/mod-simple-sha1.ko"]="mod-simple.ko"
82 ["test-modinfo/mod-simple-sha256.ko"]="mod-simple.ko"
dec99048 83 ["test-modinfo/mod-simple-pkcs7.ko"]="mod-simple.ko"
df492f5c 84 ["test-modinfo/external/lib/modules/external/mod-simple.ko"]="mod-simple.ko"
03761881
CMOF
85 ["test-tools/insert/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
86 ["test-tools/remove/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
4002d77a
LDM
87)
88
2a38870e
LDM
89gzip_array=(
90 "test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"
fd71604d
LDM
91 )
92
93xz_array=(
2a38870e
LDM
94 "test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"
95 )
96
2e4ef3da
TM
97zstd_array=(
98 "test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"
99 )
100
3f0eb43b
LDM
101attach_sha256_array=(
102 "test-modinfo/mod-simple-sha256.ko"
103 )
104
105attach_sha1_array=(
106 "test-modinfo/mod-simple-sha1.ko"
107 )
108
dec99048
YK
109attach_pkcs7_array=(
110 "test-modinfo/mod-simple-pkcs7.ko"
111 )
112
184a0707
LDM
113create_rootfs
114
3cee67dd 115for k in "${!map[@]}"; do
4002d77a
LDM
116 dst=${ROOTFS}/$k
117 src=${MODULE_PLAYGROUND}/${map[$k]}
118
3cee67dd
DR
119 if [[ $dst = */ ]]; then
120 install -d "$dst"
121 install -t "$dst" "$src"
d9ab7abe 122 else
3cee67dd 123 install -D "$src" "$dst"
d9ab7abe 124 fi
4002d77a 125done
2a38870e
LDM
126
127# start poking the final rootfs...
128
1921c370
LDM
129# compress modules with each format if feature is enabled
130if feature_enabled ZLIB; then
131 for m in "${gzip_array[@]}"; do
132 gzip "$ROOTFS/$m"
133 done
134fi
135
fd71604d
LDM
136if feature_enabled XZ; then
137 for m in "${xz_array[@]}"; do
138 xz "$ROOTFS/$m"
139 done
140fi
141
1921c370
LDM
142if feature_enabled ZSTD; then
143 for m in "${zstd_array[@]}"; do
144 zstd --rm $ROOTFS/$m
145 done
146fi
2e4ef3da 147
3f0eb43b 148for m in "${attach_sha1_array[@]}"; do
3cee67dd 149 cat "${MODULE_PLAYGROUND}/dummy.sha1" >>"${ROOTFS}/$m"
3f0eb43b
LDM
150done
151
152for m in "${attach_sha256_array[@]}"; do
3cee67dd 153 cat "${MODULE_PLAYGROUND}/dummy.sha256" >>"${ROOTFS}/$m"
3f0eb43b 154done
dec99048
YK
155
156for m in "${attach_pkcs7_array[@]}"; do
3cee67dd 157 cat "${MODULE_PLAYGROUND}/dummy.pkcs7" >>"${ROOTFS}/$m"
dec99048 158done
184a0707
LDM
159
160touch testsuite/stamp-rootfs