-
Notifications
You must be signed in to change notification settings - Fork 9
/
test.sh
executable file
·123 lines (95 loc) · 2.22 KB
/
test.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/bin/sh -ex
fail() {
echo Failed.
exit 1
}
mypath=${0%/*}
config=allnoconfig
log=$mypath/testlog
src=$PWD
runtest() {
$src/scripts/config --enable MODULES
$src/scripts/config --enable BLOCK
$src/scripts/config --module BLK_DEV_NULL_BLK
make olddefconfig
$mypath/kninja.py | tee $log
[ -e vmlinux ] || fail
vmlinux_before=$(stat -c%Y vmlinux)
ninja -d explain
vmlinux_after=$(stat -c%Y vmlinux)
[ "$vmlinux_before" = "$vmlinux_after" ] || fail
ninja -d explain | tee $log
grep -q 'no work' $log || fail
! grep -q 'kninja' $log || fail
touch $src/init/calibrate.c
ninja -d explain | tee $log
! grep -q 'no work' $log || fail
! grep -q 'kninja' $log || fail
vmlinux_before=$(stat -c%Y vmlinux)
make
vmlinux_after=$(stat -c%Y vmlinux)
[ "$vmlinux_before" = "$vmlinux_after" ] || fail
ninja -d explain | tee $log
grep -q 'no work' $log || fail
! grep -q 'kninja' $log || fail
touch $obj/.config
ninja -d explain | tee $log
grep -q 'kninja' $log || fail
touch $src/init/Kconfig
ninja -d explain | tee $log
grep -q 'kninja' $log || fail
touch $src/arch/arm/boot/compressed/vmlinux.lds.S
touch $src/arch/arm64/kernel/vdso/sigreturn.S
touch $src/arch/x86/realmode/init.c
ninja -d explain | tee $log
grep -q 'kninja' $log || fail
vmlinux_before=$(stat -c%Y vmlinux)
make
vmlinux_after=$(stat -c%Y vmlinux)
[ "$vmlinux_before" = "$vmlinux_after" ] || fail
touch $src/drivers/block/null_blk.h
ninja -d explain | tee $log
grep -q 'null_blk' $log || fail
! grep -q 'no work' $log || fail
! grep -q 'vmlinux' $log || fail
before=$(stat -c%Y drivers/block/null_blk.ko)
make
after=$(stat -c%Y drivers/block/null_blk.ko)
[ "$before" = "$after" ] || fail
make clean
# Broken after clean
# ninja -d explain | tee $log
# grep -q 'kninja' $log || fail
}
intree() {
cd $src
git reset --hard
rm -f build.ninja
make mrproper
make $config
obj=$src
runtest
}
outoftree() {
cd $src
git reset --hard
rm -f build.ninja
make mrproper
obj=$PWD/out
rm -rf $obj
mkdir -p $obj
make O=$obj $config
cd $obj
runtest
cd $src
}
unset ARCH CROSS_COMPILE
intree
outoftree
export ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
intree
outoftree
export ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
intree
outoftree
echo OK.