• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/bash
2
3# Copyright (c) 2023 Huawei Device Co., Ltd.
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#     http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16LOCAL="unknown_dir"
17OUTDIR=out/rk3568
18CMD=hdc_std
19ARCH=arm
20
21function usage {
22    echo "usage: $0 -r {source root} -p {product name in out(eg rk3568)}"
23    exit 1
24}
25
26while getopts ":r:p:" opt
27do
28    case $opt in
29        r)
30            LOCAL=$OPTARG
31            ;;
32        p)
33            OUTDIR=out/$OPTARG
34            ;;
35        ?)
36            echo "unknown options $opt"
37            usage
38            exit 1
39            ;;
40    esac
41done
42
43TESTDIR=${LOCAL}/${OUTDIR}/musl/libc-test
44DYNLIB=${LOCAL}/${OUTDIR}/musl/libc-test-lib
45SHDIR=${LOCAL}/third_party/musl/scripts
46REMOTE=/data/tests/libc-test
47REMOTESYSTEM=/system/lib
48
49echo checking HDC device....
50for device in $($CMD list targets); do
51    device=$(echo $device | tr -d '\n\r')
52    if [ $device == "[Empty]" ]; then
53        echo Device not found, please check your device.
54        exit 1
55    fi
56done
57
58ABILIST=$(${CMD} shell param get const.product.cpu.abilist)
59echo $ABILIST
60
61if [ $ABILIST == "arm64-v8a" ]; then
62    ARCH=aarch64
63fi
64echo detect arch = ${ARCH}
65
66
67echo checking TESTDIR
68if [ ! -d ${TESTDIR} ]; then
69    echo Error: path "${TESTDIR}" was not found.
70    exit 1
71fi
72
73
74echo now mkdir
75${CMD} shell rm -rf ${REMOTE}
76${CMD} shell mkdir /data/tests
77${CMD} shell mkdir ${REMOTE}
78
79#mk temp directory
80${CMD} shell mkdir /tmp
81${CMD} shell mkdir /dev/shm
82echo Mkdir done.
83
84
85${CMD} file send ${TESTDIR} ${REMOTE}/src
86for lib in ${DYNLIB}/*; do
87    echo $lib
88    ${CMD} file send $lib ${REMOTE}/src
89done
90
91${CMD} shell chmod +x ${REMOTE}/src/*
92${CMD} shell mount -o rw,remount /
93${CMD} shell chmod 777 /etc
94${CMD} shell cp /etc/ld-musl-namespace-${ARCH}.ini /etc/ld-musl-namespace-${ARCH}.ini.bak
95${CMD} file send ${LOCAL}/third_party/musl/porting/linux/user/config/ld-musl-namespace-${ARCH}-test.ini /etc/ld-musl-namespace-${ARCH}.ini
96${CMD} shell mkdir ${REMOTE}/src/A
97${CMD} shell mkdir ${REMOTE}/src/B
98${CMD} shell mkdir ${REMOTE}/src/C
99${CMD} shell mkdir ${REMOTE}/src/D
100${CMD} shell mv ${REMOTE}/src/libdlns_dlsym_dep_a.so ${REMOTE}/src/A
101${CMD} shell mv ${REMOTE}/src/libdlns_dlsym_dep_b.so ${REMOTE}/src/B
102${CMD} shell mv ${REMOTE}/src/libdlns_dlsym_dep_c.so ${REMOTE}/src/C
103${CMD} shell cp ${REMOTE}/src/libdlopen_dso.so ${REMOTE}/src/B/libB.so
104${CMD} shell cp ${REMOTE}/src/libdlopen_dso.so ${REMOTE}/src/C/libC.so
105${CMD} shell cp ${REMOTE}/src/libdlopen_dso.so ${REMOTE}/src/D/libD.so
106${CMD} shell cp ${REMOTE}/src/libdlopen_dso.so ${REMOTE}/src/sharedlibtest.so
107${CMD} shell cp ${REMOTE}/src/libdlopen_dso.so ${REMOTE}/src/set_lib_path_0200.so
108${CMD} shell cp ${REMOTE}/src/libdlopen_dso.so ${REMOTE}/src/inherit_0300.so
109${CMD} shell cp ${REMOTE}/src/libdlopen_dso.so ${REMOTE}/src/inherit_0700.so
110${CMD} shell cp ${REMOTE}/src/libdlopen_dso.so ${REMOTE}/src/inherit_0800.so
111${CMD} shell cp ${REMOTE}/src/libdlopen_dso.so ${REMOTE}/src/inherit_1100.so
112${CMD} shell cp ${REMOTE}/src/libdlopen_ns_dso.so /system/lib
113${CMD} shell cp ${REMOTE}/src/libdlopen_dso.so ${REMOTE}/src/lib_for_no_delete.so
114${CMD} shell cp ${REMOTE}/src/libdlopen_dso.so ${REMOTE}/src/lib_for_dlopen.so
115${CMD} shell cp ${REMOTE}/src/libdlopen_ns_dso.so /system/lib64/libdlopen_ns_dso_sys.so
116${CMD} shell cp ${REMOTE}/src/libdlopen_ns_dso.so /system/lib64/ndk/libdlopen_ns_dso_ndk.so
117${CMD} shell cp ${REMOTE}/src/libdlopen_ns_dso.so /system/lib/libdlopen_ns_dso_sys.so
118${CMD} shell cp ${REMOTE}/src/libdlopen_ns_dso.so /system/lib/ndk/libdlopen_ns_dso_ndk.so
119
120${CMD} shell mv ${REMOTE}/src/zh_CN /tmp/zh_CN
121
122${CMD} file send ${SHDIR}/runtest.sh ${REMOTE}/runtest.sh
123${CMD} shell chmod +x ${REMOTE}/runtest.sh
124${CMD} shell ${REMOTE}/runtest.sh
125
126
127echo hdc file recv ${REMOTE}/REPORT ${SHDIR}/REPORT
128${CMD} file recv ${REMOTE}/REPORT ${SHDIR}/REPORT
129
130if [ -f FileList.txt ]; then
131	rm FileList.txt
132fi
133if [ -f Summary.txt ]; then
134	rm Summary.txt
135fi
136${CMD} file recv ${REMOTE}/FileList.txt ${SHDIR}/FileList.txt
137${CMD} file recv ${REMOTE}/SkipList.txt ${SHDIR}/SkipList.txt
138#
139#for /f "delims=:" %%a in ('dir /b "${TESTDIR}" ^| findstr /n .*') do set all=%%a
140all=$(ls -l ${TESTDIR} | grep "^-" | wc -l)
141#for /f %%b in (' find /c /v "" ^<"FileList.txt" ') do set /a run=%%b
142run=$(cat -t ${SHDIR}/FileList.txt | grep -v ^\s*$ | wc -l)
143#for /f %%c in (' find /c "FAIL" ^<"REPORT" ') do set fail=%%c
144fail=$(cat -t ${SHDIR}/REPORT | grep '^FAIL ' | wc -l)
145#
146#
147echo ===================================
148pass=$[$run - $fail]
149skip=$[$all - $run]
150#
151echo "SUMMARY
152echo All: ${all} | Run: ${run} | Skip: ${skip}
153echo Pass: [${pass}/${run}]
154echo Fail: [${fail}/${run}]
155" | tee Summary.txt
156
157#
158echo "[Failed List]:
159$(cat -t ${SHDIR}/REPORT | grep '^FAIL ')
160" | tee -a Summary.txt
161echo "[Skip List]:  " | tee -a Summary.txt
162
163cat ${SHDIR}/SkipList.txt | tee -a Summary.txt
164