• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1@echo off
2
3@REM 本地OpenHarmony源码目录,需根据实际环境修改
4set LOCAL=\\wsl$\ubuntu-20.04\home\code\OHOS
5@REM 本地编译环境的out目录
6set OUTDIR=out\rk3568
7
8@REM 本地用例生成目录
9set TESTDIR=%LOCAL%\%OUTDIR%\musl\libc-test
10@REM 动态链接库生成目录
11set DYNLIB=%LOCAL%\%OUTDIR%\musl\libc-test-lib
12@REM 远程传输目标目录
13set REMOTE=/data/tests/libc-test
14set REMOTESYSTEM=/system/lib
15@REM runtest脚本所在目录
16set SHDIR=%LOCAL%\third_party\musl\scripts
17set ARCH=arm
18
19@REM 检查设备是否连接
20echo checking HDC device
21for /F "usebackq delims==" %%c in (`hdc list targets`) DO (
22    echo Device list:
23    echo %%c | findstr "[Empty]" && goto noDevice || echo %%c && goto CheckDirectory
24)
25
26:CheckDirectory
27echo checking TESTDIR
28if exist %TESTDIR% (
29	echo TESTDIR: %TESTDIR%
30) else (
31	echo Error: path "%TESTDIR%" was not found.
32	goto end
33)
34
35@REM Xts test require all so should exist in DYNLIB
36setlocal enabledelayedexpansion
37for %%j in (%TESTDIR%\*) do (
38    set tmp_file=%%j
39    set tmp_file_suffix=!tmp_file:~-3!
40    if "!tmp_file_suffix!" == ".so" (
41        set /a TOTAL_SO_IN_TESTDIR+=1
42        call set SO_NAMES=%%SO_NAMES%%;%%j
43    )
44)
45
46if !TOTAL_SO_IN_TESTDIR! gtr 0 (
47    echo Error: so shoul not exist in %TESTDIR%, you should modify your part_name in gn to set so in %DYNLIB%.
48    echo Total so:%TOTAL_SO_IN_TESTDIR%
49    echo So list:&echo\    %SO_NAMES:~1,10000%
50    goto end
51)
52
53@REM 在单板创建目录, 需要预先创建好才能传输到相应位置。
54:hdcStart
55for /F "usebackq delims==" %%r in (`hdc shell param get const.product.cpu.abilist`) DO (
56    echo %%r | findstr "arm64-v8a" && set ARCH=aarch64
57)
58echo detect arch = %ARCH%
59
60echo.
61echo now mkdir...
62hdc shell rm -rf /data/tests/libc-test
63hdc shell mkdir /data/tests
64hdc shell mkdir %REMOTE%
65
66@REM 创建临时文件夹,用于存放用例生成的临时文件
67hdc shell mkdir /tmp
68hdc shell mkdir /dev/shm
69echo Mkdir done.
70goto hdcSend
71
72@REM 传输文件,单板上执行runtest.sh,将结果REPORT返回到.bat所在目录
73:hdcSend
74hdc file send %TESTDIR% %REMOTE%/src
75for %%j in (%DYNLIB%\*) do (
76	echo %%j
77	hdc file send %%j %REMOTE%/src
78)
79hdc shell chmod +x %REMOTE%/src/*
80
81hdc shell mount -o rw,remount /
82hdc shell chmod 777 /etc
83hdc shell cp /etc/ld-musl-namespace-%ARCH%.ini /etc/ld-musl-namespace-%ARCH%.ini.bak
84hdc file send %LOCAL%\third_party\musl\config\ld-musl-namespace-%ARCH%-test.ini ^
85                /etc/ld-musl-namespace-%ARCH%.ini
86hdc shell mkdir %REMOTE%/src/A
87hdc shell mkdir %REMOTE%/src/B
88hdc shell mkdir %REMOTE%/src/C
89hdc shell mkdir %REMOTE%/src/D
90hdc shell mkdir -p %REMOTE%/src/rpath_lib/rpath_support_A
91hdc shell mkdir -p %REMOTE%/src/rpath_lib/rpath_support_B
92hdc shell mkdir -p %REMOTE%/src/rpath_support_C
93hdc shell mv %REMOTE%/src/libdlns_dlsym_dep_a.so %REMOTE%/src/A
94hdc shell mv %REMOTE%/src/libdlns_dlsym_dep_b.so %REMOTE%/src/B
95hdc shell mv %REMOTE%/src/libdlns_dlsym_dep_c.so %REMOTE%/src/C
96hdc shell mv %REMOTE%/src/libprimary_absolute.so %REMOTE%/src/rpath_lib
97hdc shell mv %REMOTE%/src/libprimary_origin.so %REMOTE%/src/rpath_lib
98hdc shell mv %REMOTE%/src/libprimary_multiple.so %REMOTE%/src/rpath_lib
99hdc shell mv %REMOTE%/src/libsupport_002.so %REMOTE%/src/rpath_support_C
100hdc shell mv %REMOTE%/src/libsupport_001.so %REMOTE%/src/rpath_lib/rpath_support_A
101hdc shell cp %REMOTE%/src/libdlopen_dso.so %REMOTE%/src/B/libB.so
102hdc shell cp %REMOTE%/src/libdlopen_dso.so %REMOTE%/src/C/libC.so
103hdc shell cp %REMOTE%/src/libdlopen_dso.so %REMOTE%/src/D/libD.so
104hdc shell cp %REMOTE%/src/libdlopen_dso.so %REMOTE%/src/sharedlibtest.so
105hdc shell cp %REMOTE%/src/libdlopen_dso.so %REMOTE%/src/set_lib_path_0200.so
106hdc shell cp %REMOTE%/src/libdlopen_dso.so %REMOTE%/src/inherit_0300.so
107hdc shell cp %REMOTE%/src/libdlopen_dso.so %REMOTE%/src/inherit_0700.so
108hdc shell cp %REMOTE%/src/libdlopen_dso.so %REMOTE%/src/inherit_0800.so
109hdc shell cp %REMOTE%/src/libdlopen_dso.so %REMOTE%/src/inherit_1100.so
110hdc shell cp %REMOTE%/src/libdlopen_ns_dso.so /system/lib
111hdc shell cp %REMOTE%/src/libdlopen_dso.so %REMOTE%/src/lib_for_no_delete.so
112hdc shell cp %REMOTE%/src/libdlopen_dso.so %REMOTE%/src/lib_for_dlopen.so
113hdc shell cp %REMOTE%/src/libdlopen_ns_dso.so /system/lib64/libdlopen_ns_dso_sys.so
114hdc shell cp %REMOTE%/src/libdlopen_ns_dso.so /system/lib/libdlopen_ns_dso_sys.so
115hdc shell cp %REMOTE%/src/libdlopen_ns_dso.so /system/lib64/ndk/libdlopen_ns_dso_ndk.so
116hdc shell cp %REMOTE%/src/libdlopen_ns_dso.so /system/lib/ndk/libdlopen_ns_dso_ndk.so
117hdc shell cp %REMOTE%/src/libdlclose_recursive.so /system/lib64/libdlclose_recursive.so
118hdc shell cp %REMOTE%/src/libdlclose_recursive_dlopen_so.so /system/lib64/libdlclose_recursive_dlopen_so.so
119hdc shell cp %REMOTE%/src/libdl_gnu_hash_so.so %REMOTE%/src/libdl_gnu_hash_so.so
120hdc shell cp %REMOTE%/src/libdl_sysv_hash_so.so %REMOTE%/src/libdl_sysv_hash_so.so
121
122hdc shell mv %REMOTE%/src/zh_CN /tmp/zh_CN
123
124hdc file send %SHDIR%\runtest.sh %REMOTE%/runtest.sh
125hdc shell chmod +x %REMOTE%/runtest.sh
126hdc shell %REMOTE%/runtest.sh
127
128
129:Summary
130echo hdc file recv %REMOTE%/REPORT %~dp0REPORT
131hdc file recv %REMOTE%/REPORT %~dp0REPORT
132
133if exist FileList.txt (
134	del FileList.txt
135)
136if exist Summary.txt (
137	del Summary.txt
138)
139hdc file recv %REMOTE%/FileList.txt %~dp0FileList.txt
140hdc file recv %REMOTE%/SkipList.txt %~dp0SkipList.txt
141
142for /f "delims=:" %%a in ('dir /b /a:-d "%TESTDIR%" ^| findstr /n .*') do set all=%%a
143for /f %%b in (' find /c /v "" ^<"FileList.txt" ') do set /a run=%%b
144for /f %%c in (' find /c "FAIL" ^<"REPORT" ') do set fail=%%c
145
146
147echo ===================================
148set /a pass=%run%-%fail%
149set /a skip=%all%-%run%
150
151echo SUMMARY-%ARCH%
152echo All: %all% ^| Run: %run% ^| Skip: %skip%
153echo Pass: [%pass%/%run%]
154echo Fail: [%fail%/%run%]
155
156(
157echo SUMMARY-%ARCH%
158echo All: %all% ^| Run: %run% ^| Skip: %skip%
159echo Pass: [%pass%/%run%]
160echo Fail: [%fail%/%run%]
161echo Check REPORT for more details.
162echo.
163)>> Summary.txt
164
165echo [Failed List]: >> Summary.txt
166setlocal EnableDelayedExpansion
167for /f "delims=" %%i in ('findstr /c:"FAIL" REPORT') do (
168    set "F=%%i"
169    set "F=!F:*FAIL =FAIL !"
170    echo !F! >> Summary.txt
171)
172echo. >> Summary.txt
173
174echo [Skip List]: >> Summary.txt
175copy /b Summary.txt+SkipList.txt
176del SkipList.txt
177goto end
178
179:noDevice
180echo Device not found, please check your device.
181
182:end
183echo.
184pause
185exit
186