summaryrefslogtreecommitdiff
path: root/tests/test_decl.sh
blob: 706ffdde585ac1762f5eeafaced382979fa4a079 (plain)
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
42
43
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