mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 09:06:25 +00:00
60 lines
1.5 KiB
Bash
60 lines
1.5 KiB
Bash
#!/bin/sh -
|
|
#
|
|
# $Id$
|
|
#
|
|
# Check ID generated for globalization support.
|
|
# TODO: Verify the positional parameters (like "%d") in the two strings
|
|
# to the macro.
|
|
|
|
# Get the list of all message ID
|
|
|
|
MSG_DIR="../../src/ ../../util/ ../../lang/dbm/"
|
|
|
|
grep -E "DB_STR\([^ ,]*" $MSG_DIR -r -h -o | sed "s/\"//g" | \
|
|
sed "s/DB_STR(//g" > msg_id_unsorted
|
|
grep -E "DB_STR_A\([^ ,]*" $MSG_DIR -r -h -o | sed "s/\"//g" | \
|
|
sed "s/DB_STR_A(//g" >> msg_id_unsorted
|
|
sort msg_id_unsorted > msg_id_list
|
|
rm msg_id_unsorted
|
|
|
|
maxline=`cat msg_id_list | wc -l`
|
|
|
|
# The exception for duplicate messages
|
|
rep_dup_msg_id=`grep -E "\"[0-9]{4}" -r ../../dist/gen_msg.awk -o | \
|
|
sed "s/\"//g"`
|
|
lastnum=""
|
|
for (( i = 1; i <= $maxline ; i++ ))
|
|
do
|
|
curnum=`sed -n -e $i"p" msg_id_list`
|
|
|
|
# "DB_STR(id" and "DB_STR_A(id" are from macros defination,
|
|
# should not be regarded as invalid message id.
|
|
if [ "$curnum" == "id" ]; then
|
|
continue
|
|
fi
|
|
|
|
# The message id should be 4 digit number.
|
|
if [ `echo $curnum | wc -c` -ne 5 ]; then
|
|
echo "[ERROR] size of message id should be 4: $curnum"
|
|
exit 1
|
|
fi
|
|
if [[ ! -z $(echo $curnum | sed 's/[0-9]//g') ]]; then
|
|
echo "[ERROR] message id should be digit number only: $curnum"
|
|
exit 1
|
|
fi
|
|
|
|
# There shouldn't be duplicate message id.
|
|
if [ "$curnum" == "$lastnum" ]; then
|
|
if [ "$curnum" == "$rep_dup_msg_id" ]; then
|
|
echo "[EXPECTED] duplicate message id: $curnum"
|
|
else
|
|
echo "[ERROR] duplicate message id: $curnum"
|
|
exit 1
|
|
fi
|
|
fi
|
|
lastnum=$curnum
|
|
done
|
|
|
|
rm -f msg_id_list
|
|
|
|
exit 0
|