This repository has been archived by the owner on Jul 16, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 90
/
verify.sh
executable file
·41 lines (33 loc) · 1.95 KB
/
verify.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
#!/bin/bash
set -e
./check-format.sh
if [ ! -f checkpatch.pl ]; then
wget https://raw.githubusercontent.com/torvalds/linux/v5.11/scripts/checkpatch.pl
fi
if [ ! -f spelling.txt ]; then
wget https://raw.githubusercontent.com/torvalds/linux/v5.11/scripts/spelling.txt
fi
if [ ! -f const_structs.checkpatch ]; then
wget https://raw.githubusercontent.com/torvalds/linux/v5.11/scripts/const_structs.checkpatch
fi
# The indentation in chap8/ex3 is too heavily nested to format using the kernel style
find . \( -path './chap8/ex3' -o -path './build' \) -prune -type f -o -name '*.cpp' -o -name "*.c" -o -name "*.h" | xargs perl checkpatch.pl --no-tree -f --strict --show-types --ignore NEW_TYPEDEFS --ignore PREFER_KERNEL_TYPES --ignore SPLIT_STRING --ignore UNNECESSARY_PARENTHESES --ignore SPDX_LICENSE_TAG --ignore OPEN_ENDED_LINE --ignore BOOL_MEMBER --ignore MACRO_ARG_REUSE --ignore PREFER_ALIGNED --ignore CAMELCASE --ignore PREFER_DEFINED_ATTRIBUTE_MACRO --ignore SPACING --ignore BIT_MACRO
find ./chap8/ex3 -type f -name '*.cpp' -o -name "*.c" -o -name "*.h" | xargs perl checkpatch.pl --no-tree -f --strict --show-types --ignore NEW_TYPEDEFS --ignore PREFER_KERNEL_TYPES --ignore SPLIT_STRING --ignore UNNECESSARY_PARENTHESES --ignore SPDX_LICENSE_TAG --ignore OPEN_ENDED_LINE --ignore BOOL_MEMBER --ignore MACRO_ARG_REUSE --ignore PREFER_ALIGNED --ignore CAMELCASE --ignore PREFER_DEFINED_ATTRIBUTE_MACRO --ignore SPACING --ignore BIT_MACRO --ignore LEADING_SPACE --ignore CODE_INDENT --ignore SUSPECT_CODE_INDENT
mkdir -p build
cd build
cmake .. -DENABLE_WERROR=ON
make -j 4 && make test
exstack=0
if type eu-readelf >/dev/null 2>&1 ; then
for i in `find . -executable -type f -name "*_bench" -o -name "*_tests"` ; do
stack=`eu-readelf -l $i | awk '$1 == "GNU_STACK"'`
if [[ "$stack" = *" RWE "* ]]; then
echo "$i has an executable stack."
exstack=1
fi
done
fi
cd ..
if [ "$exstack" -eq "1" ]; then
exit 1
fi