File: runfabtests.cmd

package info (click to toggle)
mpich 4.0.2-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 423,384 kB
  • sloc: ansic: 1,088,434; cpp: 71,364; javascript: 40,763; f90: 22,829; sh: 17,463; perl: 14,773; xml: 14,418; python: 10,265; makefile: 9,246; fortran: 8,008; java: 4,355; asm: 324; ruby: 176; lisp: 19; php: 8; sed: 4
file content (267 lines) | stat: -rw-r--r-- 6,084 bytes parent folder | download
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
@echo off
setlocal EnableDelayedExpansion

set PATH=%~dp0;%PATH%


set S_INTERFACE=127.0.0.1
set C_INTERFACE=127.0.0.1

set TEST_FAIL_TIMEOUT=90

set unit_tests=^
	"av_test -g 192.168.10.1 -n 1 -s 127.0.0.1"^
	"eq_test"
rem Disabling this test since it fails on windows (appveyor). Re-enable after root cause is identified and fixed
rem "dom_test -n 2"

set functional_tests=^
	"cq_data"^
	"dgram -p sockets"^
	"dgram_waitset -p sockets"^
	"msg"^
	"msg_sockets"^
	"poll -t queue"^
	"poll -t counter"^
	"rdm"^
	"rdm_rma_event"^
	"rdm_rma_trigger"^
	"rdm_tagged_peek"^
	"bw -e rdm -v -T 1"^
	"bw -e msg -v -T 1"^
	"scalable_ep"
rem	"msg_epoll"

set short_tests=^
	"msg_pingpong -I 5"^
	"msg_pingpong -I 5 -v"^
	"rdm_cntr_pingpong -I 5"^
	"rdm_pingpong -I 5"^
	"rdm_pingpong -I 5 -v"^
	"rdm_tagged_pingpong -I 5"^
	"rdm_tagged_pingpong -I 5 -v"
rem	"msg_bw -I 5"^
rem	"msg_bw -I 5 -v"^
rem	"rma_bw -e msg -o write -I 5"^
rem	"rma_bw -e msg -o read -I 5"^
rem	"rma_bw -e msg -o writedata -I 5"^
rem	"rma_bw -e rdm -o write -I 5"^
rem	"rma_bw -e rdm -o read -I 5"^
rem	"rma_bw -e rdm -o writedata -I 5"^
rem	"msg_rma -o write -I 5"^
rem	"msg_rma -o read -I 5"^
rem	"msg_rma -o writedata -I 5"^
rem	"msg_stream -I 5"^
rem	"rdm_atomic -I 5 -o all"^
rem	"rdm_multi_recv -I 5"^
rem	"rdm_rma -o write -I 5"^
rem	"rdm_rma -o read -I 5"^
rem	"rdm_rma -o writedata -I 5"^
rem	"rdm_tagged_bw -I 5"^
rem	"rdm_tagged_bw -I 5 -v"^
rem	"dgram_pingpong -I 5"^


set standard_tests=^
	"msg_pingpong"^
	"msg_pingpong -v"^
	"msg_pingpong -k"^
	"msg_pingpong -k -v"^
	"rdm_cntr_pingpong"^
	"rdm_pingpong"^
	"rdm_pingpong -v"^
	"rdm_pingpong -k"^
	"rdm_pingpong -k -v"^
	"rdm_tagged_pingpong"^
	"rdm_tagged_pingpong -v"
rem	"msg_bw"^
rem	"msg_bw -v"^
rem	"rma_bw -e msg -o write"^
rem	"rma_bw -e msg -o read"^
rem	"rma_bw -e msg -o writedata"^
rem	"rma_bw -e rdm -o write"^
rem	"rma_bw -e rdm -o read"^
rem	"rma_bw -e rdm -o writedata"^
rem	"msg_rma -o write"^
rem	"msg_rma -o read"^
rem	"msg_rma -o writedata"^
rem	"msg_stream"^
rem	"rdm_atomic -o all -I 1000"^
rem	"rdm_multi_recv"^
rem	"rdm_rma -o write"^
rem	"rdm_rma -o read"^
rem	"rdm_rma -o writedata"^
rem	"rdm_tagged_bw"^
rem	"rdm_tagged_bw -v"^
rem	"dgram_pingpong"^
rem	"dgram_pingpong -k"^


set test_types=unit functional short


goto :main


:single__clear_txt
	del out.txt res.txt >nul 2>nul
