123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #!/bin/sh
- #
- # This file is part of mbed TLS (https://tls.mbed.org)
- #
- # Copyright (c) 2015-2016, ARM Limited, All Rights Reserved
- #
- # Purpose
- #
- # This script confirms that the naming of all symbols and identifiers in mbed
- # TLS are consistent with the house style and are also self-consistent.
- #
- set -eu
- if grep --version|head -n1|grep GNU >/dev/null; then :; else
- echo "This script requires GNU grep."
- exit 1
- fi
- printf "Analysing source code...\n"
- tests/scripts/list-macros.sh
- tests/scripts/list-enum-consts.pl
- tests/scripts/list-identifiers.sh
- tests/scripts/list-symbols.sh
- FAIL=0
- printf "\nExported 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]$\|^YOTTA_[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
- printf "Likely typos: "
- sort -u actual-macros enum-consts > _caps
- HEADERS=$( ls include/mbedtls/*.h | egrep -v 'compat-1\.3\.h' )
- NL='
- '
- sed -n 's/MBED..._[A-Z0-9_]*/\'"$NL"'&\'"$NL"/gp \
- $HEADERS library/*.c \
- | grep MBEDTLS | sort -u > _MBEDTLS_XXX
- TYPOS=$( diff _caps _MBEDTLS_XXX | sed -n 's/^> //p' \
- | egrep -v 'XXX|__|_$|^MBEDTLS_.*CONFIG_FILE$' || true )
- rm _MBEDTLS_XXX _caps
- if [ "x$TYPOS" = "x" ]; then
- echo "PASS"
- else
- echo "FAIL"
- echo "$TYPOS"
- FAIL=1
- fi
- printf "\nOverall: "
- if [ "$FAIL" -eq 0 ]; then
- rm macros actual-macros enum-consts identifiers exported-symbols
- echo "PASSED"
- exit 0
- else
- echo "FAILED"
- exit 1
- fi
|