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