File: hidl_test_helper

package info (click to toggle)
android-platform-system-tools-hidl 10.0.0%2Br36-3.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,936 kB
  • sloc: cpp: 21,933; yacc: 1,416; java: 1,239; lex: 496; sh: 360; python: 44; xml: 20; makefile: 12
file content (140 lines) | stat: -rw-r--r-- 3,866 bytes parent folder | download | duplicates (3)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
function usage() {
    echo "runs $TEST_NAME"
    echo "\t -h help"
    echo "\t -c [CLIENT64_SERVER64 | CLIENT32_SERVER32 | CLIENT64_SERVER32 | CLIENT32_SERVER64] configures whether to run 32-bit or 64-bit versions of the servers and client"
    echo "\t -x [/ld/library/path32] set the LD_LIBRARY_PATH for servers32 and client32"
    echo "\t -y [/ld/library/path64] set the LD_LIBRARY_PATH for servers64 and client64"
}

failed_test_cases=()

function run_test() {
    if [ $1 -eq 32 ]; then
        CLIENT_PATH=$CLIENT_PATH32
        LD_LIB_PATH_CLIENT=$LD_LIB_PATH32
    else
        CLIENT_PATH=$CLIENT_PATH64
        LD_LIB_PATH_CLIENT=$LD_LIB_PATH64
    fi

    if [ $2 -eq 32 ]; then
        SERVER_PATH=$SERVER_PATH32
        LD_LIB_PATH_SERVER=$LD_LIB_PATH32
    else
        SERVER_PATH=$SERVER_PATH64
        LD_LIB_PATH_SERVER=$LD_LIB_PATH64
    fi

    echo "Running $1-bit client with $2-bit servers"
    echo "$LD_LIB_PATH_SERVER=$LD_LIB_PATH_SERVER"
    LD_LIBRARY_PATH=$LD_LIB_PATH_SERVER:$LD_LIBRARY_PATH $SERVER_PATH &
    SERVER_PID=$!
    LD_LIBRARY_PATH=$LD_LIB_PATH_CLIENT:$LD_LIBRARY_PATH $CLIENT_PATH
    if [ $? -ne 0 ]; then
        failed_test_cases+=("$1-bit client with $2-bit servers")
    fi
    kill $SERVER_PID
}

function check_env() {
    if [ -z ${TEST_NAME+x} ]; then
        echo "TEST_NAME is unset";
        exit 1
    fi

    if [ -z ${CLIENT_PATH32+x} ]; then
        echo "CLIENT_PATH32 is unset";
        exit 1
    fi

    if [ -z ${CLIENT_PATH64+x} ]; then
        echo "CLIENT_PATH64 is unset";
        exit 1
    fi

    if [ -z ${SERVER_PATH32+x} ]; then
        echo "SERVER_PATH32 is unset";
        exit 1
    fi

    if [ -z ${SERVER_PATH64+x} ]; then
        echo "SERVER_PATH64 is unset";
        exit 1
    fi
}

#usage: run_all_tests server_path32 server_path64 client_path32 client_path64 test_name [-h/-c config/-x lib32/-y ldlib64]
function run_all_tests() {
    SERVER_PATH32=$1
    SERVER_PATH64=$2
    CLIENT_PATH32=$3
    CLIENT_PATH64=$4
    TEST_NAME=$5
    check_env
    shift 5

    while getopts hc:x:y: opt;
    do
        case $opt in
            h)
                usage
                exit 0
                ;;
            c)
                case $OPTARG in
                    CLIENT64_SERVER64)
                        run_test 64 64
                        ;;
                    CLIENT32_SERVER32)
                        run_test 32 32
                        ;;
                    CLIENT64_SERVER32)
                        run_test 64 32
                        ;;
                    CLIENT32_SERVER64)
                        run_test 32 64
                        ;;
                    *)
                        echo "Error: unknown config value \"$OPTARG\""
                        exit 1
                        ;;
                esac
                exit 0
                ;;
            x)
                LD_LIB_PATH32=$OPTARG
                ;;
            y)
                LD_LIB_PATH64=$OPTARG
                ;;
            *)
                echo "Error: unknown param \"$opt\""
                usage
                exit 1
                ;;
        esac
    done

    for i in 32 64
        do
            for j in 32 64
                do
                    run_test $i $j
                done
        done
    count_failed_tests=${#failed_test_cases[@]}
    echo "*********************************************************"
    echo "    $TEST_NAME Final Summary:\n"
    if [ $count_failed_tests -gt 0 ]; then
        echo "    $TEST_NAME failed for the following cases:\n\t"
        for each in "${failed_test_cases[@]}"
            do
                echo "\t$each"
            done
    else
        echo "    $TEST_NAME passed for all cases!"
    fi
    echo "*********************************************************"

    exit ${#failed_test_cases[@]}
}