Add test script check-names.sh
This commit is contained in:
parent
d1ddd29e81
commit
e137ea6f64
5 changed files with 60 additions and 54 deletions
57
tests/scripts/check-names.sh
Executable file
57
tests/scripts/check-names.sh
Executable file
|
@ -0,0 +1,57 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
tests/scripts/list-macros.sh
|
||||
tests/scripts/list-enum-consts.pl
|
||||
tests/scripts/list-identifiers.sh
|
||||
tests/scripts/list-symbols.sh
|
||||
|
||||
FAIL=0
|
||||
|
||||
printf "Exported symbols declared in header: "
|
||||
UNDECLARED=$( diff exported-symbols identifiers | sed -n -e 's/^< //p' )
|
||||
if [ "x$UNDECLARED" == "x" ]; then
|
||||
echo "PASS"
|
||||
else
|
||||
echo "FAIL"
|
||||
echo "$UNDECLARED"
|
||||
FAIL=1
|
||||
fi
|
||||
|
||||
diff macros identifiers | sed -n -e 's/< //p' > actual-macros
|
||||
|
||||
for THING in actual-macros enum-consts; do
|
||||
printf "Names of $THING: "
|
||||
test -r $THING
|
||||
BAD=$( grep -v '^MBEDTLS_[0-9A-Z_]*[0-9A-Z]$' $THING || true )
|
||||
if [ "x$BAD" = "x" ]; then
|
||||
echo "PASS"
|
||||
else
|
||||
echo "FAIL"
|
||||
echo "$BAD"
|
||||
FAIL=1
|
||||
fi
|
||||
done
|
||||
|
||||
for THING in identifiers; do
|
||||
printf "Names of $THING: "
|
||||
test -r $THING
|
||||
BAD=$( grep -v '^mbedtls_[0-9a-z_]*[0-9a-z]$' $THING || true )
|
||||
if [ "x$BAD" = "x" ]; then
|
||||
echo "PASS"
|
||||
else
|
||||
echo "FAIL"
|
||||
echo "$BAD"
|
||||
FAIL=1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$FAIL" -eq 0 ]; then
|
||||
rm macros actual-macros enum-consts identifiers exported-symbols
|
||||
echo "PASSED"
|
||||
exit 0
|
||||
else
|
||||
echo "FAILED"
|
||||
exit 1
|
||||
fi
|
|
@ -8,7 +8,7 @@ use open qw(:std utf8);
|
|||
|
||||
-d 'include/mbedtls' or die "$0: must be run from root\n";
|
||||
|
||||
@ARGV = <include/mbedtls/*.h>;
|
||||
@ARGV = grep { ! /compat-1\.3\.h/ } <include/mbedtls/*.h>;
|
||||
|
||||
my @consts;
|
||||
my $state = 'out';
|
||||
|
|
|
@ -7,7 +7,7 @@ if [ -d include/mbedtls ]; then :; else
|
|||
exit 1
|
||||
fi
|
||||
|
||||
HEADERS=$( ls include/mbedtls/*.h | egrep -v 'bn_mul' )
|
||||
HEADERS=$( ls include/mbedtls/*.h | egrep -v 'compat-1\.3\.h|bn_mul' )
|
||||
|
||||
rm -f identifiers
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ if [ -d include/mbedtls ]; then :; else
|
|||
exit 1
|
||||
fi
|
||||
|
||||
HEADERS=$( ls include/mbedtls/*.h )
|
||||
HEADERS=$( ls include/mbedtls/*.h | egrep -v 'compat-1\.3\.h' )
|
||||
|
||||
sed -n -e 's/.*#define \([a-zA-Z0-9_]*\).*/\1/p' $HEADERS \
|
||||
| egrep -v '^(asm|inline|EMIT|_CRT_SECURE_NO_DEPRECATE)$|^MULADDC_' \
|
||||
|
|
|
@ -1,51 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
tmp/list-macros.sh
|
||||
tmp/list-enum-consts.pl
|
||||
tmp/list-identifiers.sh
|
||||
tmp/list-symbols.sh
|
||||
|
||||
UNDECLARED=$( diff exported-symbols identifiers | sed -n -e 's/^< //p' )
|
||||
if [ "x$UNDECLARED" == "x" ]; then
|
||||
echo "All exported symbols are declared in headers: good"
|
||||
else
|
||||
echo "The following symbols are probably missing a 'static': $UNDECLARED"
|
||||
fi
|
||||
|
||||
for THING in macros identifiers enum-consts; do
|
||||
echo ''
|
||||
echo "=== $THING ==="
|
||||
|
||||
NO_=$( grep -v _ $THING | tr '\n' ' ' )
|
||||
echo "Without underscore: $NO_"
|
||||
|
||||
cut -f1 -d_ $THING | uniq -c | sort -nr > prefix-$THING
|
||||
echo "By prefix: (10 most frequent, see prefix-$THING for full list)"
|
||||
head -n 10 < prefix-$THING
|
||||
done
|
||||
|
||||
echo ''; echo "=== all public names ==="
|
||||
sort -u macros identifiers enum-consts > public-names
|
||||
wc -l public-names
|
||||
|
||||
|
||||
NL='
|
||||
'
|
||||
sed -n 's/POLARSSL_[A-Z0-9_]*/\'"$NL"'&\'"$NL"/gp \
|
||||
include/mbedtls/*.h tests/scripts/* scripts/* library/*.c configs/*.h \
|
||||
| grep POLARSSL | sort -u > _POLARSSL_XXX
|
||||
diff public-names _POLARSSL_XXX | sed -n 's/^> //p' > extra-names
|
||||
rm _POLARSSL_XXX
|
||||
|
||||
echo 'polarssl_zeroize' >> extra-names
|
||||
|
||||
wc -l extra-names
|
||||
|
||||
for THING in public-names extra-names; do
|
||||
if grep '[^A-Za-z0-9_]' $THING; then
|
||||
echo "invalid character in $THING" >&2
|
||||
exit 1;
|
||||
fi
|
||||
done
|
Loading…
Reference in a new issue