0036950680573e4810d6ff0a21c550320a71b23c
[mirror/winof/.git] / ulp / dapl2 / test / dapltest / scripts / dt-cli.bat
1 @echo off\r
2 rem\r
3 rem Sample DAPLtest client Usage: dt-cli.bat provider hostname testname [-D]\r
4 rem\r
5 \r
6 SETLOCAL\r
7 \r
8 rem cmd.exe /V:on (delayed environment variable expansion) is required!\r
9 rem restart with /V:on if necessary\r
10 set F=on\r
11 set F=off\r
12 if not "!F!" == "off" (\r
13    %comspec% /E:on /V:on /C %0 %1 %2 %3 %4\r
14    if ERRORLEVEL 2 (exit /B %ERRORLEVEL%) else (exit /B 0)\r
15 )\r
16 \r
17 rem set DAT_OVERRIDE=D:\dapl2\dat.conf\r
18 rem favor DAT 2.0 (dapl2test.exe) over DAT 1.1 (dapltest.exe)\r
19 \r
20 set PF="%ProgramFiles%\OFED"\r
21 \r
22 if NOT EXIST %PF%\dapl2test.exe (\r
23     echo Missing file %PF%\dapl2test.exe ?\r
24     exit /B 1\r
25 )\r
26 set DT=dapl2test.exe\r
27 rem     To debug dapl2test - use dapl2testd.exe with ibnic0v2d\r
28 \r
29 rem setup DAPL provider name: translate shorthand name or use name from dat.conf.\r
30 rem if DAPL provider name is incorrect, DAPL will fail correctly.\r
31 \r
32 if "%1" == "" goto usage\r
33 if "%1" == "ibal"  set D=ibnic0v2\r
34 if "%1" == "ibal0" set D=ibnic0v2\r
35 if "%1" == "ibal1" set D=ibnic1v2\r
36 if "%1" == "scm"   set D=ibnic0v2-scm\r
37 if "%1" == "cma"   set D=ibnic0v2-cma\r
38 if "%D%" == ""     set D=%1\r
39 \r
40 rem DaplTest server hostname\r
41 if "%2" == "" goto usage\r
42 set S=%2\r
43 \r
44 rem Which test ?\r
45 if "%3" == "" goto usage\r
46 set T=%3\r
47 \r
48 set LPS=5\r
49 \r
50 rem Enable DEBUG?\r
51 \r
52 if "%4" == "-D" (set X=0xffff) else set X=\r
53 if not "%X%" == "" (\r
54     set DAT_OS_DBG_TYPE=%X%\r
55     set DAT_DBG_TYPE=%X%\r
56     set DAT_DBG_LEVEL=%X%\r
57     set DAPL_DBG_LEVEL=%X%\r
58     set DAPL_DBG_TYPE=%X%\r
59 ) else (\r
60 rem    set DAT_DBG_TYPE=0x1\r
61 rem    set DAT_DBG_LEVEL=1\r
62 )\r
63 \r
64 if "%4" == "-Q" ( set QUIET=1 ) else ( set QUIET=0 )\r
65 \r
66 rem %DT% -T T -V -t 2 -w 2 -i 1000111 -s %S% -D %D% \r
67 rem           client RW  4096 1    server RW  2048 4 \r
68 rem           client RR  1024 2    server RR  2048 2 \r
69 rem           client SR  1024 3 -f server SR   256 3 -f\r
70 \r
71 rem %DT% -T T -P -t 1 -w 1 -i 1024 -s %S% -D %D%\r
72 rem             client RW  4096 1    server RW  2048 4 \r
73 rem             server RR  1024 2    client RR  2048 2 \r
74 rem             client SR  1024 3 -f server SR   256 3 -f\r
75 \r
76 if "%T%" == "bench" (\r
77     echo %T%: Threads[1] Endpoints[1] transactions[RW, RR, SR], 64K iterations\r
78         set STIME=!DATE! !TIME!\r
79     %DT% -T T -P -t 1 -w 1 -i 65536 -s %S% -D %D% client RW  4096 4 server RW  2048 4  server RR  4096 2 client RR 4096 2 client SR 1024 2 -f server SR 1024 2 -f\r
80         set ETIME=!DATE! !TIME!\r
81     goto xit\r
82 )\r
83 \r
84 if "%T%" == "conn" (\r
85     rem Connectivity test - client sends one buffer with one 4KB segments, one time.\r
86     rem add '-d' for debug output.\r
87     echo Simple Connectivity test\r
88     set CMD=%DT% -T T -s %S% -D %D% -i 1 -t 1 -w 1 client SR 4096 server SR 4096\r
89     goto xcmd\r
90 )\r
91 \r
92 if "%T%" == "trans" (\r
93     echo %T%: Transaction test - 8192 iterations, 1 thread, SR 4KB buffers\r
94     set CMD=%DT% -T T -s %S% -D %D% -i 8192 -t 1 -w 1 client SR 4096 server SR 4096\r
95     goto xcmd\r
96 )\r
97 \r
98 if "%T%" == "transm" (\r
99     echo %T%: Multiple RW, RR, SR transactions, 4096 iterations\r
100     set CMD=%DT% -T T -P -t 1 -w 1 -i 4096 -s %S% -D %D% client RW 4096 1 server RW 2048 4  server RR  1024 2 client RR 2048 2 client SR 1024 3 -f server SR 256 3 -f\r
101     goto xcmd\r
102 )\r
103 \r
104 if "%T%" == "transt" (\r
105     echo %T%: Threads[4] Transaction test - 4096 iterations, 1 thread, SR 4KB buffers\r
106     set CMD=%DT% -T T -s %S% -D %D% -i 4096 -t 4 -w 1 client SR 8192 3 server SR 8192 3\r
107     goto xcmd\r
108 )\r
109 \r
110 if "%T%" == "transme" (\r
111     echo %T%: 1 Thread Endpoints[4] transactions [RW, RR, SR], 4096 iterations\r
112     set CMD=%DT% -T T -P -t 1 -w 4 -i 4096 -s %S% -D %D% client RW  4096 1 server RW  2048 4  server RR  1024 2 client RR 2048 2 client SR 1024 3 -f server SR 256 3 -f\r
113     goto xcmd\r
114 )\r
115 \r
116 if "%T%" == "transmet" (\r
117     echo %T%: Threads[2] Endpoints[4] transactions[RW, RR, SR], 4096 iterations\r
118     set CMD=%DT% -T T -P -t 2 -w 4 -i 4096 -s %S% -D %D% client RW  4096 1 server RW  2048 4  server RR  1024 2 client RR 2048 2 client SR 1024 3 -f server SR 256 3 -f\r
119     goto xcmd\r
120 )\r
121 \r
122 if "%T%" == "transmete" (\r
123     echo %T%: Threads[4] Endpoints[4] transactions[RW, RR, SR], 8192 iterations\r
124     set CMD=%DT% -T T -P -t 2 -w 4 -i 8192 -s %S% -D %D% client RW  4096 1 server RW  2048 4  server RR  1024 2 client RR 2048 2 client SR 1024 3 -f server SR 256 3 -f\r
125     goto xcmd\r
126 )\r
127 \r
128 if "%T%" == "EPA" (\r
129         set STIME=!DATE! !TIME!\r
130     FOR /L %%j IN (2,1,5) DO (\r
131         FOR /L %%i IN (1,1,5) DO (\r
132              echo %T%: Multi: Threads[%%j] Endpoints[%%i] Send/Recv test - 4096 iterations, 3 8K segs\r
133              %DT% -T T -s %S% -D %D% -i 4096 -t %%j -w %%i client SR 8192 3 server SR 8192 3\r
134              if ERRORLEVEL 1 exit /B %ERRORLEVEL% \r
135              echo %T%: Multi: Threads[%%j] Endpoints[%%i] Send/Recv test - 4096 iterations, 3 8K segs\r
136              timeout /T 3\r
137         )\r
138     )\r
139         set ETIME=!DATE! !TIME!\r
140     goto xit\r
141 )\r
142 \r
143 if "%T%" == "EP" (\r
144     set TH=4\r
145     set EP=3\r
146     echo %T%: Multi: Threads[!TH!] endpoints[!EP!] Send/Recv test - 4096 iterations, 3 8K segs\r
147     set CMD=%DT% -T T -s %S% -D %D% -i 4096 -t !TH! -w !EP! client SR 8192 3 server SR 8192 3\r
148     goto xcmd\r
149 )\r
150 \r
151 if "%T%" == "threads" (\r
152     echo %T%: Multi Threaded[6] Send/Recv test - 4096 iterations, 3 8K segs\r
153     set CMD=%DT% -T T -s %S% -D %D% -i 4096 -t 6 -w 1 client SR 8192 3 server SR 8192 3\r
154     goto xcmd\r
155 )\r
156 \r
157 if "%T%" == "threadsm" (\r
158     set TH=5\r
159     set EP=3\r
160     echo %T%: Multi: Threads[!TH!] endpoints[!EP!] Send/Recv test - 4096 iterations, 3 8K segs\r
161     set CMD=%DT% -T T -s %S% -D %D% -i 4096 -t !TH! -w !EP! client SR 8192 3 server SR 8192 3\r
162     goto xcmd\r
163 )\r
164 \r
165 if "%T%" == "perf" (\r
166     rem echo Performance test\r
167     set CMD=%DT% -T P %DBG% -s %S% -D %D% -i 2048 RW 4096 2\r
168     goto xcmd\r
169 )\r
170 \r
171 if "%T%" == "rdma-read" (\r
172     echo %T% 4 32K segs\r
173     set CMD=%DT% -T P -s %S% -D %D% -i 4096 RR 32768 4\r
174     goto xcmd\r
175 )\r
176 \r
177 if "%T%" == "rdma-write" (\r
178     echo %T% 4 32K segs\r
179     set CMD=%DT% -T P -s %S% -D %D% -i 4096 RW 32768 4\r
180     goto xcmd\r
181 )\r
182 \r
183 if "%T%" == "bw" (\r
184     echo bandwidth 4096 iterations of 2 65K mesgs\r
185     set CMD=%DT% -T P -s %S% -D %D% -i 4096 -p 16 -m p RW 65536 2 \r
186     goto xcmd\r
187 )\r
188 \r
189 if "%T%" == "latb" (\r
190     echo latency test - block for completion events\r
191     set CMD=%DT% -T P -s %S% -D %D% -i 8192 -p 1 -m b RW 4 1\r
192     goto xcmd\r
193 )\r
194 \r
195 if "%T%" == "latp" (\r
196     echo latency test - poll completion events\r
197     set CMD=%DT% -T P -s %S% -D %D% -i 8192 -p 1 -m p RW 4 1\r
198     goto xcmd\r
199 )\r
200 \r
201 if "%T%" == "lim" (\r
202     echo Resource limit tests\r
203         set STIME=!DATE! !TIME!\r
204     %DT% -T L -D %D% -w 8 -m 100 limit_ia\r
205     %DT% -T L -D %D% -w 8 -m 100 limit_pz\r
206     %DT% -T L -D %D% -w 8 -m 100 limit_evd\r
207     %DT% -T L -D %D% -w 8 -m 100 limit_ep\r
208     %DT% -T L -D %D% -w 8 -m 100 limit_psp\r
209     %DT% -T L -D %D% -w 8 -m 100 limit_lmr\r
210     %DT% -T L -D %D% -w 8 -m 15 limit_rpost\r
211         set ETIME=!DATE! !TIME!\r
212     goto xit\r
213 )\r
214 \r
215 if "%T%" == "regression" (\r
216     rem run dapl regression tests - usage: dt-cli provider svr-IPaddr regression {loopCnt}\r
217     if "%X%" == "" (\r
218         if not "%4" == ""  set LPS=%4\r
219     ) else (\r
220         if not "%5" == ""  set LPS=%5\r
221     )\r
222     echo %T% testing in !LPS! Loops\r
223     REM rdma-write, read, perf\r
224     set RT=trans perf threads threadsm transm transt transme transmet transmete rdma-write rdma-read bw EP\r
225         set STIME=!DATE! !TIME!\r
226     FOR /L %%i IN (1,1,!LPS!) DO (\r
227        for %%r in ( !RT! ) do (\r
228            echo loop %%i - start test %%r\r
229            call %0 %1 %2 %%r\r
230            if !ERRORLEVEL! GTR 1 (\r
231                echo Error !ERRORLEVEL! in regression test %%r\r
232                exit /B !ERRORLEVEL!\r
233            )\r
234            echo loop %%i - Completed test %%r\r
235            if not "%%r" == "EP"  timeout /T 3\r
236        )\r
237        echo +\r
238        echo Finished %T% loop %%i of !LPS!\r
239        if %%i LSS !LPS!  timeout /T 8\r
240     )\r
241         set ETIME=!DATE! !TIME!\r
242     goto xit\r
243 )\r
244 \r
245 if "%T%" == "interop" (\r
246     REM test units from Nov-'07 OFA interop event. usage dt-cli server-IPaddr interop {LoopCount}\r
247     if "%X%" == "" (\r
248         if not "%4" == ""  set LPS=%4\r
249     ) else (\r
250         if not "%5" == ""  set LPS=%5\r
251     )\r
252     echo %T% testing in !LPS! Loops\r
253     REM test units from Nov-'07 OFA interop event\r
254         set STIME=!DATE! !TIME!\r
255     FOR /L %%i IN (1,1,!LPS!) DO (\r
256          echo %DT% -T T -s %S% -D %D% -i 4096 -t 1 -w 1 -R BE client SR 256 1 server SR 256 1\r
257          %DT% -T T -s %S% -D %D% -i 4096 -t 1 -w 1 -R BE client SR 256 1 server SR 256 1\r
258          if ERRORLEVEL 1 exit /B %ERRORLEVEL%\r
259          timeout /T 3\r
260          echo %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 1024 3 -f server SR 1536 2 -f\r
261          %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 1024 3 -f server SR 1536 2 -f\r
262          if ERRORLEVEL 1 exit /B %ERRORLEVEL%\r
263          timeout /T 3\r
264          echo %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 1024 1 server SR 1024 1\r
265          %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 1024 1 server SR 1024 1\r
266          if ERRORLEVEL 1 exit /B %ERRORLEVEL%\r
267          timeout /T 3\r
268          echo %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 10 -V -P -R BE client SR 1024 3 server SR 1536 2\r
269          %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 10 -V -P -R BE client SR 1024 3 server SR 1536 2\r
270          if ERRORLEVEL 1 exit /B %ERRORLEVEL%\r
271          timeout /T 3\r
272          echo %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 256 1 server RW 4096 1 server SR 256 1\r
273          %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 256 1 server RW 4096 1 server SR 256 1\r
274          if ERRORLEVEL 1 exit /B %ERRORLEVEL%\r
275          timeout /T 3\r
276          echo %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 256 1 server RR 4096 1 server SR 256 1\r
277          %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 256 1 server RR 4096 1 server SR 256 1\r
278          if ERRORLEVEL 1 exit /B %ERRORLEVEL%\r
279          timeout /T 3\r
280          echo %DT% -T T -s %S% -D %D% -i 100 -t 4 -w 8 -V -P -R BE client SR 256 1 server RR 4096 1 server SR 256 1 client SR 256 1 server RR 4096 1 server SR 256 1\r
281          %DT% -T T -s %S% -D %D% -i 100 -t 4 -w 8 -V -P -R BE client SR 256 1 server RR 4096 1 server SR 256 1 client SR 256 1 server RR 4096 1 server SR 256 1\r
282          if ERRORLEVEL 1 exit /B %ERRORLEVEL%\r
283          timeout /T 3\r
284          echo %DT% -T P -s %S% -D %D% -i 1024 -p 64 -m p RW 8192 2\r
285          %DT% -T P -s %S% -D %D% -i 1024 -p 64 -m p RW 8192 2\r
286          if ERRORLEVEL 1 exit /B %ERRORLEVEL%\r
287          timeout /T 3\r
288          echo %DT% -T P -s %S% -D %D% -i 1024 -p 64 -m p RW 4096 2\r
289          %DT% -T P -s %S% -D %D% -i 1024 -p 64 -m p RW 4096 2\r
290          if ERRORLEVEL 1 exit /B %ERRORLEVEL%\r
291          timeout /T 3\r
292          echo %DT% -T P -s %S% -D %D% -i 1024 -p 64 -m p RW 4096 1\r
293          %DT% -T P -s %S% -D %D% -i 1024 -p 64 -m p RW 4096 1\r
294          if ERRORLEVEL 1 exit /B %ERRORLEVEL%\r
295          timeout /T 3\r
296          echo %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 10 -V -P -R BE client SR 1024 3 server SR 1536 2\r
297          %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 10 -V -P -R BE client SR 1024 3 server SR 1536 2\r
298          if ERRORLEVEL 1 exit /B %ERRORLEVEL%\r
299          echo %%i %T% loops of !LPS! completed.\r
300          if %%i LSS !LPS!  timeout /T 8\r
301     )\r
302         set ETIME=!DATE! !TIME!\r
303     goto xit\r
304 )\r
305 \r
306 if "%T%" == "stop" (\r
307     %DT% -T Q -s %S% -D %D%\r
308     goto rxt\r
309 )\r
310 \r
311 :usage\r
312 \r
313 echo.\r
314 echo usage: dt-cli dapl-provider dt-svr-hostname [testname [-D]]\r
315 echo.\r
316 echo where:\r
317 echo.\r
318 echo  dapl-provider: ibal, scm, cma or %SystemDrive%\DAT\dat.conf DAPL-provider name.\r
319 echo.\r
320 echo  dt-svr-hostname - IPv4 hostanme where the DaplTest server is running\r
321 echo.\r
322 echo  testname\r
323 echo    stop - request DAPLtest server to exit.\r
324 echo    conn - simple connection test with limited data transfer\r
325 echo    EP - Multiple EndPoints(7) and Threads(5) Transactions\r
326 echo    EPA - Increment EndPoints[1..5] while increasing threads[1-5]\r
327 echo    trans - single transaction test\r
328 echo    transm - transaction test: multiple transactions [RW SND, RDMA]\r
329 echo    transt - transaction test: multi-threaded\r
330 echo    transme - transaction test: multi-endpoints per thread \r
331 echo    transmet - transaction test: multi-endpoints per thread, multiple threads\r
332 echo    transmete - transaction test: multi threads == endpoints\r
333 echo    perf - Performance test\r
334 echo    threads - multi-threaded single transaction test.\r
335 echo    threadsm - multi: threads and endpoints, single transaction test.\r
336 echo    rdma-write - RDMA write\r
337 echo    rdma-read - RDMA read\r
338 echo    bw - bandwidth\r
339 echo    latb - latency tests, blocking for events\r
340 echo    latp - latency tests, polling for events\r
341 echo    lim - limit tests.\r
342 echo    regression {loopCnt,default=%LPS%} - regression + stress.\r
343 echo    interop {loopCnt,default=%LPS%} - 2007 OFA interoperability event tests.\r
344 goto rxt\r
345 \r
346 rem Execute the single daplest Command (CMD), observe -Q switch\r
347 :xcmd\r
348     set STIME=!DATE! !TIME!\r
349     if %QUIET% EQU 1 (\r
350         %CMD% > nul\r
351     ) else (\r
352         %CMD%\r
353     )\r
354     set ETIME=!DATE! !TIME!\r
355 \r
356     rem fall thru...\r
357 \r
358 :xit\r
359 \r
360 if !ERRORLEVEL! EQU 0 (\r
361         echo.\r
362         echo %0 %*\r
363         echo    Start %STIME% \r
364         echo    End   %ETIME%\r
365 )\r
366 :rxt\r
367 ENDLOCAL\r
368 exit /B !ERRORLEVEL!\r