exit /b 0
:single__start_job
	start /b run_with_output.cmd "!test_cmdline!" out.txt res.txt >nul 2>nul
exit /b 0
:single__check_is_job_ended
	if not exist res.txt exit /b 1
exit /b 0
:single__print_output
	echo OUTPUT: & type out.txt & echo ----
exit /b 0
:single__print_and_check_err_code
	setlocal
	set err=0
	set /p err_code= <res.txt || ( echo error getting error code >&2 & exit /b 2 )
	set /a err_code=err_code
	if not "!err_code!"=="0" ( set err=1 & echo error code = !err_code! )
exit /b !err!


:client_server__clear_txt
	del out_sv.txt res_sv.txt out_cl.txt res_cl.txt >nul 2>nul
exit /b 0
:client_server__start_job
	start /b run_with_output.cmd "!test_cmdline! -s !S_INTERFACE!" out_sv.txt res_sv.txt >nul 2>nul
	start /b run_with_output.cmd "!test_cmdline! -s !C_INTERFACE! !S_INTERFACE!" out_cl.txt res_cl.txt >nul 2>nul
exit /b 0
:client_server__check_is_job_ended
	if not exist res_sv.txt exit /b 1
	if not exist res_cl.txt exit /b 1
exit /b 0
:client_server__print_output
	echo SERVER OUTPUT: & type out_sv.txt & echo ----
	echo CLIENT OUTPUT: & type out_cl.txt & echo ----
exit /b 0
:client_server__print_and_check_err_code
	setlocal
	set err=0
	set /p sv_err_code= <res_sv.txt || ( echo error getting server error code >&2 & exit /b 2 )
	set /p cl_err_code= <res_cl.txt || ( echo error getting client error code >&2 & exit /b 2 )
	set /a sv_err_code=sv_err_code
	set /a cl_err_code=cl_err_code
	if not "!sv_err_code!"=="0" ( set err=1 & echo server error code = !sv_err_code! )
	if not "!cl_err_code!"=="0" ( set err=1 & echo client error code = !cl_err_code! )
exit /b !err!


:results
	setlocal
	set err=%1
	call :!test_type!__print_output
	if "!err!"=="2" (
		echo test failed due to timeout
	) else (
		if not "!err!"=="0" (
			echo UNKNOWN ERROR
			exit -1
		) else (
			call :!test_type!__print_and_check_err_code
			set err=!errorlevel!
			if not "!err!"=="0" echo test failed
		)
	)
exit /b !err!




:run
	setlocal
	for /f "tokens=1" %%n in ("!test_cmdline!") do set test_exename=%%n.exe

	call :!test_type!__start_job
	set /a secs=0
	:run_client_server__WAIT
		set /a secs=secs+1
		timeout /t 1 >nul
		if /I !secs! geq %TEST_FAIL_TIMEOUT% (
			echo timeout, killing job
			taskkill /f /im !test_exename! >nul
			exit /b 2
		)
		call :!test_type!__check_is_job_ended || goto :run_client_server__WAIT
	:run_client_server__WAIT_END
exit /b 0





:test
	setlocal
	set test_type=%1
	for /f "tokens=*" %%n in (%2) do set test_cmdline=%%n
	echo !test_cmdline!

	call :!test_type!__clear_txt
	call :run
	call :results !errorlevel!
	set err=!errorlevel!
	call :!test_type!__clear_txt
exit /b !err!




:run_test__unit
	call :test single %*
exit /b


:run_test__functional
	call :test client_server %*
exit /b


:run_test__standard
	call :test client_server %*
exit /b


:run_test__short
	call :test client_server %*
exit /b




:main
	set /a tests_count=0
	set /a failed_tests_count=0
	for %%a in (!test_types!) do (
		for %%t in (!%%a_tests!) do (
			set /a tests_count=tests_count+1
		)
	)

	for %%a in (!test_types!) do (
		echo %%a tests:
		set run=run_test__%%a
		for %%t in (!%%a_tests!) do (
			call :!run! %%t || (
				set failed=!failed! %%t
				set /a failed_tests_count=failed_tests_count+1
			)
		)
		echo.
		echo ==============================
	)


	if not "!failed!"=="" (
		echo !failed_tests_count! of !tests_count! tests failed:
		for %%t in (!failed!) do (
			echo %%t
		)
		exit /b !failed_tests_count!
	)

	echo all !tests_count! tests passed