• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/bash
2# Copyright (C) 2015-2017 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
3# This Source Code Form is subject to the terms of the Mozilla Public
4# License, v. 2.0. If a copy of the MPL was not distributed with this
5# file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7# Purpose: This script is needed to start the client and service with
8# one command. This is necessary as ctest - which is used to run the
9# tests - isn't able to start two binaries for one testcase. Therefore
10# the testcase simply executes this script. This script then runs client
11# and service and checks that both exit sucessfully.
12
13FAIL=0
14
15# NOW WITHOUT JSON
16echo "----------------------------------------------"
17echo "----------------------------------------------"
18echo "       Run test with auto configuration       "
19echo "----------------------------------------------"
20echo "----------------------------------------------"
21
22export VSOMEIP_CONFIGURATION=restart_routing_test_autoconfig.json
23
24../examples/routingmanagerd/./routingmanagerd &
25DAEMON_PID=$!
26
27sleep 2
28
29# Start the service
30export VSOMEIP_APPLICATION_NAME=restart_routing_test_service
31./restart_routing_test_service &
32SERIVCE_PID=$!
33
34# Start the client1
35export VSOMEIP_APPLICATION_NAME=restart_routing_test_client1
36./restart_routing_test_client &
37CLIENT1_PID=$!
38
39# Start the client2
40export VSOMEIP_APPLICATION_NAME=restart_routing_test_client2
41./restart_routing_test_client &
42CLIENT2_PID=$!
43
44# Start the client3
45export VSOMEIP_APPLICATION_NAME=restart_routing_test_client3
46./restart_routing_test_client &
47CLIENT3_PID=$!
48
49# Start the client4
50export VSOMEIP_APPLICATION_NAME=restart_routing_test_client4
51./restart_routing_test_client &
52CLIENT4_PID=$!
53
54sleep 2
55echo "----------------------------------------------"
56echo "       let routingmanagerd crash (kill -9)           "
57echo "----------------------------------------------"
58kill -9 $DAEMON_PID
59echo "----------------------------------------------"
60echo "             restart routingmanagerd                 "
61echo "----------------------------------------------"
62sleep 2
63
64../examples/routingmanagerd/./routingmanagerd &
65DAEMON_PID=$!
66
67wait $SERIVCE_PID || ((FAIL+=1))
68wait $CLIENT1_PID || ((FAIL+=1))
69wait $CLIENT2_PID || ((FAIL+=1))
70wait $CLIENT3_PID || ((FAIL+=1))
71wait $CLIENT4_PID || ((FAIL+=1))
72
73kill $DAEMON_PID
74wait $DAEMON_PID
75
76# Check if client and server both exited sucessfully and the service didnt't
77# have any open tcp/udp sockets
78if [ $FAIL -eq 0 ]
79then
80    echo "Test Succeeded"
81else
82    exit 1
83fi
84
85# NOW WITHOUT VSOMEIPD
86echo "----------------------------------------------"
87echo "----------------------------------------------"
88echo "  Run test with auto configuration no deamon  "
89echo "----------------------------------------------"
90echo "----------------------------------------------"
91
92sleep 2
93
94# Start the service
95export VSOMEIP_APPLICATION_NAME=restart_routing_test_service
96./restart_routing_test_service &
97SERIVCE_PID=$!
98
99# Start the client1
100export VSOMEIP_APPLICATION_NAME=restart_routing_test_client1
101./restart_routing_test_client &
102CLIENT1_PID=$!
103
104# Start the client2
105export VSOMEIP_APPLICATION_NAME=restart_routing_test_client2
106./restart_routing_test_client &
107CLIENT2_PID=$!
108
109# Start the client3
110export VSOMEIP_APPLICATION_NAME=restart_routing_test_client3
111./restart_routing_test_client &
112CLIENT3_PID=$!
113
114# Start the client4
115export VSOMEIP_APPLICATION_NAME=restart_routing_test_client4
116./restart_routing_test_client &
117CLIENT4_PID=$!
118
119sleep 2
120echo "----------------------------------------------"
121echo "   let service (routing) crash (kill -9)      "
122echo "----------------------------------------------"
123kill -9 $SERIVCE_PID
124echo "----------------------------------------------"
125echo "          restart service (routing)           "
126echo "----------------------------------------------"
127sleep 2
128
129# Start the service
130export VSOMEIP_APPLICATION_NAME=restart_routing_test_service
131./restart_routing_test_service &
132SERIVCE_PID=$!
133
134wait $SERIVCE_PID || ((FAIL+=1))
135wait $CLIENT1_PID || ((FAIL+=1))
136wait $CLIENT2_PID || ((FAIL+=1))
137wait $CLIENT3_PID || ((FAIL+=1))
138wait $CLIENT4_PID || ((FAIL+=1))
139
140# Check if client and server both exited sucessfully and the service didnt't
141# have any open tcp/udp sockets
142if [ $FAIL -eq 0 ]
143then
144    echo "Test Succeeded"
145else
146    exit 1
147fi
148
149
150echo "----------------------------------------------"
151echo "----------------------------------------------"
152echo "       Run test with json configuration       "
153echo "----------------------------------------------"
154echo "----------------------------------------------"
155
156sleep 2
157
158export VSOMEIP_CONFIGURATION=restart_routing_test_service.json
159../examples/routingmanagerd/./routingmanagerd &
160DAEMON_PID=$!
161
162# Start the service
163export VSOMEIP_APPLICATION_NAME=restart_routing_test_service
164export VSOMEIP_CONFIGURATION=restart_routing_test_service.json
165./restart_routing_test_service &
166SERIVCE_PID=$!
167
168# Start the client1
169export VSOMEIP_APPLICATION_NAME=restart_routing_test_client1
170export VSOMEIP_CONFIGURATION=restart_routing_test_client.json
171./restart_routing_test_client &
172CLIENT1_PID=$!
173
174# Start the client2
175export VSOMEIP_APPLICATION_NAME=restart_routing_test_client2
176export VSOMEIP_CONFIGURATION=restart_routing_test_client.json
177./restart_routing_test_client &
178CLIENT2_PID=$!
179
180# Start the client3
181export VSOMEIP_APPLICATION_NAME=restart_routing_test_client3
182export VSOMEIP_CONFIGURATION=restart_routing_test_client.json
183./restart_routing_test_client &
184CLIENT3_PID=$!
185
186# Start the client4
187export VSOMEIP_APPLICATION_NAME=restart_routing_test_client4
188export VSOMEIP_CONFIGURATION=restart_routing_test_client.json
189./restart_routing_test_client &
190CLIENT4_PID=$!
191
192sleep 2
193echo "----------------------------------------------"
194echo "       let routingmanagerd crash (kill -9)           "
195echo "----------------------------------------------"
196kill -9 $DAEMON_PID
197echo "----------------------------------------------"
198echo "            restart routingmanagerd                  "
199echo "----------------------------------------------"
200sleep 2
201
202export VSOMEIP_CONFIGURATION=restart_routing_test_service.json
203../examples/routingmanagerd/./routingmanagerd &
204DAEMON_PID=$!
205
206wait $SERIVCE_PID || ((FAIL+=1))
207wait $CLIENT1_PID || ((FAIL+=1))
208wait $CLIENT2_PID || ((FAIL+=1))
209wait $CLIENT3_PID || ((FAIL+=1))
210wait $CLIENT4_PID || ((FAIL+=1))
211
212kill $DAEMON_PID
213wait $DAEMON_PID
214
215# Check if client and server both exited sucessfully and the service didnt't
216# have any open tcp/udp sockets
217if [ $FAIL -eq 0 ]
218then
219    echo "Test Succeeded"
220else
221    exit 1
222fi
223
224echo "----------------------------------------------"
225echo "----------------------------------------------"
226echo "Run test with json configuration + kill service"
227echo "----------------------------------------------"
228echo "----------------------------------------------"
229
230sleep 2
231
232export VSOMEIP_CONFIGURATION=restart_routing_test_service.json
233../examples/routingmanagerd/./routingmanagerd &
234DAEMON_PID=$!
235
236# Start the service
237export VSOMEIP_APPLICATION_NAME=restart_routing_test_service
238export VSOMEIP_CONFIGURATION=restart_routing_test_service.json
239./restart_routing_test_service &
240SERIVCE_PID=$!
241
242# Start the client1
243export VSOMEIP_APPLICATION_NAME=restart_routing_test_client1
244export VSOMEIP_CONFIGURATION=restart_routing_test_client.json
245./restart_routing_test_client &
246CLIENT1_PID=$!
247
248# Start the client2
249export VSOMEIP_APPLICATION_NAME=restart_routing_test_client2
250export VSOMEIP_CONFIGURATION=restart_routing_test_client.json
251./restart_routing_test_client &
252CLIENT2_PID=$!
253
254# Start the client3
255export VSOMEIP_APPLICATION_NAME=restart_routing_test_client3
256export VSOMEIP_CONFIGURATION=restart_routing_test_client.json
257./restart_routing_test_client &
258CLIENT3_PID=$!
259
260# Start the client4
261export VSOMEIP_APPLICATION_NAME=restart_routing_test_client4
262export VSOMEIP_CONFIGURATION=restart_routing_test_client.json
263./restart_routing_test_client &
264CLIENT4_PID=$!
265
266sleep 2
267echo "----------------------------------------------"
268echo "       let routingmanagerd crash (kill -9)           "
269echo "----------------------------------------------"
270kill -9 $DAEMON_PID
271sleep 1
272echo "----------------------------------------------"
273echo "       let service crash (kill -9)            "
274echo "----------------------------------------------"
275kill -9 $SERIVCE_PID
276echo "----------------------------------------------"
277echo "                restart routingmanagerd              "
278echo "----------------------------------------------"
279sleep 2
280
281export VSOMEIP_CONFIGURATION=restart_routing_test_service.json
282../examples/routingmanagerd/./routingmanagerd &
283DAEMON_PID=$!
284
285echo "----------------------------------------------"
286echo "                restart service               "
287echo "----------------------------------------------"
288sleep 1
289
290# Start the service again
291export VSOMEIP_APPLICATION_NAME=restart_routing_test_service
292export VSOMEIP_CONFIGURATION=restart_routing_test_service.json
293./restart_routing_test_service &
294SERIVCE_PID=$!
295
296wait $SERIVCE_PID || ((FAIL+=1))
297wait $CLIENT1_PID || ((FAIL+=1))
298wait $CLIENT2_PID || ((FAIL+=1))
299wait $CLIENT3_PID || ((FAIL+=1))
300wait $CLIENT4_PID || ((FAIL+=1))
301
302kill $DAEMON_PID
303wait $DAEMON_PID
304
305# Check if client and server both exited sucessfully and the service didnt't
306# have any open tcp/udp sockets
307if [ $FAIL -eq 0 ]
308then
309    exit 0
310else
311    exit 1
312fi
313