diff options
author | Tiago Rezende Campos Falcao <developer@tiagofalcao.com> | 2010-10-27 14:38:40 +0000 |
---|---|---|
committer | Tiago Rezende Campos Falcao <developer@tiagofalcao.com> | 2010-10-27 14:38:40 +0000 |
commit | 8687aedc100389012b816673a64053d7ff6eb364 (patch) | |
tree | b2bf896cebb20368854e8020d681ad4469971326 /tests | |
parent | 9875a4045afbe302fcedabc0fb988b9d61b58218 (diff) | |
download | elementary-8687aedc100389012b816673a64053d7ff6eb364.tar.gz |
Checkers for API consistence
SVN revision: 53918
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/test_decl.sh | 44 | ||||
-rwxr-xr-x | tests/test_eapi.sh | 40 | ||||
-rwxr-xr-x | tests/test_getter.sh | 27 | ||||
-rwxr-xr-x | tests/test_setter.sh | 49 |
4 files changed, 160 insertions, 0 deletions
diff --git a/tests/test_decl.sh b/tests/test_decl.sh new file mode 100755 index 000000000..706ffdde5 --- /dev/null +++ b/tests/test_decl.sh @@ -0,0 +1,44 @@ +#!/bin/bash +ret=0 + +check(){ + i=$1 + shift + sed -n "/^$i(/{g;1!p;};h" $@ >eapi.decl + lines=$(wc -l eapi.decl|cut -f1 -d' ') + if [ $lines == 0 ]; then + echo -e "\e[31;1mNOT IMPLEMENTED\e[m\t $i" + ret=1 + elif [ $lines != 1 ]; then + echo -e "\e[31;1mMULTI IMPLEMENTED\e[m\t $i" + ret=1 + else + cat eapi.decl | grep -qe '^EAPI' + if [ $? != 0 ];then + echo -e "\e[31;1mMISSING EAPI\e[m\t $i" + ret=1 + fi + fi + rm eapi.decl +} + +grep -e "^ *EAPI.*(.*)" src/lib/Elementary.h.in | grep -oe 'elm_\w\+' >eapi.list + +for i in $(cat eapi.list); do + check $i $(ls -1 src/lib/*.c | grep -v elm_widget | grep -v els_cursor) +done + +grep -e "^ *EAPI.*(.*)" src/lib/Elementary_Cursor.h | grep -oe 'elm_\w\+' >eapi.list + +for i in $(cat eapi.list); do + check $i src/lib/els_cursor.c src/lib/elm_main.c +done + +grep -e "^ *EAPI.*(.*)" src/lib/elm_widget.h | grep -oe '_\?elm_\w\+' >eapi.list + +for i in $(cat eapi.list); do + check $i src/lib/elm_widget.c +done + +rm eapi.list +exit $ret diff --git a/tests/test_eapi.sh b/tests/test_eapi.sh new file mode 100755 index 000000000..4a190e5c4 --- /dev/null +++ b/tests/test_eapi.sh @@ -0,0 +1,40 @@ +#!/bin/bash +ret=0 + +sed -n '/^EAPI /{n;p;}' src/lib/*.c >eapi.list + +for i in $(cat eapi.list|grep -o "^\w\+"); do + grep -q "\<$i\>" src/lib/elm_priv.h + if [ $? == 0 ]; then + echo -e "\e[31;1mEAPI in priv.h\e[m\t $i" + ret=1 + fi + + echo $i | grep -qe '^_\?elm_widget' + if [ $? == 0 ]; then + grep -qe "EAPI.*\<$i\>" src/lib/elm_widget.h + if [ $? != 0 ]; then + echo -e "\e[31;1m WIDGET missing in widget.h\e[m\t $i" + ret=1 + fi + grep -qe "EAPI.*\<$i\>" src/lib/Elementary.h.in + if [ $? == 0 ]; then + echo -e "\e[31;1m WIDGET in Elm.h\e[m\t $i" + ret=1 + fi + else + grep -qe "EAPI.*\<$i\>" src/lib/Elementary.h.in + if [ $? != 0 ]; then + echo -e "\e[31;1m ELM missing in Elm.h\e[m\t $i" + ret=1 + fi + grep -qe "EAPI.*\<$i\>" src/lib/elm_widget.h + if [ $? == 0 ]; then + echo -e "\e[31;1m ELM in widget.h\e[m\t $i" + ret=1 + fi + fi +done + +rm eapi.list +exit $ret diff --git a/tests/test_getter.sh b/tests/test_getter.sh new file mode 100755 index 000000000..749d488e1 --- /dev/null +++ b/tests/test_getter.sh @@ -0,0 +1,27 @@ +#!/bin/bash +ret=0 +check(){ + func=$(echo $1 | grep -oe 'elm_\w\+') + echo $1 | grep -qe "_get([^\(const \)]\([^,\*)]\)\+\*" + if [ $? == 0 ];then + echo -e "\e[31;1mNOT CONST\e[m\t $func" + ret=1 + fi + +} + +HEADERS="src/lib/Elementary.h.in +src/lib/Elementary_Cursor.h +src/lib/elm_widget.h" + +IFS=$'\n' + +for header in $HEADERS; do + grep -e "^ *EAPI.*(.*)" $header | grep -e 'elm_\w\+_get' >eapi.list + + for i in $(cat eapi.list); do + check $i $header + done + rm eapi.list +done +exit $ret diff --git a/tests/test_setter.sh b/tests/test_setter.sh new file mode 100755 index 000000000..25272645a --- /dev/null +++ b/tests/test_setter.sh @@ -0,0 +1,49 @@ +#!/bin/bash +ret=0 + +check(){ + func=$(echo $1 | grep -oe 'elm_\w\+') + base=${func%_set} + echo $1 | grep -qe "_set(const \+[^\(char \+\*\)]" + if [ $? == 0 ];then + echo -e "\e[31;1mCONST\e[m\t $func" + ret=1 + fi + echo $1 | grep -qe "EAPI \+\(void\|Eina_Bool\)" + if [ $? != 0 ];then + echo -e "\e[31;1mUNKNOWN RETURN\e[m\t $func" + ret=1 + fi + echo $1 | grep -qe "\(cb_set\|all_set\)(" + if [ $? != 0 ];then + grep -qe "EAPI.*\<${base}_get\>" $2 + if [ $? != 0 ];then + echo -e "\e[31;1mMISSING GETTER\e[m\t $func" + ret=1 + fi + echo $1 | grep -qe "\(content\|icon\|end\)_set(\w\+ \+\*obj, \w\+ \+\*\w\+);" + if [ $? == 0 ];then + grep -qe "EAPI.*\<${base}_unset\>" $2 + if [ $? != 0 ];then + echo -e "\e[31;1mMISSING UNSETTER\e[m\t $func" + ret=1 + fi + fi + fi +} + +HEADERS="src/lib/Elementary.h.in +src/lib/Elementary_Cursor.h +src/lib/elm_widget.h" + +IFS=$'\n' + +for header in $HEADERS; do + grep -e "^ *EAPI.*(.*)" $header | grep -e 'elm_\w\+_set' >eapi.list + + for i in $(cat eapi.list); do + check $i $header + done + rm eapi.list +done +exit $ret |